There are two ways of being a technical lead
One way empowers developers, the other treats them like cattle. I will let you decide which is which.
I’ve been a Technical Lead in a number of projects for a lot of years. I’ve worked with developers that are more skilled than myself in terms of writing quality code. Even the brilliant ones, in general, lack one major thing: connecting the code to actual business requirements and user experience.
It may be the “right” thing to do to throw an exception when situation X happens. But, what it the end result… those nasty error pages that you encounter even at very large companies.
The first way is something along these lines:
- task comes in
- technical lead (+/architect) describes the technical solution and implementation
- it’s assigned to a developer (or more)
- developer implements it
- goes to code review, etc..
As a result, a developer that gains experience and is able to actually step up as a technical lead does not have that opportunity. He does not have any proper context to show that he is able to come up with solutions to problems, that he can understand business requirements and come up with a valid technical solution.
After a number of years and a number of tickets delivered, he is probably promoted in order to have a decent retention rate. Without knowing if he is really a good fit for that position.
The second way is:
- task comes in
- a developer is assigned
- he makes a proposal on how that task could be solved (or starts working on it)
- that proposal is discussed within the team with the technical lead and improved/updated
- that solution is implemented
- goes to code review, etc.
This way the developer is able to show that he can do more, gains a better understanding of how things need to be built, gains better insight into the problem that needs to be solved. He can show that he can work in an autonomous way and get things done in the right way. He can step up and become a Technical Lead.
It’s up to each team and company to decide which way to take, each can provide results based on circumstances, sometimes you may not have a choice.
And we are tackling only one workflow and one context from what it means to be a Technical Lead and how teams are organised and can work more efficiently.
How does this work for your team?