转自:http://hkarthik.me/blog/2011/12/12/beating-the-talent-crunch-with-a-distributed-team/
There’s been a lot of press lately about the severe shortage of software engineers across the country. I have been involved in hiring engineers in multiple companies over the past few years and I’ve seen a steady shrinking and dispersion of the available talent pool. I believe that the only solution to the talent crunch in the short term is to build and grow distributed teams.
After working closely with successful distributed teams in the past, I became aware of how well they work when grown carefully. To that end, I sought out a role with a distributed team to learn how they operate and utilize these skills to help build and lead teams in the future.
This post is to share some of what I’ve observed and learned after 6 months of working in a distributed team atPure Charity.
Distributed Hiring
Hiring members of a distributed team is not all that different from hiring a colocated team. Here are some core guidelines.
- Focus on internal referrals from active team members.
- If your internal referrals run dry, reach out to the larger community.
- Look at actual code via OSS contributions or code snippets they share.
- Spend a day pair programming remotely on a real world problem to see how they fit in with the existing team.
- Try to keep everyone within a single timezone.
Everyone knows a weak link hurts the whole team, but in a distributed team, it can hurt even more. The good news is, you have a wider talent pool to work with and can afford to be a bit pickier with whom you hire to mitigate this risk.
The Chatroom
The team chatroom provides a number of advantages. Here are a few.
- A common communication area where team members can get rapid feedback and bounce ideas around.
- A focused area for private messaging without the noise of typical IM networks.
- A watercooler for the random banter that builds camaraderie among teams.
- Relief from the constant flood of email.
The last point is very important. Since working in a distributed team, my email volume has dropped significantly and I don’t have to spend much time managing my inbox to stay on top. That has been invaluable.
There a number of products, aside from the standard IRC, that can host the chatroom. My favorite isHipChat, but many teams useCampfire. I like the hosted services since they can parse code, share files, embed images/video, and log conversations. Plus, they are a lot of fun when you add aHubot.
Audio Conferencing
When ideas are not easily communicated via IM, email, or the Chatroom, it’s best to hold an audio conversation. There are a number of solutions to this but I suggest the following guidelines:
- Choose one that runs on low bandwidth networks with good audio quality.
- Everyone on the team should use the same product.
- Have everyone stay online as much as possible during the work day.
Our team, being composed entirely of Mac users, uses iChat to quickly have push button audio communication within small groups. Many other teams use Skype. Choose what you like, but make sure everyone uses the same thing and it remains frictionless.
Video Conferencing
A robust video conferencing solution is essential to help team members hold both regular meetings and ad-hoc touch points. The things to look for here are:
- Good cross platform support.
- Excellent audio and video quality for multiple participants.
- The ability to quickly let participants share their screen.
My favorite tool for this is GoToMeeting, but many teams use WebEx, Skype, or free products for this. The better solutions come at a premium price, but it’s well worth it. Regular face time over video conferencing helps the team gel better.
Remote Pair Programming
A great way to help development teams stay focused and productive is to give them the right tools for pair programming. In our team, nearly everyone is comfortable using Vim as their editor. With the combination of Tmux + Vim, team members can remotely pair program and control a single shared terminal session. In this termimal session, everyone has keyboard control on a low bandwidth connection. This is extremely useful when pair programming or mentoring more junior developers.
If your development environment really requires the use of an IDE, I have heard good things about usingTeamVieweras an alternative.
The Workstream
This suggestion may be a little controversial, but I suggest having every team member keep a running log of what they work on during the day. When you’re working in a distributed team, it’s easy to lose track of what each team member is working on. While you can always IM or make calls, it’s far less intrusive to glance at the workstream to get a heartbeat on the team’s progress.
In addition, the workstream provides the whole team with transparency and helps keep everyone focused. You can more easily see if someone is spinning their wheels and help them get unstuck long before they have to ask. This helps a lot with onboarding and ramping up new team members without making them feel too micro-managed. Also, it helps build an environment of mutual trust and understanding.
We useCoopappandHarvestto have team members track their work hours along with any paid time off.
If tracking time feels a little too intrusive to you, I recommend usingYammerand having your team provide micro-updates periodically.
Don’t Cross the Streams
One of the biggest areas where I see companies go wrong is mixing remote team members with colocated members. Nothing sucks more than being the one guy on the phone in a room full of colocated developers. It can be isolating, frustrating, and terribly unproductive for everyone involved.
If you’ve already got a colocated team, the best thing you can do is hire more colocated team members. If you’re struggling to hire locally, then hire two or more remote workers that have worked together previously to seed a distributed team. Keep their work separate from that of your colocated team. Or let some of your colocated team members work from home to help seed the distributed team.
Plan for Face Time
At least once a quarter, plan on getting everyone together in one physical location for a few days of work, along with a night or two out. Such sessions will be highly effective and the evenings are great for team building. During the day, set a clear agenda and try to stick to it.
Final Thoughts
Distributed teams definitely come with certain challenges, and it’s critical to keep the teams small to minimize the communication difficulties. Many companies like 37signals, GitHub, and Living Social have all used these strategies effectively to build a remote workforce so there’s no reason it can’t work for you too. If you have thoughts or experiences to share, please do so in the comments.
相关推荐
在这份文档中,“beating kaggle the easy way”系统地介绍了初学者如何参与Kaggle竞赛并取得好成绩所需的知识和技能。 在入门Kaggle的过程中,首先需要掌握数据清洗的技能。数据清洗是数据预处理的一个重要环节,...
标题和描述都提到了“日光节约时间(Daylight Saving Time, DST)”问题以及如何正确获取文件修改时间。这涉及到计算机系统中的日期和时间管理,尤其是与夏令时相关的时区处理。在IT领域,这是一个常见的问题,尤其...
What if you could master the entire framework – with solid foundations – in less time without beating your head against a wall? Imagine how quickly you could work if you knew the best practices and ...
By the end of the book, you will gain a large insight into using Python for data mining, with a good knowledge and understanding of the algorithms and implementations. Table of Contents Chapter 1: ...
What if you could master the entire framework – with solid foundations – in less time without beating your head against a wall? Imagine how quickly you could work if you knew the best practices and ...
What if you could master the entire framework – with solid foundations – in less time without beating your head against a wall? Imagine how quickly you could work if you knew the best practices and ...
"Beating Security Inertia with Actionable KPIs"的主题强调了通过制定可操作的关键绩效指标(KPIs)来打破安全惰性,实现安全防护的改进和提升。这涉及到将安全策略与业务目标紧密结合,确保安全措施不仅是为了...
What if you could master the entire framework – with solid foundations – in less time without beating your head against a wall? Imagine how quickly you could work if you knew the best practices and ...
"Beating security inertia with actionable KPIs"这一主题直指安全管理工作中的核心问题:如何通过可执行的关键绩效指标(KPIs)来克服安全惰性,实现红蓝对抗的有效策略。红蓝对抗是一种模拟实战的安全演练方式,...
seems like years, and actually, it was years—I heard the distant beating of publicity drums regarding .NET, and I couldn't care less. My concern has always been to work with high- quality ...
us-18-Perlow-Beating-the-Blockchain-by-Mapping-Out_Decentralized_Namecoin-and-Emercoin-Infrastructure 数据安全 安全防御 移动安全 网络信息安全 安全
「安全架构」Beating_security_inertia_with_actionable_KPIs - 安全运维 威胁情报 Linux 信息安全 网络安全 NGFW
A critique of the expectancy formula approach: Beating a dead horse? Psycholog), in the Schools Volume 20, April . 1983 A CRITIQUE OF THE EXPECTANCY FORMULA APPROACH: BEATING A DEAD HORSE?' ...
《信息安全_数据安全_us-18-Perlow-Beating-the-Blockch》这篇文档主要聚焦在区块链技术在网络安全,特别是Web安全领域的应用和挑战。文档作者Kevin Perlow详细探讨了Namecoin和Emercoin这两个去中心化的区块链系统...
L2.7: Beating the Diffusion Limit – Enhanced Diffusion and Fluid Flow L2.8: First Passage and Narrow Escape Time I L2.9: First Passage and Narrow Escape Time II Unit 3: Sensitivity L3.1: ...
By the end of the book, you will gain a large insight into using Python for data mining, with a good knowledge and understanding of the algorithms and implementations. Table of Contents Chapter 1: ...
proposed to tackle this problem with notable success, beating the state- of-the-art in certain areas. This monograph discusses the motivations and principles regarding learning algorithms for deep ...
What if you could master the entire framework – with solid foundations – in less time without beating your head against a wall? Imagine how quickly you could work if you knew the best practices and...