We have about 14 teams. The topic of management is a great one. We've shifted our approach over the years. That story might make a good blog article in itself. We've ended up with what's sometimes called a "matrix" structure, where people's day-to-day activities are based on what the team is doing, but each role (dev, tester, UX) reports into a manager (who's usually not on the team) with expertise in that domain. We've mostly avoided middle managers who only manage -- nearly all our managers are also on teams and, if they're devs, code. But we've also learned that having more than five direct reports can get pretty overwhelming, and so we've had to expand our org chart as we've grown for that reason.