92 Related Practices
Lean
Scrum is a general framework coinciding with the Agile movement in software development, which is partly inspired by Lean manufacturing approaches such as the Toyota Production System.8
eXtreme Programming (XP)
While Scrum does not prescribe specific engineering practices, Scrum Masters are responsible for promoting increased rigor in the definition of done. Items that are called “done” should stay done. Automated regression testing prevents vampire stories that leap out of the grave. Design, architecture, and infrastructure must emerge over time, subject to continuous reconsideration and refinement, instead of being “finalized” at the beginning, when we know nothing.
Running (and Tested) Features
The Scrum Master can inspire the team to learn engineering practices associated with XP: Continuous Integration (continuous automated testing), Test-Driven Development (TDD), constant merciless refactoring, pair programming, mob programming, frequent check-ins, etc. Informed application of these practices prevents technical debt.
Robust “done”=Technical debtWeak “done”Waterfall
Time
Figure 14: The straight green line represents the general goal of Agile methods: early and sustainable delivery of valuable features. Doing Scrum properly entails learning to satisfy a rigorous definition of “done” to prevent technical debt.9
6 “Seven Obstacles to Enterprise Agility,” Gantthead, James (2010) http://scrumreferencecard.com/7-obstacles-to-enterprise-agility/
7 See http://less.works to learn about Large Scale Scrum
8 Agile movement defined at http://agilemanifesto.org
9 Graph inspired by discussions with Ronald E. Jeffries