The Indianapolis Colts are 0-5 and for one major reason – their star quarterback is hurt. Peyton Manning (who has been a symbol of durability for over decade) is out after having neck surgery and that has translated into five consecutive losses and my inability to watch the Colts play this season in essence making the NFL season non-existent for me (well except for a little thing called Fantasy Football).
Is there anything to learn from the Colts debacle? Possibly. Minimize silos and specialization as much as is practically possible. Create a culture of cross-functionality.
American Football is a sport that thrives on having specialists. It is rare to see a player actually play more than one position consistently except in special defensive packages and/or on special teams. In fact, player height and weight can be radically different depending on what position is being played. Offensive lineman are much bigger than tight ends. Defensive backs and safeties are not very tall. Because injuries are common place, teams have backup specialists for each position. When a starter is hurt, especially in a key position like quarterback, it can have serious ramifications on the success of the team. (Did I mention the Colts are yet to win a game.)
Let’s look at another sport for comparison. Football (or soccer as it is referred to State-side) is another sport with defined positions. However, strictly speaking, there is really only one specialist – the goalkeeper. Field players generally can play different positions and be quite decent at them. Arsenal (my favorite club team) had to deploy Alex Song, usually a defensive midfielder, into a center back position due to injury for a couple of matches. Barcelona has done the same thing with Javier Mascherano. But beyond that, and this is even more exciting, during the course of a game, players change positions all the time. Fullbacks “overlap” into a winger position, midfielders make runs into a striking position (a technique Barcelona has perfected) or drop back to cover a fullback that has pushed up. Teams like Barcelona and Arsenal are renowned for the fluidity and movement of their players as they change positions on the field. The ability of the players to be cross-functionality allows quick adaption even during the course of a game.
I see software development being more like soccer than football. The Agile movement made popular again, the notion of “cross-functional teams”. Instead of having a bunch silo-ed specialists on a team, adaptability and flexibility comes from having what one could call a “team of generalists”. A group of people with the ability to wear multiple hats and perform different roles. In fact, I believe it was for this reason that some Agile methodologies use only the “developer” title for members of the development team. A “team of generalists” can respond to team changes such as vacations, departures or even the simple need to swarm on a given initiative in much dynamic way than a “team of specialists”.
Beyond just having generalists on a team from a skill perspective, it’s also important to have generalists from a domain knowledge perspective. All too often, teams will have generalists from a skill perspective only and still promote specialization in aspects of the application. For example, Susie is the only developer who works on the invoice module. Well what happens if Susie is out? While specialization may seem more efficient, it reduces the ability of the team to respond to change and change is certain. Remember, that in knowledge work, the concept of a backup is more of a fallacy than a truth. If you are not actually doing the work, then you don’t know how to do it.
So how do we develop cross-functional teams? It’s critical to establish the culture of cross-functionality especially considering that it goes counter to prevailing reward systems that esteems specialization. Teams need to be educated differently. Practices and techniques like pair-programming, rotating work assignments, cross-training, wikis, documentation, collaborative design sessions should become part and parcel of way of life for the team.
As an exercise, take inventory on both who knows what and who can do what on your team. This will show how cross functional your team really is and where the team is exposed. Fill those gaps, you don’t want to end up like the Indianapolis Colts.