Our Blog

design, code, business, & everything in-between


Building a Distributed Team

A quick scan of the blog reveals that between George, Toby and myself, we’ve ranted about recruitment consultants three times already.  So I’ll keep the intro to this post short…

Trying to recruit the best talent in London from a market with a 100:1 ratio of recruiters to quality candidates is HARD. To date we’ve still never paid a single recruitment bounty, relying instead on word of mouth and careers 2.0, but despite never having had a developer leave, we still don’t get as many stand out candidates as we need to meet the growing needs of the businesses.

As a result, we decided around the start of this year to open up our careers 2.0 adverts (shameless plug) to remote workers. The decision to dip our toe in the distributed team pond was driven partly by a desire to be able to draw talent from a bigger pool (shock fact: not all outstanding developers live within 10 commutable distance of London Zone 1) and partly because as we get older, the pebble founders are starting to make noises about moving variously to a house in country, Edinburgh and Cape Town/Spain/Mars depending on which day of the week you ask.  We decided to have a crack at a remote working policy and try to put in place a culture that treats remote workers and onsite employees as equally important members of the team. After all, if we managed to solve the distributed team conundrum, then the company could better support the changing needs of existing employees that either need to relocate for other reasons, or simply want a more flexible setup to cope with sprog-care, iron man training regimes or whatever else it is that developers do when they’re not coding.

That was then, this is now. By the start of October we’ll have two developers based permanently in Edinburgh, another pair based in Sofia, Bulgaria, one director based in Tring outside of London, and I’m spending an increasing amount of time working from a client site in Newcastle. We’re still learning the ropes, but I thought it might be useful to catalogue some of our findings to date.

A note on Communication

It seems so obvious, but this has been the hardest issue to tackle. That good tools exist is clearly not in doubt, the challenge is largely a cultural one rather than a technical one.  Moving daily scrum meetings to happen on Google hangouts was the easy bit. Much more difficult has been encouraging a culture of inclusive communication. Ensuring that developers default to campfire for project related conversations, before resorting to one to one Google talk, or hurling comments over the top of a monitor. Knowing when to move a campfire debate to a hangout is important too - sometimes an in depth conversation is best moved off IM.  Pair programming over a hangout is OK, (the video feed can be slow to reach a good resolution if you scroll frequently through a file); but pair authoring a Google doc offers significant advantages over traditional collaborative document authoring solutions.

Inductions of fire

With a growing tally of remote versus onsite workers, we always all knew the time would come to get everyone around the real campfire/water cooler/insert-colocated-metaphor-here.  To answer this challenge, we’ve just set in motion plans for the inaugural pebble Net Fest ‘12. Objectives for the week long get together are as follows:

  • Finalise any setup issues, acquire software licenses, make sure developers have hardware and tools that they need.
  • Make sure everyone knows everyone else’s name.
  • Basic understanding of all the different projects to facilitate conversations across the teams.
  • Discuss our new team strategy, The Pebble Way ™ - our unique approach to software development.
  • Do some Pair Programming and Test Driven Development
  • Get people excited about the team
  • Have some fun!

Rough Agenda

We plan on having a mix of fun, learning and relationship building. The rough programme we’ve settled on for now is as follows:

Monday

  • Introductions - everyone to answer some silly questions about themselves
  • Introduction to The Pebble Way ™
  • Screening of simple made easy. This excellent presentation by Rich Hickey is a great introduction to a discussion about the principles that underpin much of The Pebble Way ™

Tuesday

  • Tea, biscuits, projects - 15 minute overviews of each project from the most recent team member to join that project
  • TDD workshop from our test guru in chief and SharpDevelop core developer Matt Ward
  • Rest of the day: Pair up new team members with old - do some pair programming on actual projects. New guys drive.

Wednesday

  • 8am -> 8pm Company wide Hackday! 
  • Working theme for the day is “Games”. 
  • See our previous Olympics themed hack day.

Thursday

  • More pair programming, pair up different developers to Tuesday
  • 16:00: Open forum on The Pebble Way ™ - defining our approach collaboratively
  • Evening: Food at the most excellent local restaurant The Corriander

Friday

  • Open 

We’ve never done anything like this before, so I’d love to hear any comments you might have about running a successful induction for a distributed team.

Resources

I’ve found the wide teams podcast a great source of inspiration for tips on working with distributed teams. In particular, this episode with the most excellent Chad Fowler nailed a lot of the issues we were facing at the time I listened to it.

Notes

1. The Pebble Way ™ isn’t really trade marked. We plan on sharing our thoughts right here some time soon.