We recommend that a distributed team have a driver that we call a "Technical Lead". The Tech Lead manages the ticket list, answers questions about engineering, and works with the developers to get stuff done. This person needs to be both a developer, and a manager. It is not an easy job to do, or to recruit for.
However, it's not a hard job to learn - if you get the right guidance. We believe that a technical lead can build and manage a very productive distributed team by following a checklist containing a small number of daily, weekly, and bi-weekly tasks. Here they are:
- Require written standup reports each day. Read ALL standup reports. If someone did not write a standup report, contact them by chat or email, and escalate if they do not respond.
- Attend a daily chat. Ask for comments and issues. Make it short. Move long discussions offline.
- Resolve any needs or roadblocks posted in StandUp by a team member in the scrum chat.
- Look at the detailed activity report for each developer.
- Move any request, agreement to a ticket/message/wiki. Do not rely on chat agreements because they can’t be tracked.
- Let team members select their own tasks. Balance load. Do not let team members work on many tickets concurrently. A team member should select one or two tickets to work on and finish. The rest are available for others to select.
- If someone has been working for several days on one ticket, without committing, ask him to split it into smaller tasks.
- Review all tickets for the current milestone. Add or move depending on schedule and capacity.
- Ask specific developers to take the planning and task breakdown for complex tickets, features, stories. To distribute the load, you should also be getting mockups and stories/scenarios from a non-developer product owner.
- Write and post a message about what the team did last week and what the team will do next week – a sort of scrum of scrums report
BI-WEEKLY TEAM BUILDING
- Look at new developer applications and say who you are interested in. Someone else should handle the details of finding new candidates and then getting them started.
- Do “onboarding”. Make sure each new developer has the information he needs, a development environment, and a simple task. Help the new developers to update the setup documentation. Send them contact information and an outline of the daily requirements (standup, chat, commits).
- Evaluate trial developers near the end of the trial period. Look at all of their work, and evaluate productivity and quality. Write a little review. Say whether you want to continue working with them.
I realize that some scrum masters will say that this is too much micro-management, that we should set weekly goals and let the the team work out its own schedule. I love you guys, I really love you. 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.
Give your tech leads all the stuff they need in one place for free with Assembla Renzoku.