Sunday, November 23, 2008

Agile Project Management for Globally Distributed Teams

What’s the perfect Agile team size? The typical Scrum team size is 5-7 people in one location with a dedicated product owner. This model has been proven out time after time. However, expand the team to 4 project managers, 50 people around the world, three different outsource vendors, three different languages, umpteen time-zones, a multitude of contractors, a team of product owners and you have a challenge. Standard, by the book Scrum will not work and we already know by experience that waterfall does not work.

What to do? Pick the best out of multiple project management methodologies and tailor a process that works for you. The goals are still the same, fast development, customer involvement, frequent feedback, and reduced waste. I’ve seen lots of experts write about standard scrum in small teams. I don’t see much written about large agile teams.

Scrum, What works for Globally Distributed Teams

  • User Stories
  • Short Sprints
  • Test automation
  • A commercial web based Agile PM tool
  • Burn down charts
  • Multiple Scrum Masters
  • Customer involvement
  • Prioritized product backlog
  • Scrum of Scrums

Scrum, What does not work for Globally Distributed Teams:

  • Daily standup meetings for the entire team
  • A single product owner
  • Sticky notes for user stories
  • Developers adding tasks

Things to try: (I have and it works)

  • A product owner team
  • Three sprints per user story
    • User story definition
    • User story development
    • User story QA/Test Automation/UAT
  • Dedicated System Architects
  • Multiple Project Managers - Scrum Masters
  • Predefined tasks per user stories
  • Multiple interacting scrum teams
  • Be flexible with your approach


Saturday, November 22, 2008

Agile Project Management

Agile Project Management is growing in popularity as a method to more tightly involve the customer in the process of delivering a software product. Agile project management processes are a way to remove waste from all levels of product development and deliver value at a reduced cost.
The goals I had when introducing Agile were; fast development, customer involvement, frequent feedback, and reduced waste/cost.

Fast development: Achieved by delivering focused/concise user reviewed and approved user stories written in natural language thus reducing rework and waste. (
Type B /C Sprint) Overlapping and concurrent sprints with defined teams doing specialized work keeps the development team pipeline full. It also keeps the customer involvement very high.

Customer involvement: Customer involvement is key to Agile, without frequent customer interaction the value gained by constant customer inspection and validation is lost.

Frequent feedback: An important agile process is short development cycles (three week iterations) with a demonstrable build at the end of each iteration. These builds are used to demonstrate functionality to the customer for approval or rejection. It’s much easier to change a three week cycle than a nine month development effort.

Reduced waste/cost: The agile process reduces cost and waste at many different levels. An important part of Agile is the frequent prioritization of user requirements to make sure the development team only focuses on what will be valuable to the customer. Prioritizing requirements results in a product that has immediate value without the clutter. Long term the result is lower product complexity and support costs.