| 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 |
I get the author's premise that capable developers don't necessarily need a lead. However, based on my experience, that is overly optimistic.
I've worked in large organizations for quite a while now and have run in to two specific situations where this mentality just doesn't work: - Need for a tie-breaker. I've been in places where the Sr Devs on different projects/applications (myself as one of them) have all disagreed on the direction to take the roadmap. As a result, we ended up with four separate projects/applications going four separate ways. All because there wasn't one person to get everyone in line. - Need for a tech lead to set the right direction. It's been a while since I have worked with a lot of talented, like-minded people that were all capable of making good technical decisions. For the past ten years, I have seen a huge trend to just finding the lowest cost resources. Granted, it has more to do with my situation, but that just goes to show that the author's position may be valid for him, it definitely does not apply to everyone.
I also believe in the following: - The Mythical Man-Month where the best team structure is similar to an operating room where the surgeon has complete control of everything that happens. He has ultimate accountability and what he says goes. - Also Peopleware where really good people are worth the money. If you don't get really good people, no matter how willing they are, they aren't going to make a solution as clean. And unfortunately, I'm in a world where we have decent developers who are always willing to jump on tasks, but they don't always make the best decisions. A tech lead would fix that.
Anyway, context is everything. What works for some might not work for others.