The last two blogs have all been about roles and people who are commonly thought of as "managers" in software development but who aren’t—Managers who are not managers and Analysts aren’t Managers—either because they happen to have the word "manager" in their title or because exhibit characteristics which programmers associate with managers.
Those blogs were written to prepare the way for this blog…
Non-Commissioned Managers are team members who fill a management role but aren’t usually recognised as managers. Borrowing a military term I think of these people as Non-Commissioned Managers. These are software team equivalents of a corporate or sergeant.
(I have to beg forgiveness for breaking one of my own rules: I’m making a military analogy. I’m very conscious that like so many people who make military analogies I have no direct first hand experience of the military and there is every chance that I’m getting this wrong.)
These are people like: Team Leaders, Technical Leads, Architects, Scrum Masters, and Coaches. Some of these people—Architects and Scrum Masters—have specialisations and because of their specialisation they have some authority in a special area. Others like, Team Leaders, make the teams work day-to-day, they get a lot of the grief management do but few of the rewards. Such roles are akin to Sargent Majors of their teams.
On any software development teams there are a usually a group of people who are not consider managers but really do fill a management position. They may manage people, they may have authority, specialists skills or knowledge may give them authority and power, they may make decisions on behalf of the team, they may guide/coach/advise people who actually do the work, and they get listened to by the real management.
I’m including Scrum Masters and Agile Coaches here. Their specialists skills give them some authority in particular areas. I know some Scrum Masters won’t like this but in many organizations the Scrum Masters is very much seen as the Sargent.
Last October I saw a presentation at a conference where the speaker talked of a company with just two managers—the CEO and the Sales Manager. Everyone else was some form of developer. But on closer examination, when you asked, the developers included technical specialists, team leads, and others who filled a management role but weren’t seen as part of management.
This is akin to having an army unit with corporals, warrant officers and sergeants but no Lieutenants or Captains. Such units exist, they are usually small units. Larger units without commissioned officers exist too, perhaps only briefly when officers are killed in action. When commissioned officers are absent then non-commissioned offices fill the void. Even when there are fully fledged managers the NCO managers are necessary to make the teams work. They are on the ground, at the code face, with the team all the time.
On teams without a non-commissioned manager, it is not uncommon to see a leader emerge, usually because of technical skills, sometimes because of charisma. In time, these people may be recognised by the managers as the NCO/NCM, a kind of battlefield promotion. NCOs get some authority from the organization but most of their authority comes from the team because the team respects them.
(I’ve also seen NCOs imposed on teams who did not respect the chosen NCO. This is a recipe for trouble.)
Herein lies a lesson.
A very small army unit, say a fire team, is commanded by an NCO. Fire teams form squads and squads too are commanded by NCOs. (I should say I’m getting this from Wikipedia, and the terms differ from army to army.)
Squads, in turn, form platoons, platoons are (according to Wikipedia) commanded by an officer, a Lieutenant. Platoons form companies which are commanded by a more senior officer, a Captain.
Do you see where this is going?
Command, management, is a question of scaling.
Small teams can be managed by non-commissioned managers but as you group into bigger units you might want commissioned managers. Or you might pretend that your non-commissioned manager is OK. If you do there will come a point where the non-commissioned manager will not be doing much except for managing.
One of the problems Agile has right now is everyone wants to know about "scaling" but a lot of Agile thinking and literature rejects management. This problem isn’t new…
During the French and Russian revolutions, the bourgeoisie (managers) were shot at the start of the revolution. And now, like Napoleon and Stalin, we find that some of the things we want to do require managers. Without a respected command structure in place, we have trouble enacting decisions and strategy.
One of Agile’s "scaling problems" is that we have a mixed up view of management.