Live data from Hacker News

Ask HN: How to Be a Good Technical Lead?

news.ycombinator.com

141–150 of 178 posts

Re: Ask HN: How to Be a Good Technical Lead?

#141
I've been a Tech Lead for a year now. I'm still learning but some of the things I've done which I think will help are:

1. Start by setting up the development environment and getting the software you'll be working on to run locally. Then, fix a couple of easy to medium level bug fixes as soon as possible. This is the fastest way to learn what your team is talking about.

1.5 If you don't understand something that's being said at a meeting ask, but don't hijack the meeting, make a note and talk to someone who can explain in more detail.

2. Think at a high-level -- what is the product supposed to be doing, abstract away -- some engineers will talk in code -- which you may not understand early on but interpret what they're saying at a high-level.

4. Be available and approachable to everyone on the team.

5. Understand the impact of a bug fix or a feature -- how much QA effort does it require, what is the operational impact of the work, does it break backward compatibility etc.

6. Participate in product meetings and consider designing any new features as homework so you can better discuss it with the engineering team you're leading.

Good luck!

Edit

Some DO NOTs:

1. Do not complain how bad the code base is. No one likes someone new walking in and saying that at once.

2. That said, understand what technical debt there is and address it incrementally. Don't say "we should re-write XYZ."

3. Do not suggest alternate platforms and frameworks unless is absolutely makes sense -- this is especially true if the team is big and no one knows this new framework besides you. You need your existing team to contribute to and maintain projects.

Re: Ask HN: How to Be a Good Technical Lead?

#142
post #131
post #91

Technology 1. Know your apps. 2. Understand your domain. 3. Understand your technology under the hood. 4. Have an idea of how you'd approach each project. 5. Write detailed technical specs for juniors. 6. Write general technical specs for seniors. People 1. Be nice. 2. Understand you are a resource provider, not a boss. 3. Get shit done. 4. Ditch team building gimmicks (see #3 for what's important). 5. Listen! 6. Sha…

These seem to be terribly vague, e.g.: 16. Always do the right thing. Some of these I either misunderstand or contradict each other, e.g.: 1. Be nice. 8. When you need a bad guy/gal, you're it.

I think number 8 (& nine, because they are heavily related) mean that when higher ups want to blame someone, they should blame you as technical lead (and not individual team members) but when someone needs/is going to be praised make sure it's the team member that deserves it (and not you!). I heavily agree with this.

Re: Ask HN: How to Be a Good Technical Lead?

#143
post #80
post #61

Earlier quoted context omitted.

Your satisfaction changes from being happy that you've polished some nice bit of code to being happy that you've shipped a product and successfully run a group, and gained the admiration of the people on your team and in your company. Competence is it's own reward. I learned those rules from observing the behavior of group leaders I've worked with/for. There have been a few times (over many years) when I've thought t…

Well, if you keep working on shitty tasks (because you assign them to yourself) and keep being interrupted, only for your product to depend on the hazards of the market, you will get burned at some point if what you ship fails for reasons that don't depend on you or the team and people leave as a result. I honestly hope it will not happen because you seem like a great Lead, but you can't say this scenario is not a po…

If you don't derive satisfaction from helping your team, absolutely do not become a lead. Between meetings, planning overhead, interruptions, team communication, documentation, and so on you'll never reach the kind of individual productivity you could alone.

Re: Ask HN: How to Be a Good Technical Lead?

#144

What's a good source on becoming a software dev lead? Here are a few suggestions among the many available: Brooks' "The Mythical Man Month" is a classic in this space, though I think its emphasis is less on leadership than the difficulties in software project management. And the book is rather dated now. DeMarco and Lister's "Peopleware: Productive Projects and Teams" is also a classic, and emphasizes interpersonal t…

I'm so happy that I've read four of the mentioned above - the first three and the "Code complete". Will try to do some more reading in the nearest days.

Re: Ask HN: How to Be a Good Technical Lead?

#145
post #58

Earlier quoted context omitted.

I think this is really good advice, as a Technical lead you should see yourself as mentor for the other developers. But I also feel that it is important that you should see yourself as the one that also include the business goals into the development team.

Depending on the situation, you will at some point, if not often, have someone doing work for you that knows more about a topic or component. Understand that you don't have to know more or everything to be a good leader.

A very important point, and true of anyone holding any form of seniority in a position, but especially as a team lead. Always remain humble and accept that your team can have abilities and understanding beyond yours.

But, as an alternative to 3, and possibly an extension of 4, when you have an idea/experience of a solution to a problem but your team does not, create a dialogue whereby your questioning of their approach allows them to find your solution by themselves. You can pass on skills and techniques you've learnt in a manner where they learn them too rather than being told of the solution. Your team will feel proud of their solution and you can be happy knowing you are cultivating a strong learning environment.

Re: Ask HN: How to Be a Good Technical Lead?

#147
post #53

Here are three rules I've followed: 1) If there's an exciting fun task and a messy unpleasant task, assign the fun task to someone else and do the unpleasant task yourself. 2) If someone on your team wants to ask you a question, always make yourself available and absolutely pretend that you don't mind being interrupted. But if you need to ask someone on your team a question, always ask first if it is a good time for…

I follow 1..3 daily. I also have this. 4) Be humble. Redirect upstream praise for your team's work onto your team directly (away from yourself). Accept criticism for your team's work directly onto yourself. 5) Expect to do less actual programming, but still keep ownership of one or two components (UI, DB, etc) for up to 1/3 of your time. This helps to maintain an ear-to-the-ground on ongoing features/bugs and to comm…

>Expect to do less actual programming

Even if you don't do much actual programming you need to be the one that monitors and accepts all pull requests.

That also means taking responsibility for any of the subsequent angry users because you merged that code and you could have stopped it.

Keeping an eye on pull requests also means gently guiding the junior devs to amend their code when they head down the wrong path (e.g. by pairing with them) rather than just rejecting it outright or (worse), writing a snarky comment.

Re: Ask HN: How to Be a Good Technical Lead?

#148
post #131
post #91

Technology 1. Know your apps. 2. Understand your domain. 3. Understand your technology under the hood. 4. Have an idea of how you'd approach each project. 5. Write detailed technical specs for juniors. 6. Write general technical specs for seniors. People 1. Be nice. 2. Understand you are a resource provider, not a boss. 3. Get shit done. 4. Ditch team building gimmicks (see #3 for what's important). 5. Listen! 6. Sha…

These seem to be terribly vague, e.g.: 16. Always do the right thing. Some of these I either misunderstand or contradict each other, e.g.: 1. Be nice. 8. When you need a bad guy/gal, you're it.

You'd be surprised how easy it is for teams to do the wrong thing. Most people have too narrow of a focus, not enough perspective, and not enough wisdom to even care about the right things. Without people with experience, vision, and influence often times the right things just don't get done.

Being nice means not being ruled by your emotions and not slipping into pettiness. If you have a disagreement with someone, do it nicely. Give people the benefit of the doubt. Etc.

But on the other hand, sometimes it's necessary to do or say things that are unpopular or difficult to accept. The difference is doing the unpopular thing that is necessary vs. being mean because you can't control your temper or you're just a jerk or you're trying to "win" some stupid technical argument. Don't be a jerk, don't yell, don't belittle people, but absolutely call people out on their shit when necessary.

Re: Ask HN: How to Be a Good Technical Lead?

#149
- Be flexible

- Prioritize everything

- Simplify code, processes, and infrastructure at every step

- Build a well-rounded, emotionally stable team

- Loosely follow scrum & agile

- Be realistic

- Be honest, even when it is inconvenient

- At the tech lead level, the most important skill is your own psychology. Hone your personality, establish work-life balance, and take some courses in positive psych

- Have an opinion

- Learn when to talk, when not to talk, when to put it in writing, and when not to put it in writing

- Adopt a "good enough, and let's move on" design approach

- Build strong relationships with non-technical management

Re: Ask HN: How to Be a Good Technical Lead?

#150
post #91

Technology 1. Know your apps. 2. Understand your domain. 3. Understand your technology under the hood. 4. Have an idea of how you'd approach each project. 5. Write detailed technical specs for juniors. 6. Write general technical specs for seniors. People 1. Be nice. 2. Understand you are a resource provider, not a boss. 3. Get shit done. 4. Ditch team building gimmicks (see #3 for what's important). 5. Listen! 6. Sha…

    4. Ditch team building gimmicks (see #3 for what's important).
I'd say gimmicks aren't going to save you, but consider morale events and other subtler stuff to help build team cohesion. Things like going to lunch regularly together, for example. When people are more comfortable with each other it makes it a lot easier for them to collaborate, rely on each other, ask each other questions, mentor each other, etc.
Post reply on HN