If you have a fast, continuous, distributed team, you will do a lot of communicating around code: code review and code releases. You will get less use from non-technical project managers, because they don't communicate in code. You need "Technical Leads" - programmers who can communicate in code and lead a small team.
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 continuous Agile development, they will make decisions in your organization.
A Tech Lead or Technical Lead is a software engineer who also leads a small programming team. Tech Lead should be able to:
Why is understanding code a requirement for people who lead development teams? Because teams and contributors are far more efficient when they communicate with code instead of words, especially when contributors are distributed. Because someone who understands code is better able to support teams and manage releases. And because software engineers respect people who can code.
What about Scrum Masters - aren't they an essential part of Agile? I say no, not at all. You may want to employ a consultant with skills in coaching and "removing impediments." But they can't take the responsibility to delivery your product. A tech lead will.
Tech Lead is a tough job, and some say that engineers can't do it. You might have heard people say "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.
Our campaign to help hackers build tech lead skills is similar to the campaign that Paul Graham has waged at YCombinator to teach hackers how to be good entrepreneurs. The end result will eventually be successful technical CEO's like Bill Gates and Eric Schmidt.
However, if you have tried to hire leaders for your technical teams, you know that it is hard to get good people. Our goal is to make it easier to train tech leads, by teaching a minimum set of skills that will get a good programmer started as a tech lead.
We think that good developers can become good Tech Leads by practicing a small set of new skills and responsibilities.
We have developed a checklist of daily, weekly and bi-weekly tasks to help our Tech Leads plan their major activities. Here it is:
DAILY
WEEKLY
BI-WEEKLY TEAM BUILDING
Some traditional Scrum Masters will say the Tech Lead process described here is micro-management, and that it is better to set weekly goals and let the team work out its own schedule. I love you guys, and we should get together for a big, warm group hug. But we should do it AFTER we use these tactics to build a highly productive team that feels great because they are doing kickass coding.
Developing the Tech Lead role improves everyone's morale.
Developers interested in career development like the Tech Lead role because they get to take on more responsibilities, develop management skills, and progress in their careers.
Developers who don't want to become managers still like having managers who are technical.
Business managers love working with development staff who understand both business priorities and technical issues and have a realistic view of schedules and deliverables.
Development executives find that Tech Leads allow them to utilize more distributed teams, more efficient workflows, and better development talent.