A tech lead is a priest, not an emperor

I’ve been developing software for about 10 years. I think I’m pretty good at it. And until 18 months ago, I thought that being pretty good at developing software would make me pretty good at leading a technical team.

That’s an oversimplification. I had thought about it a bit more than that. But I’d never really sat down and thought through exactly what a tech lead was actually supposed to do. It seemed kind of obvious; the tech lead is, like, the leader, right? They’re calling the shots. They design the architecture, manage the build system, divvy out the work and review the code. They’re generals who coordinate a campaign and take the plaudits for success and the blame for failure.

This is certainly how a couple of leads under which I worked early in my career saw it. I now see that they were bad role models.

I also worked on a couple of teams where there was no real lead, where the project was more chaotic and everybody just sort of chipped in what they could. and even when I was relatively inexperienced I enjoyed this a lot more.

Which is not to say that I think it’s the right way to run a complex technical project; simply that being given the opportunity to contribute proactively was much better for me individually than being spoon fed requirements with no sense of ownership.

Now, for the last couple of years, I’ve been employed by an agency who pride themselves on doing these things right. This means a lot of thought goes in to how to run a project and leads themselves get more help when they are starting out. I’ve had the opportunity to work in both a lead and supporting role and it’s been a fantastic experience from a personal development perspective. two years down the line, if I had to sum up what I’d learned, I would put it like this:

A good tech lead is not a general. He is a priest.

(Bear with me).

Some context: about 18 months ago, I did a bit of consultancy work with a client that led to my agency winning a 600K project – one of the biggest bits of new business they’d ever brought in. I felt good about the project and the work I’d done to help land it, I knew that I had the client’s confidence and I was keen to take the lead of the team that would implement the solution. I’d previously coordinated small, geographically disparate teams on smaller projects prior to joining the agency and one smallish project for the agency immediately prior to the consultancy work.

I felt I was ready to step up; my manager agreed to let me take it on, but during the first few weeks of the project I realised that my previous experience had done nothing to prepare me for something of this size and complexity.

I could write a whole post just about those first few weeks (and I probably will), but to summarise: we ramped up from 2 to 8 developers in a short space of time without really fully understanding the domain and I was struggling to find a balance between decision-making, delegation and hands on development. About 6 weeks in, I realised that I’d made a couple of bad technical decisions early in the project which we needed to reverse and, while on any other project I would simply call this refactoring, I felt under so much pressure and my confidence had taken such a hit that I couldn’t help but see these as inexcusable personal mistakes.

In reality, the project wasn’t going that badly and ultimately we delivered it on time, on budget, with a great deal of appreciation from the client, who subsequently invested several hundred thousand more with us in follow up projects.

The fact that that happened however is largely down to Harry – a more experienced lead who joined the project around about the 6 week mark and was able to steady the ship and serve as a fantastic mentor. He was also the author of a talk I’d previously attended on ‘how to be a tech lead’, where the underlying thesis had been along the lines of:

“The role of the tech lead is to make it as easy as possible for your team to be awesome”.

Working with him and seeing him embody those values was probably the best learning experience I could have had.

Now, back to my priest analogy.

Priests do far more than simply preach. They teach, they guide, they advise, they encourage parishioners and help them with daily problems. They serve as focal points for a healthy community and lead from within (and not aside from) that community, encouraging people to take control of and find meaning in their own lives. They share their vision of God and of morality; promote charity and kindness; they administer sacraments and encourage holiness; they take confession and absolve sin. Above all they help their flock to lead what good lives and lead by example themselves.

A tech lead does far more than simply code. They teach, they guide, they advise, they encourage developers and help them with daily problems. They serve as focal points for the healthy team and lead from within (and not above) that team, encouraging developers to take ownership of and gain understanding of substantial sections of the code. They share their vision of the system architecture and deployment infrastructure; promote testing and communication; they administer code reviews and encourage coding standards; they mentor and take responsibility for the wider success of the team. Above all they help their team to build the best quality product they can and lead by example themselves.

Of course, there are differences; even the best analogies break down and this wasn’t even a very good one to start with.

And of course, there are plenty of smaller, more practical tips that can help a tech lead perform well.

But if you go into a lead role with this general philosophy in mind, I think you’ll do a much better job than I did first time round.


When planning gets in the way

So there’s this story in one of the original Red Dwarf books that I often recall when thinking about procrastination. It concerns Rimmer, a neurotic parody of an under-achieving younger sibling who desperately wants to be like his brothers but can’t pass the exam to become an officer like them. He’s taken the exams many times, but each time he fails spectacularly after making the same mistake; epic procrastination.

Before he takes the exam, he tries to organise himself. He puts together an elaborate revision timetable, meticulously planning everything he needs to learn and when he is going to learn it. It’s a masterpiece in forward thinking, and he says to himself; this time it’s going to be different, this time I’m prepared.

But the timetable is too detailed. It takes him too long to prepare. It needs to be perfectly drawn and perfectly shaded. By the time he has finished it he no longer has time to study everything on it, so now he prepares a new revision timetable, this time making tough decisions about the things that he definitely needs to know and the things he can maybe do without.

But he still takes too long. He’d rather prepare the timetable than actually do any work. So now he has even less time and once again his careful plan is out of date. So he embarks on a third timetable…

You can see where this is heading. In the end, he leaves himself with just the morning before the exam to cram the entire syllabus and ends up freaking out and scrawling “I am a fish” 400 times in red pen all over the answer sheet. He’s failed – again – because he’s spent too much time planning and too little time actually doing.

I’ve worked with many small business and individuals over the years; people who’ve written books, people who’ve written software products, people who’ve run marathons or who’ve done crazy things like cycle around the world. Some of them are brilliant, but many of them are not. They often have no more basic talent or experience than your average office worker.

I once had a very successful client who even made a joke about how stupid he was; and truth be told, he didn’t come across as smart. He often failed to understand his own product. And yet, I always used to think; you must have something going for you because you’ve been successfully running this business for nearly 10 years now.

You’ll see self-help manuals in pretty much any bookshop that will claim to have identified what this quality is and have a method for how you can achieve it, but it’s not really a single quality and it’ different in every case – for my client above, I think it was honest amiability that meant that his customers implicitly trusted him and his willingness to fail that meant he wasn’t afraid to try things that seemed difficult in the first place.

That said, there is one thing he had in common with pretty much any other person in the world who has achieved anything of note – that he tried in the first place.

Now, I’m writing this as much for me as for you. It seemed like a good first post, since I’ve been procrastinating about writing this for months now. I haven’t put together timetables with quite the same craft and vision as Rimmer, but I have spent far more time thinking about what I might write than actually writing. I’ve lost count of the number of times I’ve put together a spreadsheet of possible topics, before then spending hours dreaming about what a blog might look like if it’s successful, without necessarily stopping to think about what kind of successful I actually want it to be.

But I also think that while the advice ‘just do it’ is well meaning and often correct, it’s worth taking a moment to consider it further. It feels obvious that you can’t achieve something without trying, but equally having a plan and a direction has to be positive, right? Shouldn’t you take the time to work out what it is that you want to achieve and how you are going to achieve it?

Another episode from popular culture that has made it (often tongue-in-cheek) into many management presentations is the story of the Underpant Gnomes. These tuneful little South Park goblins (I believe they had a song, though I can’t remember the words) had a plan to make profit that basically involved stealing and stockpiling underpants. When confronted on the matter by Cartman, whose underpants they had been stealing, they wilfully glossed over how the plan actually worked. It was simple, see? Step 1 – collect underpants. Step 3 – profit!

This story is often presented as a kind of business fable. How can you hope to be successful if you don’t know how you’re going to achieve that success? Shouldn’t you take the time to plan properly before diving in?

Well, the answer is, it depends.

Some things can be planned. If you’re going to open a corner shop selling convenience foods and a selection of beers, then this kind of thing has been done before. You can talk to existing business owners about the kind of capital you need, the kind of products that sell well, what the overheads are like, whether there’s seasonal variance, etc etc. You can get a pretty good picture of what you’ll need to do to succeed and you can use that to convince lending institutions to back your venture and give you the necessary capital to make it a reality.

Equally, if you’re planning to run a marathon, millions of people every year go running and there’s whole industry dedicated to the science of exercise and the manufacture of running aids. You also have a fairly good idea what your personal timetable and capabilities are so when you put together a training plan you can probably do a decent job of it.

But what if you’re writing a book? You might think you know what the book is about but halfway through you’re probably going to change your mind. Or you might have most of a book in your head but no idea how to actually finish it. If you write the first half and then scrap it and start again is that wasted time?

Of course not; it’s practice. It’s clearing your thoughts. It’s painting a picture from which you can infer a greater picture. Artists will usually do several studies and sketches before setting out to create their masterpiece. Most writers have many thousands of words of discarded material for every thousand they do publish. You can’t plan for that. You just have to do.

The same principle applies to a startup. You might think you know what your product is going to look like when you start but how can you be sure until you’ve engaged with your customers? It’s very unlikely that you’ve 100% correctly anticipated their needs; it’s far more likely that you’ve identified a potential gap in the market and by trying to fill it you will gain further insight into just what that gap really looks like.

Sometimes our primary goal can even become a secondary one once you’ve started on the journey. I recently started running. One of the main reasons I did so was weight loss; yet I’ve discovered that I simply feel better on days when I run and now run for the feeling of well-being it generates. Meanwhile, I’ve resigned myself to the fact that my extra baggage is going to be harder to shift than I thought.

Yet even if your goals don’t shift, even if you have a pretty good idea what you want to achieve when you set out, something else is true of ‘just doing’ something – you get better at it.

If you keep a blog, when you first started you might have convinced yourself you were destined for greatness. You might have believe that you had ‘natural’ talent and the path to success was just a question of application and hard work. You might have believed yourself to be a writer of Dickensian mastery, or you may have read lots of articles about how to write a blog written by other successful bloggers and thought there’s no reason you couldn’t do exactly that. You might have dreamed of making a living from your writing, enabling you to quit the day job and become a famous online personality, being paid to pursue your own dreams.

You probably sucked at it.

Not a lot, perhaps. But if you look at any successful blogger, cartoonist, artist, musician, dancer, choreographer, actor, etc and compare what they’re doing now with what they did when the first started, you can guarantee their work will have evolved. Few people get it right first time.

That said, this isn’t a call to arms. If there’s nothing you particularly want to achieve or your life is already pretty full, that’s great. We shouldn’t feel guilty for the dreams we don’t pursue – some dreams are better off that way.

Really, this is more of a suggestion. If there’s something that you’re thinking of doing but you’re putting it off, either because you lack confidence or commitment, why not just take the first step and see what happens?

This is my first step. Honestly, I may never write another blog post. We’ll just have to wait and see.