Live data from Hacker News

We don't need a Tech Lead

vvgomes.com

71–80 of 116 posts

Re: We don't need a Tech Lead

#71
post #24

Earlier quoted context omitted.

"In the cases of a disagreement deadlock you need someone to break the deadlock." != "a team that is constantly looking for one person to call all the shots".

"In the cases of a disagreement deadlock you need someone to break the deadlock." 97% of the time consensus driven decision making means no deadlock and the other 3% of the time you can put decisions to a vote. I've seen more value destroyed by a team lead inappropriately setting the wrong agenda than I have by team members not knowing when to shut up. If anything I've found that there's often too much consensus (peo…

> 97% of the time consensus driven decision making means no deadlock and the other 3% of the time you can put decisions to a vote.

That's now how deadlocks work. You can't just vote your way out of them, if you could, you wouldn't be in a deadlock to begin with. You'd just be at the point where a decision needs to be made.

> If anything I've found that there's often too much consensus (people who just go with the flow rather than voicing an opinion).

That's a separate problem. A healthy and functional team needs to be able to trust one another's opinions and provide an environment where everyone feels comfortable speaking their minds. If you don't have those the value of intrateam communication is comically low.

Re: We don't need a Tech Lead

#72
The article pretty much ignores factors external to the development team. In my experience at a larger company, a key role of tech lead is as a central communication point for other teams / disciplines / projects. It becomes infeasible for every person working on a product to have to know exactly who to talk to for every question. Instead with leads, if I have a sw question, an electrical question, a service question, I know who to go to. This doesn't mean the lead has to know everything themselves. Can always refer me to the expert. But ideally the lead is also someone with above average communication skills.

Re: We don't need a Tech Lead

#73
Tech leads may not make sense for the author and some projects, but they absolutely make sense for other projects. This is why:

1) Development teams have churn, the tech lead onboards new members and gets them aimed(and kept) in the proper direction.

2) The tech leads decides on technology when developer A and developer B are deadlocked over MySQL vs Postgres, or any other stack choice.

3) The tech lead is the one accountable for failures. Once the people above the tech lead have titles like CIO, CTO, CEO and the like - they expect and demand a single point of contact as their visibility into the development process. The tech lead is this person, and should be "professional" enough to interface with the exec-types, as well as have the communication savvy to translate technical issues into management issues.

Finally, an example of when a tech lead is wanted: Image your development team is 8 people, working on a full stack web application. Another department wants to use this web application's authentication capabilities in their own project. Do you want that other project's 4 developers talking to every single one of your 8 developers about how that should be done? That's 32 individual conversations, with 32 different ideas and opinions about how to do it. You want their tech lead to talk to your tech lead, and a reasonable decision made and enforced. You don't want 32 meetings with no outcome.

The author's experience sounds(at least to me) like small teams and small company structures. While that may work well without a tech lead, once departments and companies become large - positions like tech lead really begin to make sense.

edit: added example and hopefully removed typos

Re: We don't need a Tech Lead

#74
post #71

Earlier quoted context omitted.

"In the cases of a disagreement deadlock you need someone to break the deadlock." 97% of the time consensus driven decision making means no deadlock and the other 3% of the time you can put decisions to a vote. I've seen more value destroyed by a team lead inappropriately setting the wrong agenda than I have by team members not knowing when to shut up. If anything I've found that there's often too much consensus (peo…

> 97% of the time consensus driven decision making means no deadlock and the other 3% of the time you can put decisions to a vote. That's now how deadlocks work. You can't just vote your way out of them, if you could, you wouldn't be in a deadlock to begin with. You'd just be at the point where a decision needs to be made. > If anything I've found that there's often too much consensus (people who just go with the flo…

>That's now how deadlocks work. You can't just vote your way out of them, if you could, you wouldn't be in a deadlock to begin with. You'd just be at the point where a decision needs to be made.

I've seen a number of different scenarios:

1) Consensus after a short discussion (vast majority of cases).

2) Consensus after a drawn out discussion (occasional, usually the discussion is valuable even if it takes a while).

3) Consensus after a drawn out discussion with one or two holdouts who agree to go with the majority opinion under protest (not common).

4) A drawn out discussion where it becomes clear that further discussion is fruitless and a (close) vote makes the decision (very, very rare but it has happened).

I'd say that that most of the time the decisions made in one of these 4 scenarios are better than the decisions made unilaterally by a team lead.

Whatever you're referring to as 'deadlock' I'm not sure I've ever seen it - as a team lead or otherwise. What is it?

Re: We don't need a Tech Lead

#75
I'm surprised to see how many people think a tech lead is a good idea.

Most teams I have worked on have a manager who used to be an engineer. In terms of direction setting, a final authority amd so forth, it is their call. They talk to their management and other teams and tell us what to work on, but are not involved in the technical day to day and are not micromanaging the details. So I might do the Android client, X does the web API which uses JSON, Y is the DBA designing the database schema, Z does iOS and so forth. It is not ruderless as they can make the final decision.

With a team lead, you have one person on the team doing work who is also doling out work. It can lead to all of the problems mentioned in the arricle.

Also - small, underfunded companies usually can not get a good experienced programmer or administrator. So the hires are the inexperienced types who could probably use a team lead. But the companies are too small to have one. By the time someone has a resume to be good enough to join a company which can afford a larger tech team with a manager, an experienced lead and several somewhat experienced programmers - the need for a lead is much less. Besides, people are naturally going to defer somewhat to a more experienced engineer who has been at the company longer.

I think the bottleneck and bus factor points are key. The tendency would be for the lead to own the most high-visible, business impacting piece of the code base, and dole out less attractive and impactful pieces to others. It can waste time as well - they can assign work but are too busy to really go over it, then after a week you show them what you did, but they did not mention they like things done with MVC, or TDD, or whatever, so then you have to spend another week doing it over. As the article says, they're overloaded and often enough away from the team. Instead of having four or five autonomonous engineers going at full blast, you have one overloaded engineer who hogs more of the critical, business visible code than they can handle, and the other engineer whose time it is to waste. Who are usually not much less experienced than the lead.

The flip side to "design by committee" is that one person is designing every thing! That person is too overloaded to design everything as needed, so you have the non-leads writing code for a week, that will be thrown away until the lead has time to come back around and decide how your project will be designed.

An ex-engineer manager does not have their hand in day to day, and many of these conflicts go away, whereas the needed leadership is there if necessary. I'm surprised people feel otherwise. The alternative to design by committee is often everyone waiting on the one overloaded person who has to design the whole system.

Re: We don't need a Tech Lead

#79

The article pretty much ignores factors external to the development team. In my experience at a larger company, a key role of tech lead is as a central communication point for other teams / disciplines / projects. It becomes infeasible for every person working on a product to have to know exactly who to talk to for every question. Instead with leads, if I have a sw question, an electrical question, a service question…

As a counterpoint to that maybe everyone on the team should know who the expert is in any particular area and EVERY member of the team should have adequate communication skills

Re: We don't need a Tech Lead

#80
post #43
post #34

Most companies (and/or government agencies) in the real world aren't willing to pay for top-quality developers. Hopefully you can get lucky and end up with one strong software engineer on a team otherwise filled with marginally competent code monkeys. In those cases you absolutely want to place the top developer in charge (until he/she gets recruited away, that is), though if you have a strong dues-paying culture it…

This is the only thing I was thinking this entire article. I'm a dev lead. If I had an entire team of my great engineers, my job would be easy. I'd simply delegate my duties to everyone else, and we'd all be nearly equal. The reality is I have 2 junior people who need to be guidanced through everything. I have one moderately experienced guy who just wants to be left alone to solve bugs on his own, in quiet isolation.…

I'd like to hear more about the senior dev who hates code architecture. Do you have any examples? I still go back and forth on on the value of code architecture, and I think some examples might be enlightening.
Post reply on HN