So you’re a manager in an organisation with 500 or more people and you build product that in some way involves software. We could spend a lot of time discussing whether organisations need tens to hundreds of teams. The reality is that a considerable number of organisations operate at this scale. Even if they decided to downsize, that’s not going to happen fast and they’re still looking to improve their agility. The organisation has drank the kool aid around agile and lean startup. From reading the agile literature you imagine an org chart with the CEO at the top, the teams underneath and nothing between. No mention of manager, only self-organising teams.
So is it time for that career change into frozen yoghurt making?
Unfortunately not. The reality is that the organisation still needs you and others like you.
So why do we need managers?
Managers in agile organisations have a different perspective to developers and managers in a traditional organisations. They need to look at the organisation as a system. They help increase the value the system delivers by managing the systemic risks
The team handles mitigating or implementing contingency for any risks it is able to. However, the team has to function as a component of the larger enterprise. Now Deming’s statement on component selfishness kicks in.
“A system must be managed. It will not manage itself. Left to themselves in the Western world, components become selfish, competitive, independent profit centres, and thus destroy the system. . . . The secret is cooperation between components toward the aim of the organization. We can not afford the destructive effect of competition.”
via W. Edwards Deming – Wikiquote
So at best teams won’t be in a position to see the organisation risks that could occur. At worst they’ll attempt to optimise for their own efficiency at the detriment of the organisation. I use the example that we have the constructs of government, states and local councils in everyday life to prevent individual or tribal selfishness harming society as a whole. We can argue that some are more effective than others but in general we’ve yet to come up with a better model. So in software development this is where managers come in.
Managers are able to stand back and look at the organisational system and see risks at this level. They help balance team, product, organisational and customer risks. Risks such as regulatory compliance, key person dependencies, funding risks, contract risks, third party dependency risks and market competition risks. The managers role is to harvest and manage these risks. Yes, the team could mitigate some of these systemic risks, but they don’t. Why? Because the resolution would be wasteful for them as a team.
So the manager protects the system from this selfishness by applying constraints on teams. These constraints describe what needs to be done but not how. Some call them “guard rails” for the organisation. The team then works out the best way to deal with the constraint. The manager can help here by using Socratic questioning to help their teams come to better ways of addressing the constraint.
Development organisations that employee hundreds to thousands of developers exist and want to become more agile. Their ability to deliver a project or product has many more ways of failing than succeeding.
An agile manager’s job is supporting the CEO in reducing the likelihood of events that can cause systemic failure to happen, or shepherd the organisation around them.