When I train and coach clients, I always try not to be bias towards one Agile methodology. I find it more effective to get the people to think about the different practices and how it would work in their environment and culture. However, from time to time, I do get asked my recommendation. So, below are my recommendations for when to do Scrum, Kanban, and eXtreme Programming.
Do Scrum if your team is at least one of the following:
a. Team sizes ranges from 5 to 9 people.
b. Working in conjunction with multiple teams towards a common release goal.
c. Need to deliver/demo potential shippable code every two, three, or four weeks.
When doing Scrum, I recommend that you use an Agile Project Management tool like Rally or Cognosco:) and use normalization for story estimation if you are working with multiple teams towards a common release. I also recommend to at least get a shared, if not dedicated team room to project your Kanban board and parking lot issues.
Do eXtreme Programming if your team is at least one of the following:
a. Single team that is less than 5 people.
b. Need to deliver/demo potential shippable code every week.
c. Team is highly coupled and development & testing is highly automated.
d. Need flexibility to change Stories within an Iteration.
When doing eXtreme Programming, I recommend that you use an Agile Project Management tool like Rally or Cognosco:) I also recommend to at least get a shared, if not dedicated team room to project your Kanban board and parking lot issues.
Do Kanban (or Scrumban) if your team is at least one of the following:
a. Supporting work that cannot be planned for ahead of time.
b. Urgent need to reduce overhead.
c. Single team working independently.
d. Most of the work are really tasks and spending time to put them into a Story format is counter-productive.
When doing Kanban, I recommend that you use Trello to track your work. I also recommend to at least get a shared, if not dedicated team room to project your Kanban board and parking lot issues.
If you don’t have a dedicated ScrumMaster or Facilitator, then have someone on the team take on this role and buffer 20% of their time to this. I also recommend to do an Iteration 0 before you embark on any development – refer to my previous blog post on Iteration 0
GOOD LUCK!!!