Agile Software Development What is Agile? And How are we implementing Agile?
Origins of Agile • Agile Software Development is heavily influenced by Lean • Lean was born as part of the industrial renaissance of Japanese manufacturing after the second world war. • During that period Dr. Demming went to Japan and kept talking about his ideas around management and quality. His message to the Japanese corporate world was: • Improving quality will reduce expenses while increasing productivity and market share.
Origins of Agile • Major events: • 1986: Takeuchi and Nonaka’s “The New New Product Development Game” • 1993: First Scrum team created • 1995: Scrum formalized by Jeff Sutherland and Ken Schwaber • 1996: First XP team created • 1999: First XP book • 2001: Agile Manifesto and creation of the Agile Alliance
Agile Manifesto www.agilemanifesto.org We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over Processes and tools Working software over Comprehensive documentation Customer collaboration over Contract negotiation Responding to change over Following a plan That is, while there is value in the items on the right, we value the items on the left more.
Agile Today • Lean Software Development Principles: • Eliminate Waste • Create Knowledge • Build Quality In • Defer Commitment • Deliver Fast • Respect People • Optimize the whole • Framework to implement Lean Software Development: • Scrum and XP • Jeff Sutherland: “I have never seen XP scale without Scrum and I have never seen a Scrum team become hyper-productive without adopting the XP practices.”
Scrum • Scrum has 3 roles • Product Owner • Scrum Master • The Team
Values: Communication Simplicity Feedback Courage Respect Practices: Pair Programming Planning Game Iteration Planning Test Driven Development Whole Team Continuous Integration Coding Standards Collective Code Ownership Simple Design System Metaphor Sustainable Pace Refactoring On-site Customer Open Workspace Acceptance Tests (Customer Tests) Extreme Programming
Ultimate Software • We are using Scrum with 2 week sprints • We are using several of the Agile/XP practices • TDD • Continuous Integration • Pairing (Pair Programming and Promiscuous Pairing) • We are educating our teams on the Lean principles and some of the Lean practices and techniques • Value Stream Mapping • 5 Whys (root cause analysis) • Demming Cycle (Plan-Do-Check-Act)