@defmyfunc blog

Written by @defmyfunc who lives and works in Manchester, UK. You should follow him on Twitter

Things I wish I'd been told about engineering management

Nov 26, 2019, 3:22 PM

When I first took on an official ‘management’ type role during my software development career the first book I was given was as part of my training was The Five Dysfunctions of a Team: A Leadership Fable by Patrick Lencioni. I now realise that I was extraordinarily lucky to start my management journey at the BBC, even though it just felt incredibly scary at the time.

I couldn’t agree more with Charity Majors Engineering Management Pendulum and A Manager’s Bill of Responsibilities (and Rights) articles, maintaining the ability to be hands on is integral to being an effective manager in software development. You will not be able to sustain your effectiveness in a team without ‘doing the do’, at least periodically.

I also wanted to reference Will Larson’s An Elegant Puzzle: Systems of Engineering Management, because it is, I feel, the most comprehensive compendiums of current engineering management theory (is that a thing?) going. Well worth a read.

All of the above do a much better job of defining what management is. This list merely serves as ‘here some other stuff that isn’t always clear when you take on a management role’.

But its important to say none of what I am writing deals with ‘Toxic’ behaviour. All of these examples are couched in ‘people are trying their best with the tools and experience they have’ rather than ‘my boss is making me work 80 hours a week and I am exhausted’ or ‘I think racism in the office is acceptable’.

Anyway, this started off as a ‘things I wish I’d been told about management’ list… so here is that:

You will have to manage people you don’t like

This seems obvious in retrospect. There will always be people you don’t like. But I guess I wasn’t quite aware of the impact this would have on me.

As a developer (of any grade) on a team, if you don’t like someone on the team then as long as you both aren’t … antagonistic? :)… about it then its not that big of a deal. We all act professional and get on with it.

As a manager, that isn’t really possible. Different people have different needs and it isn’t fair on an individual or a team if you change how much effort you put in because you don’t like them.

You are going to have to do those 1 to 1’s. And you are going to have to put your heart and soul into it. You are going to have to help them succeed and be their best them. Even if you don’t like them.

You will have to manage people you do like

Again, obvious right? Except treating people you naturally get on with fairly in the context of a bunch of people is really tough. Regardless of how you behave, your actions are subject to interpretation by others. It can be tough on team dynamics if there are any signs of favouritism.

You will constantly misinterpret the actions of others

Whatever you think is happening, or going through someones head, or whatever, probably isn’t what you thought it was. Listen to people don’t assume.

Appreciate awkward silence in conversation

I found out the most about things after a long awkward silence. Let it go on as long as it needs to.

People don’t want your advice

Just because you are discussing peoples problems, doesn’t mean they want your advice. They may just want you to listen, and feel heard. I am fortunate that my partner is a counsellor by trade and I feel I have learnt more about management from understanding how counsellors practice their profession than I have by talking to other managers.

Now, you can see that as a damning indictment of our profession, or that I had a bad time of it, or that I don’t know what I am talking about. But, management at its core, is people. Engineering management is the intersection of systems and the people who build and maintain those systems. Learn about both.

But then most of the time, you should just shut up and listen.

People don’t want to be told what to do

Just because it worked for you doesn’t mean it will work for others. In fact it probably won’t. Put all that experience you have gathered to good use and help people find their own way through problems rather than telling them what to do.

Except when they do

Some folks appreciate directive management occasionally and actually, sometimes it is the right answer. Its just very very rare. More rare than when you end up resorting to it.

Try to be the best problem solver you can be

The one skill I would recommend keeping sharp and genuinely perhaps remaining the ‘best’ on your team at would probably be problem solving. Show people that you don’t have to write code to solve problems. That most problems are people not technical. How to break problems down into manageable chunks. If you are choosing the management ‘pendulum’ approach, then keeping this honed is vital.

Show recognition

I’ve been a manager many times where I don’t control a persons pay. I am assuming this is common. This means arguably the single most important form or recognition is not under your direct control. So how do you show recognition? Again, I am assuming that you give verbal feedback around quality work anyway, but what other levers are open to you. For instance, I often use time off as a way to reward my team.

Different work patterns are equal

Some people will get home and submit PRs. You can’t stop it. Regardless of if you tell people not to. Accept that different people have different attitudes to work outside of those 8 hours a day. Help them make the 8 hours they are paid for the most productive they can be and don’t sweat the other stuff.

Never put off a conversation

Give feedback as soon as that person is in a position to receive it. Always be kind and honest.

It sucks when you lose someone because of money

Maybe I’ve just been in badly paid organisations :S but losing someone because of money just feels like the biggest waste. And yet, it happens all the time. I don’t know if this part I have ever truly reconciled,

Its okay to lose people who have moved on

Learning to let people go who are no longer aligned to the values of the organisation is important and should be mutually recognised by everyone as a fact. DO NOT KEEP PEOPLE WHO HAVE MOVED ON. If they are already gone, do not try to keep them with more money. This is a terrible decision. Do not promise them the organisation ‘will change’, it probably won’t. Especially not if its a core value.

Epitomise the culture and the values of the company you work for

So, you should be the person who personifies the cultures of the organisation the most on your team. You should live and breathe it. Whenever someone is like ‘I hate all this company values crap its just management bull shit’, your actions should prove them wrong.

Ultimately you will have to manage these principles ‘up’. That is, your team should see you fighting for these principles and upholding the culture that is being sold to them with people outside the team. Often, your manager :). If they don’t they will be right to call it out as bull shit.

Written by @defmyfunc who lives and works in Manchester, UK. You should follow him on Twitter