‘What is a Software Development Manager?’ is adapted from a piece I wrote quite a few years ago. I’d been a manager for perhaps three or four years, and I was getting involved in recruitment. So I persuaded several colleagues to write “employee casebooks” about their roles. To make it fair, I made myself write one, setting out what I thought were the important aspects of my role. It was the first time I’d really sat down and attempted to codify my model of management. Ten years on I mostly agree with what I wrote then. See what you think.
Hi, I’m Bill Powell and I’m a manager, working at <company>, looking after some of the developers in the <groupname> group.
Everybody knows that Managers have found the secret of sitting in an office all day, reading and writing emails all the while, getting paid pots of money for telling other people what to do (and getting all the glory). Well, it may be true, but if so, I’m not there yet, on any count!
Part of my job is to be an Enabler. I look at my Team, and search for the things that are stopping them doing their job, which is to create top class software that other specialists can sell and earn us all pots of money. It might be simple things, like making sure they’ve got up-to-date PCs, or properly licensed software. Maybe they don’t know the right person to ask about, well… whatever. It’s my job to know the right person to ask about absolutely anything, and if I don’t know, to find out PDQ. That’s where all those emails and meetings come from – one of the main blocks to creating is that people don’t have the right information.
Part of my job is to be a Decision Maker. That doesn’t mean I’m a little tin god, dispensing arbitrary fiats and watching the fun as everyone scurries round. No, I have to research every decision – who’s affected by the decision, what’s their view, how are they impacted? So if you come to me for a decision, I’ll ask you lots of questions, partly to see if you already know the answer. I’m not impartial in my decisions – but while I am a Dev manager, it’s <company> that pays me, and pays me to make decisions that are in the interests of <company> as a whole.
Part of my job is to be a Leader. Mostly, that means spotting the cliff edge before everybody marches over it (myself included). Sometimes it includes looking far enough ahead to spot the more interesting roads, and things we might do on the way that’ll earn us our bread and butter, and a bit more besides.
Part of my job is to be a Mentor. What do you want to do in your career? Do you want to be a better developer? Maybe I need to research training for you, or maybe I need to plan your next assignment a little differently. Do you want to be a team leader? I’d better give you a bit more responsibility. You want to be a manager, like me? Are you kidding? Oh well.
Actually, that last bit is really important. In every manager/managee relationship there are boundaries to be agreed – who takes responsibility for doing what, basically – but they’re different in every case, and mentoring is all about adjusting the boundaries to suit the managee’s ambition / ability / immediate circumstances, almost on a weekly basis.
There’s a whole bunch of other stuff. Like Agony Aunt, Teacher, Listener, Encourager, Interviewer. Bookkeeper, project planner. Some of them are optional, but Enabler, Decision Maker, Leader and Mentor are not.
How did I get to be a Manager?
Once upon a time I was a developer. I wrote C code, Unix device drivers and such-like. I did once lead a project, but it was a disaster – I promised to deliver the sun, moon and stars in six months, but I was lucky to ship a flashlight. I went back to developing code for many years after that.
But then I made the mistake (in Unix terms) of overseeing a test cycle, and calling it “managing”. So when I came to <company>, they were brave (or desperate) enough to let me be a Dev Lead. The difference was that this time I had a manager who had the time and ability to mentor me through. And when he eventually left, he’d taught me enough about managing that I could wing it.
What do I need to be a Manager?
Confidence. Everybody you work with is just another human being like yourself. They’re neither super-beings nor ogres. Respect them, don’t fear them.
Humility. You’re probably going to make a lot of mistakes, and have to say sorry quite a few times. Both are quite normal, both are best done quite quickly.
A willingness to serve others. A lot of the time it’ll feel like you’re getting the short end of the stick. Managing isn’t about ego, but about bringing out the best from everybody (else).