I’ve been meaning to write about the managers and Agile software development for a long time. And, apart from a few asides, I haven’t.
Well partly because the topic is difficult, or rather large, but mostly I’ve not written it because I’m fearful of the flames that will come down on me.
You see I think managers have a role to play in Agile, but I am acutely aware that many people don’t.
So am I stealing myself, I’d love to come up with a “grand theory of management” but I’ve been trying to do that for years! I think instead I’d start blogging about my thoughts on management, and hopefully a grand unified theory of management will emerge.
Still, I expect many people will not agree with me - there is one of them I can see right now, he’s almost standing in front of me. The funny thing is, I was a professional programmer, I got interested in management as a way of ensuring I didn’t become the type of poor manager I’d worked for.
I took time out of my programming career to study management. What nobody told me was that if you study management programmers are more suspicious of you than ever, non-developer management types will always see you as a programmer (perhaps a jumped up programmer) and programmers who have fallen into management (those with no qualification and probably no time to study the subject) don’t trust you. Add in the fact that the academic community is split over management qualifications and its a right mess.
Unfortunately managers and programmers are locked in a decades-old existential fight.
Many on the management side of IT dream of a world were programmers can be replaced by a software tool. That isn’t going to happen, all it does it move the point at which the programming happens. If you replace a programmer with a software tool the person who uses the tool is now a programmer — whether you call them a programmer, analyst, consultant, or serf.
On the other side, programmers dream about replacement managers with “self organizing teams.”
Both sides want victory by proving the other need not exist — at which point they will disappear in a puff of smoke.
My logic is this:
- Management is a skill like any other, like writing Java or writing test scripts
- Many people who find themselves managing don’t have the skill and some don’t bother to learn
- Consequently, many “managers” aren’t actually very good at managing
- While there are a few “natural” managers — like there are natural Java developers(?) — one can learn to be a better manager
The state of management in the IT is so bad that frequently removing the manager altogether makes things better than they were.
Oh, and the misuse of the word “manager” doesn’t help.
The thing is… I’m an ex-programmer, I still consider myself an engineer (another controversy), and I also think management can play a useful role in engineering software development.
It took me 10 years to become a software engineer and I never stopped learning, 34 years later I’m still learning to be a better programmer.
I also hold an MBA degree, it took me a year of hard work to get it.
1 year, not 10 years, and certainly not 34 years.
Actually, it has taken three generations to make me an engineer: my father was an engineer, and my grandfather too. I was going down to engine rooms when I was 7 or 8, I’ve watched engines being overhauled. I know what being in dry dock means, and I know commercial considerations and engineering considerations are often in conflict, but engineers, not people in suits make it work.
Being an engineer and a manager is not a contradiction. I know that because my father and grandfather were Chief Engineers: they took years to obtain that rank, and when they did they still went down the engine room, they still mucked in sometimes, but they also spent a lot of time “managing” the work in the engine room and on deck.
You see: it takes an engineer to manage engineering.