When I was challenged with a similar issue, I found that I could implement pieces of SAFe (scaled agile framework) that suited my program to solve most of them. This helped enable me to have all the critical pieces of management to foster team development and collaboration. (the "big picture" seems confusing at first, but click through the Program and Team Layers, and I'm sure you will find some good insights. http://scaledagileframework.com/ )
Breaking up the team into several smaller teams is a great start. Be sure you setup the means for them to collaborate just as if they were delivering a common asset. Certain meetings and touchpoints that are required (Grooming, Demos, Daily Standups, Scrum of Scrums, etc), most of this is par for the course regarding SCRUM. What SAFe does is scale this to help collaboration across many SCRUM teams. SAFe's framework identifies a Program layer that drives feature identification and program vision (the product owner candidate you spoke of can lead this effort). This Program layer role is labeled as a Product Manager, and works closely with Product Owners on the Scrum teams, thus providing governance over the features being developed. Having the two be separate allows the Program Layer to concentrate on the future and provide current guidance to in-flight work through the Product Owners.
Looking to involve your customers in the internal demos you have will also support transparency and encourage the fast feedback you praise. Since SCRUM and SAFe promote completion of working pieces of software each Sprint, Demo-ing this helps display to each team what has been done and you get instant feedback from your customers.
Regarding the development manager, I found that having this person be an arbiter for technological decisions the teams can't agree upon and helping the Product Manager at the Program Level define features was a great benefit. There is also a concept of a System level team that integrates the individual team's work and provides a program level demo at the end of each Program Increment. This may be a place for that person to still be looked up to, and participate highly in development of the product.
Rotating your Scrum Master can be tricky, as you force people to perform the role. I would suggest one of two things: 1 - do this on a volunteer basis and ensure this person gets the required training to be a SM. 2 - have the teams determine who is best suited to be the SM by organizing themselves over the course of the first sprint or so.
- Do this on a volunteer basis and ensure this person gets the required training to be a SM.
- Have the teams determine who is best suited to be the SM by organizing themselves over the course of the first sprint or so.
The second option is the best as you will find natural leaders and Scrum Masters who have the ability to "wrangle" the team.