About Agile Development at Ultimate Software

advertisement
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
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
Extreme Programming
• 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)
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)
Download