Tools And Practices For Distributed Agile Software Development

Posted on October 12th, 2010 in Agile by siddharta || 5 Comments

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 well 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.
  • 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.

Have you tried anything that worked well for you? Let us know in the comments!

Doing Distributed Agile?

Share and collaborate with distributed teams with our electronic agile board tools. Get all the benefits of electronic tools without sacrificing the benefits of physical boards. Supports Scrum taskboards, Kanban boards and user story maps. Check it out!

5 Responses to “Tools And Practices For Distributed Agile Software Development”

  1. toolsforagile Says:

    Tools And Practices For Distributed Agile Software Development –… #distributed #agile

  2. fanc48 Says:

    RT @silvercatalyst: Tools And Practices For Distributed Agile Software Development –… #distributed #agile

  3. Lisa Says:

    You wrote: “Finally, agile teams are cross-functional. Groups that were previously isolated, such as analysts, testers and developers, sit and work together. Again, this increases the amount of communication between groups, thus reducing the need for documentation.”

    There is a limit to teams being cross-functional. Testers cannot perform Developers’ tasks, Business Analysts (BA)cannot perform Testers’ tasks, Developers cannot perform Testers’ or BAs’ tasks,… because each has its own specialty. However, within an Agile team, Developers can help each other, Testers can help each other, etc.. The only time when I have seen everyone performing a same tasks was during Regression Testing where each team member would execute a set of test cases/scripts, previously developed and verified (during Functional Testing) by Testers. I keep reading right and left that the team is cross-functional but there is a limit to that.

  4. siddharta Says:

    Hi Lisa,

    Cross-functional just means that everyone needed to do the job is available in one team, so a team with a developer specialist and a tester specialist is cross functional. What you are talking about are generalists, ie. a single person being able to perform multiple roles. Thats also good, sometimes it is possible where for eg: a developer could learn some database skills or a tester could learn some business analysts skills. In some cases its like you said, all specialists only. While generalists are usually better, sometimes you just need the depth of a specialist, so there is no 100% rule for this.

  5. Khaled Says:

    I’m in Denver at 5280 feet. To healthy them up a bit I used 3/4 whole wheat flour and added 2T milk, 1c. nuts and 1 1/2c. oaetaml on ungreased airbake pans. GORGEOUS! My mom, aunt and I have lived here for 30 plus years and no matter what we’ve done, they never looked like this! They didn’t really rise, they just spread into mounds… and STAYED THERE! NO MORE FLAT COOKIES… YAY!!!!They took 13 minutes or so, then I raised the temp to 375 and they took 10.5 MINS. THEN I realized I used baking POWDER by mistake. Oops! yields 52 cookies. Thank you!

Leave a Reply