Ask HN: What makes a good technical leader – any recommended books?

297 points by latentdeepspace ↗ HN
I just became a technical lead (spiced with a little product manager) for a team who is working with machine-learning/deep-learning technologies (I have ~6 years of background in this field). I feel like I am performing well, but there is a lot of room for improvement on: how to plan for the future, how to communicate success, how to assign engineers and researchers to tasks, how to define tasks, etc.

Do you have any recommendation on what should I do, read to become better and better every day? I want my team to be successful, and to show the improvements we make to the company.

115 comments

[ 3.6 ms ] story [ 174 ms ] thread
What "tech lead" means varies hugely from organization to organization and from team to team and person to person. For general success of teams, this is my favorite book: https://www.amazon.com/Debugging-Teams-Productivity-through-...
> What "tech lead" means

That roughly translates in my head to ‘terrible youtuber’

The Five Dysfunctions of a Team is a perennial classic, though not tech focused. But that's probably okay in combination with more tech-industry focused literature.
I've found that Switch[1] is really helpful for technical leaders. A large part of the job of a leader is successfully implementing change and too many leaders with a technical background lean too much on logic and reasoning to try to make changes happen. Switch offers a playbook for successfully implementing change and when I've followed it closely I've been much more successful than when I wing it.

[1]https://www.amazon.com/Switch-Change-Things-When-Hard/dp/038...

> Do you have any recommendation on what should I do

Research. Why? Because this question has been asked dozens if not hundreds of times.

One of the skills of a tech lead (or parent, or anyone) is recognizing when a person may just be seeking recognition and politely playing along.
Personally I think people with sports and military backgrounds have the soundest perspectives on leadership.

The sociology of software engineering biases the perspectives on leadership therein toward this kind of contempt for subordinates.

Great point. Who has better perspective on teamwork than people who spent their life in real teams? Life experience is an area where tech really needs to diversify. Hire ex-military, hire rugby players, philosophers, political scientists.
Right, so this is essentially a big circle jerk. He gets to feel like a great person because he's "smart enough" to ask the question. You all get to feel smart by answering the question (that has been answered hundreds of times before) and everyone gets karma and upvotes.

If the OP truly wants an answer they could have researched it, but as you stated the OP doesn't really want an answer, they are "seeking recognition"

Yawn.

Sorta feels like research is what OP is doing by asking this question in a place where presumably lots of good technical leaders hang out.
Read The Manager’s Path by Camille Fournier. It’s not just about managers, it’s also about tech leads.
If I recall correctly, only the first 2 chapters are about tech leads and mentoring. The rest is already about manager roles. I don't know if it's a good investment for someone focusing exclusively on tech lead role.

That being said, really good book :)

My two favorites for this are 'Becoming a Technical Leader', Gerald Weinberg, and 'Making Things Happen', Scott Berkun.
I would definitely recommend Weinberg.

Don't be put off by the fact that his books are self-published, and the covers aren't great. He is brilliant.

Weinberg's writings are great. You can find most (all?) of his books here: https://leanpub.com/u/jerryweinberg. I haven't read Becoming a Technical Leader yet, but I have read The Psychology of Computer Programming (among other books of his) and I'd recommend it as well for someone wanting to lead a team.
For me, one of the most valuable things about 'Becoming a Technical Leader' are the exercises/questions at the end of each chapter.

For example, from the end of Chapter 1, 'What is Leadership, Anyway?': "Make a list of situations in which your presence seems to increase the productivity of others. Alongside this list, identify situations where your presence seems to decrease productivity. [...] What do these lists tell you about yourself and the environments that empower you?"

Weinberg has a way of getting you to reflect that I find profoundly valuable, if I am willing to do the work.

The best book on leadership I read was Jocko Willink's Extreme Ownership[1]. He was a career US Navy SEAL and bring a lot of great leadership approaches from the SEALS and correlates them to the business world. His principles lead back to the idea of taking extreme ownership of everything related to your team and the "mission". I really liked his no nonsense approach.

The best lesson I learnt on leadership is to listen to and believe in your team. They are the experts, not you anymore. Your job now is to clear the path to their success. Different people need different things to succeed, it's your job to figure that out and try your best to provide it.

What I recommend: Figure out what kind of leader you want to be. Read as much as you can and talk to other leaders inside and outside of your company to see what works and doesn't work for them.

Finally, make sure your team has a crystal clear definition of what success is and the milestones to get there. Ensuring this understanding will help your team move in the same direction.

Good luck!

[1] https://www.goodreads.com/book/show/23848190-extreme-ownersh...

I also like that book. There are some obviously major motivational things that are different from corporate life (from what I've read, I have no first hand military exp): a camaraderie of protecting your peers with a common mission of literally staying alive, a chain of command with dire consequences, and other humans trying to kill you.

None of those things exist in software engineering so there will be people that aren't motivated by the allure of moving up, aren't passionate about the product and maybe just want to do their job and go home. There is nothing wrong with that as long as they are doing their work.

As a leader, you may have peers that will like you to take extreme ownership because they can play politics and blame you for things. I don't think there is room for that sort of BS on a battlefield but I don't have first-hand experience.

There are also a lot of teams that don't have 'mission' like goals that are clearly evident (e.g. root out terrorists in Ramadi) but have a continuous flow of work to be done.

Like any books/videos/courses on leadership or self-help, take what you can from it an see what sticks in your world, don't take it as a prescription or steps on how to do something.

> As a leader, you may have peers that will like you to take extreme ownership because they can play politics and blame you for things. I don't think there is room for that sort of BS on a battlefield but I don't have first-hand experience.

This question is addressed, if not in the book, at least in his podcast. Let me see if I can find it.

Another recommended book out of the military is Team of Teams: New Rules of Engagement for a Complex World by General Stanley McChrystal.
When I was still a new dev, I had a "superboss" in another city (HQ) managing teams across the country including our little dev team. I was new and did not interact with "superboss"-es from HQ directly.

One day after a major release stuff broke in production. The company was losing customers daily. The "superboss"-es from HQ descended on our little dev team in a small midwestern city and ordered "Code Red".

What it meant to me as a new dev was that I can't go home and the whole team had to stay in the office until the problem was solved... A part of the team had to sleep in the office for a few weeks. (I still don't know if this is against OSHA.)

Many years later while I was watching the movie "A Few Good Men.", I learnt that "Code Red" was a military term. Suddenly, it dawned on me that my "superboss" was also an ex-military person.

Sleeping at work did not fix the issue, after many months of hiring help and bringing in more hands the outage was brought under control.

Did the ex-military "superboss" help the situation? I don't know...

Now I know that Military veterans in their enthusiasm to find work in civilian environments tout their ex-military skills as team building or leadership skills.

Skills learned in the military are for war, learned for conflict situations and applying them to civilian environments and bringing a war mentality or attitude to a workplace is toxic.

I don't have an answer to what makes a good technical leader but I know from experience that ex-military style leadership only adds to the toxicity of a workplace.

The book Extreme Ownership would not condone psychopathic behavior like making people sleep in office for weeks at a time. Nor would any ex-military leader I've ever encountered. Military skills are not purely "for war" any more than college skills are for "writing essays."

Sorry you suffered that experience though, hope you made it out of there.

While for sure not all "ex-military skills" are leadership skills, there are some general leadership skills you can learn in many places, including the military.

The book is in my opinion a distillation of those skills, which -- maybe just so happen to -- come from military background. None of what is presented in the book come anywhere close to the situation you described. I would dare to say, quite the contrary. It is about listening, understanding, trusting and many other things, usually considered positive.

It had a great influence on me, though I have never even thought of joining the military.

I started practicing extreme ownership as a regular developer and made my way up to a team leader in about 6 months time. Now I double down as a fresh (and young) leader.

1. Code Red has been part of broader civilian idiom since, I don't know, the 50s? Use of "Code Red" doesn't indicate anything.

2. Common sense dictates that whenever one transfers skills to a new context, one assess the underlying assumptions and context of those skills to adapt them for use. I'm sure mistakes in that regard will inevitably be made, but I give most people more credit than to assume, a priori, that people will transplant those skills without any thought given to changing contexts. That seems like a very condescending assumption to start with, but maybe I'm misreading you.

Forcing people to sleep in the office asa strategy to fix a complex system is surely a sign that someone was not thinking about context?
EDIT- Seems the below came from a misreading of the OP text, But i cannot delete it now that I'm downvoted... Please ignore.

> Skills learned in the military are for war, learned for conflict situations and applying them to civilian environments and bringing a war mentality or attitude to a workplace is toxic.

> only adds to the toxicity of a workplace

What exactly was the toxicity besides your choice to overreact (stay overnight) ? Why do you believe that leadership skills for war are not applicable to other domains?

>besides your choice to overreact (stay overnight)

It was not a choice. It was an order.

A company can’t “order” you to stay overnight. Unlike the military you can walk away.
People did walk away eventually. But not immediately because when you have a family, for instance, you can't leave a job without making sure you have health insurance etc., People eventually left once they found other jobs.
If you’re otherwise a productive employee you can just say no too, and dare them to fire you.
"daring" your employer is not a wise career advice.
“If you’re otherwise a productive employee”.
>A part of the team had to sleep in the office for a few weeks.

So it sounds like OP was coerced to do so and it was not a free choice or an "overreaction" as you characterize it.

i see, I didnt read it as a command but as a "We volitionally chose to solve the issue this way"
"Had to" usually implies coercion of a sort. Like you might say "in PE class we had to stand on one leg for 10 minutes".
I've had experiences where "Had to" was like

"If I wanted the outcome I was aiming for I had to.... (workout?)" This is how I took the sentence. A totally volitionally accepted responsibility

I'd be interested to learn more about the technical problem. Any problem that takes months to fix must have been deep. Can you share some details about that?
Extreme Ownership is great. I thought at first that it was going to be a pure rah-rah book about the military, but it is actually quite practical and generally applicable.
I just couldn't disagree more with the idea of building a basic knowledge and understanding of management from the military. There are some generalisable lessons to be learned from military management/leadership situations, and undoubtedly some that are transferable to tech, but there's also a vast and very approachable literature that draws on military and every other imaginable scenario to distill out lessons and principles. The rest of your advice is good, but please, just learn about the core subject first, rather than a niche and fairly radical lens on it.
> They are the experts, not you anymore. Your job now is to clear the path to their success.

This is an excellent concept and an important one to really get. I go out of my way to never use the phrase “my team.” It’s not my team, it’s all of ours. I’m a member of it, too.

It’s my job to make sure they succeed. So instead of “my team” I always say, “the team I support” to reinforce that.

Congrats on the transition! I have several books to recommend that I all read are on my bookshelf, some with reviews[1]. YMMV vary but these were the most helpful for me:

1. The First 90 Days - a good reminder that when you transition, it's like starting a new job

2. Become and Effective Software Engineering Manager - a hands-on book for people transitioning to management, starting at a new company or looking to make more of an org-wide impact.

3. The Manager's Path - a short reference handbook for managers at all levels.

4. The Goal - written in the '80s, yet a timeless novel on what management is about, may that be a manager of a team, an organization or an industrial plant.

Also, I wrote a post about my learnings on transitioning from engineer to manager that has some good comments on HN[2]

[1] https://blog.pragmaticengineer.com/my-reading-list/#engineer...

[2] https://news.ycombinator.com/item?id=15326652

Following on from The Goal are It's Not Luck and Critical Chain. The latter of those is particularly good in combination with the more recent Phoenix Project.

Each of these books is a bit utopian or idealistic. By doing what's suggested by the guru everything magically works out. But, while not magical, the ideas really do work and help operate and understand organizations. The principles are not complex, each book can probably be summarized in a 3-5 page paper. But the "case study" (quotes because it's a fictional plant/company, not just one obscured by pseudonyms) is good for illustrating the point and the path of process improvement.

An Elegant Puzzle by Will Larson was very interesting. It's a bit of a handbook and you don't necessarily have to read it cover to cover but instead you can dive into whichever section that is relevant for you at the moment: https://www.amazon.com/dp/1732265186
I agree; It definitely feels more like a reference book.

I couldn't get on with it personally. While I like reading his blog, the book just lacked personality. Maybe I was expecting personal anecdotes to explain some of the ideas.

I've written a lot about this as a resource for my colleagues at work, perhaps you would find it useful as well. There's a list of recommended books embedded in there, but a lot of other info as well: https://ianwdavis.com/advice-new-lead.html
1. "An Elegant Puzzle - Systems of Engineering Management" by Will Larson. His blog & "Staff Eng" posts are helpful as well. https://lethain.com/tags/staff-eng/

2. "The Phoenix Project", "The Unicorn Project" (novels), and "DevOps Handbook" by Eugene Kim, on how different parts of a tech + non-tech organization come and work together.

3. "High Output Management" by Andrew Grove on overall technical management.

4. "Measure What Matters" by John Doerr on setting objectives and measuring their progress.

5. "The Checklist Manifesto" by Atul Gawande on thinking through replicable processes.

6. "Who" by Geoff Smart on hiring.

7. "Start with Why" by Simon Sinek and "The Culture Code" by Daniel Coyle on creating culture and reasons for why people do the work. It's an important part of any management process, double import because of how often it is lost in technical management.

I'd recommend reading The Goal and, optionally, Critical Chain before The Phoenix Project. It sets up a lot of the context of the ideas around theory of constraints that The Phoenix Project builds on, but doesn't delve into. I read them in the order of The Goal, The Phoenix Project, It's Not Luck, Critical Chain. I found that the last book gave some useful insights into things that The Phoenix Project presented. On the other hand, after recommending these books to colleagues most only read The Phoenix Project and they seemed to not grasp (as it wasn't the core of the book) theory of constraints as well until they later read The Goal (or heard about it enough from me).
Some good suggestions (and a couple I'll have to read...) I'd add the following:

8. "The Mythical Man-Month" by Fred Brooks (still, IMO, one of the best management books ever, esp. for software and product development.)

9. Boyd: The Fighter Pilot Who Changed the Art of War by Robert Coram (OODA is the true core of agile thinking, and it works pretty much everywhere.)

For software and computers specifically, add:

10. Computer Lib/Dream Machines by Ted Nelson (Impossible to categorize - it's a hypertext book for crying out loud - but browsing it can change your thinking.)

11. The Soul of a New Machine by Tracy Kidder. (Good for new products in general.)

And for general management and leadership inspiration, two great autobiographies:

12. Mover of Men and Mountains, by R.G. Le Tourneau.

13. Rickenbacker, by Eddie Rickenbacker.

Some good additions there, some I’ll need to check out. I really liked the Boyd book when I read it, but I would probably recommend his papers/reports or some of the more short form things written about him to get to the point faster (RibbonFarm/Venkatesh Rao was how I was introduced). That said, I did learn a lot about navigating bureaucracy (perhaps bullheadedly).

On that note, I would also add another book about organizational psychology - how people game incentives, how cya evolved, how people focus on short term thinking over long term investments, problems common across big businesses, written by a sociologist embedded for a few years in a corporation, but I can’t for the life of me remember it.

But also:

The Secrets of Consulting” by Gerald Weinberg on generally thinking through ‘solutionizing’.

“Systemantics” by John Galt as a short and fun intro to applied systems thinking and cascading effects.

“We Need to Talk” by Celeste Headlee on how to have difficult conversations.

“Never Split the difference” on handling and understanding negotiations both up and down the chain.

Start with why is garbage. Just watch the TED talk - the main idea there is fine, but there's absolutely nothing extra in the book that isn't covered in the TED talk, it's just a cash grab
This book is not about technical management in particular, but it can help you a lot in understanding and dealing with people better, it's called The Charisma Myth: https://www.amazon.com/Charisma-Myth-Science-Personal-Magnet...

The book is an interesting read, but merely reading it won't do anything. There are one or two exercises per chapter, and you should work on them if you really want to see the benefits.

Also, if you want to do a little test before reading the whole book follow these tips from the intro:

> Three quick tips to boost charisma in conversation: Lower the intonation of your voice at the end of sentences, reduce how quickly and how often you nod, and pause for two full seconds before you speak.

From this summary: https://github.com/mgp/book-notes/blob/master/the-charisma-m...

Managers are useless guards for the bosses. Quit immediately and let those engineers manager themselves.
Sounds like either you’ve had bad managers or you need to invest in a quality mirror
Becoming a Technical Leader: An Organic Problem-Solving Approach - Jerry Weinberg (and many other great books by him) - a book I've read and re-read many times. A brief review here - https://blog.mkorman.uk/book-review-becoming-a-technical-lea...
I’m surprised this book didn’t come up sooner, it’s a fantastic book.

To my knowledge the only book mentioned here that takes the time to define technical leadership and present models of leadership suited potentially to different circumstances.

I might add ‘The art and science of doing engineering’ by hamming and recently republished by stripe.

The more leadership or management books I read the more inclined I am to respect Taleb’s approach of looking for old timeless material rather than what’s new or hot.

Most of what Gerald Weinberg has written qualifies IMO. Tom DeMarcos books also.

Strongly second this book. It's a deeply methodical book with questions at the end of each chapter that really help you understand yourself and your leadership style.

I read it 8 years ago and it got me to consistently write everyday what I was thinking and feeling about my projects and team

Here's the list of books I've been recommending new managers and leaders read:

Small Unit Leadership: A Commonsense Approach https://www.amazon.com/Small-Unit-Leadership-Commonsense-App...

The Five Dysfunctions of a Team: A Leadership Fable https://www.amazon.com/dp/0787960756/?coliid=I12MQNI6MIK6JR&...

High Output Management https://www.amazon.com/dp/0679762884/?coliid=I2G1Y1JLPP55SY&...

Measure What Matters https://www.amazon.com/dp/0525536221/?coliid=I1G6EQRC0QYPE1&...

Death by Meeting https://www.amazon.com/dp/0787968056/?coliid=I38A8AYMZGSLYZ&...

Work Rules!: Insights from Inside Google That Will Transform How You Live and Lead https://www.amazon.com/gp/product/1455554790/ref=ppx_yo_dt_b...

The Hard Thing About Hard Things https://www.amazon.com/Hard-Thing-About-Things-Building/dp/B...

Start with Why (you can prob skip the book and just watch https://www.ted.com/talks/simon_sinek_how_great_leaders_insp...) https://www.amazon.com/dp/1591846447/?coliid=I2Q0IN84LJ230W&...

I have been a team lead for four years now in different companies / teams.

I think empathy and radical candor are the most important skills ! There’s a book called radical candor that I really recommend.

Other than those I recommend reading how very effective leaders did their job, Eleven Rings by the NBA coach Phil is absolutely amazing on how to build a winning team as is Leading from Ferguson (soccer). Turn the ship around is another great book by someone’s experience in the navy.

Creating a safe space where people know the goals clearly, communicate effectively and helping to unblock them are part of the goal !

- The Mythical Man Month by Brooks talks about ways to avoid the traps of blindly throwing more people at problems.

- Out of the Crisis by Deming is useful for thinking about achieving quality by improving the systems rather than focusing on the individuals.

- Peopleware by Demarco for arguing the opposite.

- Everything ever written by Tom Peters for staying focused on customers and engaged in the game.

Crazy that no one mentioned the Mythical Man Month by Fred J. Brooks (https://www.goodreads.com/book/show/13629.The_Mythical_Man_M...). I thought it was the definitive classic.

I also like to recommend Coders at Work by Peter Seibel (https://www.goodreads.com/book/show/6713575-coders-at-work). It's incredibly useful to read about just how different 16 ultra high performing software engineers are/were. Nothing prepares you for technical leadership better than understanding that.

EDIT: just saw that Mythical Man Month was added 1 minute prior to my comment.

I love Seibel’s work, but it’s important to know he has retracted much of the emphasis on code reading. He apparently read that into his subjects words, perhaps in a manic period.
Ah, that's good to know. Thanks!
Remember that it is not "your" team but that you are just a member of the team, in good standing, with the relevant experience, that is volunteering to take on some additional responsibility.

Focus on the job at hand. Don't get into unnecessary political disputes. You're a tech lead, so keep it technical and focused on solving business problems.

Be kind and understanding of people's personal issues. It's a marathon, not a sprint, so it's fine if people's productivity goes up and down over time. As long as they contribute well over time, there should be no problem.

Make sure people take time off. Burn out sneaks up on people. Taking weeks off regularly is essential.

Do plenty of grunt work yourself, don't pawn it all off.

Write the most documentation and help your teammates write theirs.

Share the credit. Credit the team and individual team members frequently. Point out when people do well.

Downplay failures. Unless a mistake is malicious, you should blame the technology and the processes in place rather than the people involved. Humans make mistakes and it's through technology and process that we avoid them causing damage. Fixing the weakness in your technology or process is what really matters.

Most of all: lead by example. You should be an exemplar team member. Not perfect; no one is. Not an expert in every dimension; no one is. You should simply perform your duties in a way that your teammates could emulate with success.

There are a hundred other things, of course. That's just a few ideas.

I really liked “Managing Humans”. Super useful and told in a story format that makes it ultra accessible
This book left me with a bad taste in my mouth, as though it were written by someone who wasn't really grounded in experience. I'm not sure if the author was trying to convince me or himself. Perhaps I'm not the target audience, but I'd be interested to hear more about why you liked it, since it was such a disappointment to me.
It’s years since I’ve read it to be honest. I remember finding the parts on how to conduct one-on-ones useful at the time. I don’t recall feeling the author was unsure of himself (and he’s a pretty successful tech leader btw, currently VP Eng at Slack).
I'd say, don't lead/manage but assist.

Don't decide on your own if possible.

Decision coming from top? Communicate that. Otherwise, ask your team what it think is the best course of action.

Only decide on your when something would be blocked.

I always read about two sides.

"Managers are needed, because there are tough decisions to make and people need to be led!"

"Managers aren't needed, people can govern them on their own!"

I think the truth is in the middle.

I've just started reading "Agile Conversations" [1], and I found it's a nice complement to the other books mentioned in the thread. It's a little idealistic at times, but I like the focus on shared understanding and aligning perspectives. I used a couple of the approaches from the book quite recently and found that it kept the discussion focused on improvements rather than blaming.

[1] https://www.amazon.com/Agile-Conversations-Transform-Your-Cu...

I wrote a blog post about this forever ago[0] summarizing what I've seen work.

The most important thing to realize is how success will be measured. It will no longer be your individual contributions. Instead, you will be measured by how successful your team is. So you need to use your time to make your team more effective.

So the most important thing you can do is prevent anyone from becoming blocked. The next-most important thing is unblocking people when they become blocked.

How do you prevent people from becoming blocked? Make sure that everyone knows where they are going, and they know what to do when they get there. Make sure everyone knows what they are working on, and what they will be working on next. Promote good practices, and ensure that processes have consistent documentation.

How do you unblock people? Review their code quickly. Learn to differentiate "I don't want you to submit this because I don't prefer this" (bad attitude) from "I don't want you to submit this because it's going to have a negative consequence"). Learn how to phrase that second sentence in a way that doesn't make your coworkers dread getting reviews from you. Spend your time fixing tech debt that's adding drag to the team.

As you do this more, you should also make sure that people on your team are growing. Give them harder tasks than they had before. Ensure that junior engineers are getting mentored. Correct imbalances: if a specific engineer is always taking notes in meetings, create a notes rotation so that everyone has to do it.

[0] https://www.bitlog.com/2017/10/12/what-does-a-tech-lead-do/

> The most important thing to realize is how success will be measured...

I think this could be applicable in general sense too, so that your team understands the value system that you establish. People are smart, professionals are even smarter, so they figure out the incentive system quickly. Placing a right emphasis and staying consistent helps to communicate this.

Another thing that adds to the notion of unblocking is to establish a culture of "a long enough before calling for a backup", that is to try your best to crack a problem by yourself, but have a way to recognize a being stuck and allow to call for a help with no shame or sense of failure. In my view, this has both a culture and a protocol aspects.