One thing I'd do different is the breaking into teams part. My reading of the authors post is to split the team on architectural lines, and place team members based on their technical interest.
I've generally found that you get the best results by breaking into teams based on who likes working with who, and on products / sets of customer-facing features.
When you look at a 10-15 person team you'll usually see some natural breaks where some folk get on better within certain subgroups. I've found that breaking down based on social groups rather than technical knowledge leads to a much better initial fit.
I'd also tend to avoid breaking down on technical architecture - because I live in fear of an anti-pattern I've seen many times where developers get out of touch with how their work affects the end-user.
If at all possible I prefer to break-down into teams based on slices of end-to-end functionality. So you end up with teams responsible for Product A and Product B, or CustomerFeatureSetA and CustomerFeatureSetB rather than "database layer" or "scaling infrastructure".
Personal I'm happy to trade of more communication between teams (because team A and team B will often both need to build infrastructure C) to get everybody focussed on delivering features that customers use.
(I also have to admit that I'm confused by saying Scrum is a heavy-handed process.... There are things I don't like about Scrum, but it's one of the most light-weight frameworks out there.)
I'm also surprised the teams end up so small. Not that there's anything bad in that - I'm just surprised. I worked with teams of 6-9 folk where people avoid stepping on toes so I'd be interesting in finding out the pressures that made pairs/triples work so well for them.
I'm wondering how the teams work together physically. Are folk co-located? Team per-office? All teams in one room? Something else? Looking forward to the "cohesion and strategy" followup :)