My recent return to playing Sensible World of Soccer is not just fun. After all, team management has been happening in the football scene for far longer than the software industry has even existed. There is some serious stuff we can learn there.
So after three successful seasons that turned Hibernians (a local team that most people have never even heard of) into a winner of all the major football leagues, I decided to take up managing Partizani Tirana, the team that won the Albanian Premier Division, but that is similarly crap on an international level (at least in the game).
I could have remained managing Hibernians, now a stellar team, for the fourth season. But while it is enjoyable to win, the real challenge (and fun) is in watching people grow; learning their strengths and weaknesses, and putting them in the right formation so that they can work together with synergy. As for the old team, it is my aspiration in all aspects of life to leave things better than I found them, and my old boss certainly didn’t mind decorating his shelves with the trophies I won:
This funny guy is my new boss in the game:
And this is my new team:
I don’t know these guys, and I don’t know how they play. So how can I effectively manage them?
The first thing you need to do to manage a team is to learn their strengths and weaknesses, i.e. what they’re good at, and what they need to improve. So after playing a few matches with this team, I can learn about their skills: who are the fast guys, who have the best ball control, etc.
Everyone can be useful. If one of the attackers is not great at finishing, for instance, he can have a supporting role for the other attacker. The trick is in finding the right role for each team member so that they can be useful to the team.
While you can often make adjustments within the team to address weaknesses, sometimes this is not enough. For instance, with Hibernians, buying a fast midfielder with great ball control gave a great boost to the team. He would support attackers in offensive strategy, run back to help defenders by intercepting opponents, and basically go everywhere to support the functioning of the team.
This midfielder is an example of a playmaker. The playmaker is essentially a visionary, a strategist, and a catalyst for the team to achieve its goals. The playmaker is not necessarily in a leading role. But he is respected because he makes things happen; he brings the team towards success, and also helps it get through the tougher situations.
Software teams are not very different. Developers come from all sorts of backgrounds, and have different skills and comfort zones. The manager who takes the time to learn about their abilities will be in a strong position to allocate his resources where they are best focused.
Playmakers in software are sometimes called catalysts (as in the wonderful anecdote in the Peopleware book). Whether they have a leadership role or not, they play an important part in helping teams to gel, solving complex problems, working on essential infrastructure, and formulating the technological vision of the team.
Managing software teams may be something that appeared over the past few decades, but in many ways it’s not very different from team management in general. Looking at older disciplines such as football allows us to gain insight into management as a whole, and they can very well serve as analogies for what we do in software.