Scrum in pictures


1. Maintain a prioritized backlog of features

2. Move selected features to the Sprint Backlog

3. Track sprint progress via burndown charts

4. View sprint status on the taskboard

Tools And Practices For Distributed Agile

Making Agile processes work with distributed teams was considered a very hard problem a few years ago. Today, many companies have found that distributed agile works perfectly with a few tweaks. With globalisation and offshoring becoming important, this is one topic worth keeping an eye on.

Agile in distributed environments require tools to make up for the fact that communication is tougher:

  • Agile Project Management Tool: An agile project management tool keeps everyone informed about the status of the product backlog, sprint backlog and gives visibility into the current sprint. Silver Catalyst is an agile project management tool for lean, nimble teams.
  • Communication Tools: Distributed teams need tools to bridge the communication gap. Here are some to consider:
    • Instant Messaging: Allow team members to contact each other directly across locations
    • VoIP Chat: Tools like Skype allow team members to speak directly with one another
    • Live Meetings: Web conferencing software allows team members to work together on design and development
    • Desktop Sharing: Desktop sharing tools allow developers from different lcoations to help each other by pairing up and working together
    • Wiki: A wiki can function like a lightweight document management system across teams

Here are some practices that will help you apply agile in a distributed environment:

  • Use Shorter Iterations: Consider a sprint length of two weeks instead of the normal 30 days. Communicating with customers and stakeholders is more difficult. Shorter iterations add extra visibility into the process.
  • Adjust Working Hours: When teams operate from different timezones, it have to have at least a few hours of overlap so that direct communication between team members from different locations is possible
  • Divide Work By Feature: A common mistake is to divide teams by function,-like having developers in one location and testers in another. A better way is to split the features to be delivered and have complete teams at each location working on a subset of features
  • Move Team Members Between Locations: Move team members between locations every few months so that they get used to working with each other and work as a combined team, rather than two separate teams. At key points, try getting all team members to work at one of locations for a few days.