Developing Distributedly, Part 2: Best Practices for Staying in Sync
In part 1, we discussed the various tools the distributed mobile web engineering team at the Wikimedia Foundation uses to stay synchronized. While the tools are critical to our success, it takes a lot more to ensure that we can successfully work together despite the geographic distances between us. Our development procedures and team norms are the glue that holds it all together.
As with the tools we discussed previously, the practices and norms I’ll discuss below are by no means unique to—or only useful for—distributed teams.
Rituals
When you can’t just walk across the office or poke your head over the cubicle wall to sync up with a teammate, regular, structured moments for real-time, intra-team communication become critical. The mobile web team is a scrum-inspired agile team. As such, we use regular stand-ups, planning meetings, showcases and retrospectives to have some real-time, focused conversation with one another. Because we hold these meetings at a regular cadence and consider them critical touch points for the entire team, we think of them as rituals rather than regular meetings.
The stand-ups in particular are excellent for synchronization. Unlike traditional Scrum, we do not hold stand-up meetings every single day; rather, we do ours on Monday, Wednesday and Friday. We use this time to let everyone know what we’ve been working on, make commitments about what we will be working on, alert the team if there’s anything blocking us from getting our work done and quickly triage any bugs that have been reported since we last met. While we can always look in Mingle (our project management tool, see part 1) to see who is working on what and when, these brief meetings make it easier to raise issues and communicate about where further collaboration between teammates may be valuable.
Often, conversations about blockers and problem areas start during the stand-up and continue between the interested parties after the meeting has concluded. The meeting is kept short, time-boxed at 15 minutes, so there is little overhead; the meeting stays focused and we communicate just enough to keep us all moving forward.
The other rituals provide a great way for us to stay in the loop, bond with one another and allow the team tremendous influence over the product and our process. While their primary purposes are not about day-to-day synchronization like the stand ups, the other rituals are essential for reinforcing our self-organizing team. Particularly since we are distributed, these rituals are sacred, as they are the primary moments when we all know we can work together in real time.