At a Google office the other day, I heard someone say “Tech Leads make all the decisions at Google.” They also make the decisions here at Assembla. If you do distributed software development, they should be making the decisions at your company
A Technical Lead or Tech Lead is a software engineer who also leads a team. The Tech Lead picks the important tasks, answers questions, solves problems, assembles a release, helps new team members – and does development.
We think that distributed teams require Tech Leads. These teams communicate with code and other deliverables. They need to work with a developer who can read the code.
Why don’t we use Project Managers or Scrum Masters? Non-technical project managers aren’t effective in a distributed team, because these teams communicate by exchanging code and other deliverables. We can’t afford Scrum Masters who “coach” and “remove impediments” but don’t code and don’t lead. We need guys who write code, know what they are talking about, take responsibility, and take the lead.
It’s a tough job, and some say that engineers can’t do it. I’ve heard many times that “a good engineer is a bad manager.” I don’t believe it. There was a time when people said that engineers made bad entrepreneurs. Today, software engineers run the most successful technology companies, and the hottest startups.
There are many people doing Tech Lead jobs today. They are doing it as technical founders, directors of development, lead programmers, project leads, etc.
However, few people are trained for the Tech Lead role. We find that a lack of Tech Leads is the primary reason for not using distributed teams, not expanding teams, or not succeeding with distributed teams.
We think that good developers can become good Tech Leads by practicing a small set of new skills. We have been putting together a Tech Lead Checklist, a minimal list of tasks that will equip an engineer to lead a team. This will be joined with other materials, including a list of skills and exercises drawn from the experience of our own Tech Leads and other contributors.
Tech Leads have always been important for Assembla. We organized some Tech Lead training two months ago, and expanded our capacity with “feature teams” headed up by Tech Leads that can independently design and release complete features. Our Tech Lead candidates have been taking turns as “release captain,” and improving the release process, and helping with recruiting and hiring. I find that our Tech Lead candidates are a lot more fun to work with since we started this program.
The Tech Lead role is important for developers who are interested in career development. As Tech Leads, developers can do more, succeed in their careers, and proceed to world domination. And other developers, who aren’t interested in management or the petty hassles of world domination, like the idea that they will have better, more technical management.
Tech Leads are also important for business managers. Last month, I went out to Silicon Valley, and I saw people actually leaning across the table in excitement when I told them about our Tech Lead training program. They are desperately short of programming and product management capacity. They got excited thinking about how Tech Lead training can help them break out with expandable, distributed teams.
Some engineers are already great at the Tech Lead job. However, we can have a lot more if we study the role and share good practices.
When that happens, we will have more distributed teams, since the lack of technical leads is the most common reason for not using distributed teams. Those teams will go on to make the apps and software that control phones, cars, media empires, payment systems, voting machines, and power grids. So in a few years Tech Leads will not only make all the decisions, they will rule the world.
|
We will be posting a series of resources related to implementing and training effective Tech Leads. If you would like to receive email notifications as these resources become available, sign up to the Tech Lead email list.
|
 |