The document describes how an agile project team at ThoughtWorks refactored their process to address problems like long story card lifecycles, bugs, slow build times, and communication issues between distributed teams. They made changes such as having teams own story cards, using pairing and smaller co-located teams, emphasizing testing, creating visual boards, improving developer environments, and fostering more communication. These process changes have led to visible progress, higher customer trust, improved morale and productivity, and an overall more enjoyable work experience for the team.
2. Agenda
• Agile processes stress the importance of
continual reflection
• We will describe how we have recently
refactored the process of one of our oldest
agile projects
3. Short History
• ThoughtWorks’ first agile project
• Old, large legacy codebase
• Complex domain
• Iterative – but quite heavy process
• Distributed – large team in India
• Beta release approaching
4. What were the
problems?
• Long story card lifecycle (~2 months)
• Too many bugs
• Team growing in size
• Distributed team – communication
• Developer productivity problems – slow
build time
• ... low morale
5. How did we
address them?
• Enable Better Practices
• Make Progress Visible
• Improve Developer Productivity
• Foster Communication
• Make it more fun
6. Enable Better Practices
• Team owns cards
• Pairing – not just pair programming
• Smaller and Co-located teams
• Emphasis on testing
• Efficient stand-ups
7. Make Progress Visible
• Build Tower
• Story Walls
• Colored cards
• Master story wall
• ... you can’t fix it if you can’t see it
8. Improve developer
productivity
• Fast development machines
• Linux
• Refactor the build
• Productivity cards
• ... it all boils down to “Reduce waste”
9. Foster Communication
• Ambassadors
• Open furniture
• Anybody can contact any client
• Lunch-time domain sessions
• ... communication is the single biggest
problem for a distributed project
10. Make it more
• Team outings
• Pizza for IPMs
• Ice cream for successes
• AoE forever
11. What’s not working?
(yet)
• Automated functional testing
• Rotation across teams
• Induction
• Privacy/noise
• ... but we are still refactoring
12. So...
• Making visible progress
• Customer trusts us
• Team morale is much higher
• Productivity is much better
• ... we are having fun!