One of the Agile principles is:
“The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
Yes, I agree. However, face-to-face communication is unfortunately often a luxury for most multi-shore projects because of the time-zone and location difference. In my recent projects, we found Jira (with GreenHopper) is useful tool for daily communication between the onsite team and offshore team. I would like to share some practices we use in the projects:
Working on the Same Plan
Most Agile practitioners (Scrumers) advocate whiteboard as most effective tool for project planning and progress tracking because of its simplicity and visibility. How do we use whiteboard for multi-shore projects? Answer is Jira (with GreenHopper add-on).
GreenHopper provide “electronic whiteboard” to facilitate agile planning among the distributed teams. User can create Story Cards and Task Cards, and define priorities. The planning meeting is usually conducted in a form of conference call with shared screen. Both onshore and offshore teams look at the same “whiteboard”, discussing user stories, and determining estimation and task owners.
GreenHopper also provide Burn-down chart which allow both teams know the progress every day.
Clarifying Requirements
Requirements are never (should not necessary to be) clear upfront. We found the team usually has requirement questions when they started working on a task. Before using Jira, we had used wiki or email to communicate with U.S onsite team for clarifying requirement. The problem of wiki is that it is difficult to trace back from a question to a specific task. The problem with email is that the information is scattered in individual’s mailbox and difficult to manage. With Jira, one can post the questions by adding comments to the user story (or task), and then assign it to the person who knows the answer. The beauty of this approach is all the requirement questions and answers are organized by feature.
Collective Design
Separating design and implementation is bad practice because of the interactive nature between design and implementation. In the projects, I strongly encourage the offshore team to design the solution and the U.S onsite architect reviews the design. We attached the design document to the Jira ticket so that the U.S architect can comment it with his thoughts.
Tracking Dependencies
Dependencies are road blockers which need to be resolved as soon as possible. Jira provides a way to link the dependencies with the tasks so that user can know which tasks are impacted by a particular dependency.
Wei,
I think this is a great point about how we leverage technology to help multi-shore teams to be more interactive on a daily basis. The ability to have varied shores and time zones communicating as if in a ‘conversation’ is such an important way to enforce ‘face-to-face’ conversations as best as possible given the chronological and geographical separation of team members.
‘Out of sight’ – should not imply ‘out of mind’ – and in fact as you pointed out – Jira (and Greenhopper) brings things back into ‘sight’ so well.
Thanks!
Kevin