back to notes

Agile Practices for Distributed Teams – Cheat Sheet

Agile Practices for Distributed Teams – Cheat Sheet

Try to Co-locate for the First Few Weeks of the Project.
Teams who can find a way to come together during the first few weeks of a project will gain the rewards of this investment by having a common project context and gain some one-on-one connectomes to last them for a while later. Picking a few team members to co-locate initially is still better than not having any team face-to-face meetings.

Real Time Communication
Using Video is necessary not a nice-to-have for distributed teams!
Make it a habit for everyone on the team to use online meninges where they share their desktops and start a video chat.
IMs and chats sessions should also be the norm.
Avoid using email as the primary means of communication.
Try using tools like Camtasia to record screen/voice and share with other sites.

Pre-planning then Planning
Try having the product owner and key team members (SMEs, Tech Lead, Analyst, and Tester) pre-plan for the next iteration.
The result of a pre-planning session should be:
Overall goal desired for next iteration
Confirmed list of stories for next iteration
List of acceptance tests for each story plus a UI prototype or activity diagram
Try multi-part planning meetings where teams breakout then converge

Schedule Short Effective Daily Standups
Daily interaction may sound challenging but it is very necessary for distributed teams to stay on track with what each team is doing.
Keep them effective by setting solid ground rules and sticking to them. Allow for open team collaboration time after the standup.
Schedule them at a time that fits the various time zones or create a rotating schedule to satisfy all teams.

Plan Early on Feature vs. Component Teams
Feature teams are made up of all the right roles that can get a feature/story 'Done' all the way. Building co-located feature teams is the best way to go. Otherwise, distributed feature teams require a high level of communication across time zones. Try pairing regularly between members.
Component teams are structured around their location/common skills. They deliver only partial features that need integration with other teams.

Try Collaboration Rooms in Each Site
Each site should try setting up a collaboration room where the team members can do work together. Members can spend 4-8hrs/ day here.
Collaboration room should have visible information radiators to communicate the team's status, impediments, completed items, team norms/rules.
Should have a projector, writable walls, video conferencing, flip charts, markers .etc

Norms for Successful Multi-site Meetings
Prepare ahead of time and design your sessions. Have effective facilitators.
Prepare online collaboration tools. Send purpose and agenda out early
Use visual group memory by sharing a document with key meeting notes
Say your name each time, speak up and interrupt the speaker if you can't hear or don't understand. Others probably share your pain.
Speak in clear short cycles, ask if everyone understood.
Move the camera so speaker is visible.
Kick off meetings with some fun or social chats to break the ice.

Try Several Collaboration Meeting Styles
Scrum of Scrums should be attending by key roles from all teams to discuss top issues and coordination between teams. Schedule more frequent initially.
Open spaces allows teams to pick several burning topics to discuss in short increments. Interested folks attend the session of most value to them.
Town hall type meetings are open to everyone. Good for sharing general information, doing multi-team retrospectives or demos.

Integrated Robust Engineering Platform
When dealing with distributed and multi-team projects there is a greater need for tools that can support:
Real time collaboration and transparency, collective code ownership, parallel development, continuous integration, refactoring, test driven development, integration with bug tracking, automated daily builds, automated regression testing.
Patterns and common coding practices should be shared through upfront training in addition to design and code reviews each iteration.

Online Tools and Wikis
Wikis are becoming a popular way for sharing team information, posting updates, posting common team FAQ, product owner knowledge sharing. Etc
Google spreadsheet is a great way to have multiple team members brainstorm stories, size points, share retrospective items.
Skype, GoogleTalk, OVOO, SightSpeed and others are a must for video
Camtasia screen recording, Bubbl.us, ImaginationCubed.com

Pair Often
Have developers, analysts, product owners, testers and everyone on the team schedule pairing sessions with remote team members.
Setup members with hands free headsets, online meeting tools, phone conference bridge.
Pairing will enhance learning, coaching and relationship building. It will also help align coding styles, improve understanding of business rules etc

Plan to Travel
There is no substitute for face-to-face communication so make plans to travel. It is critical to have as many team members as possible meet during
the initial phase of the project.
Plan to have several team members travel every now and then to the various locations. Especially the product owner.



last updated september 2019