agile methods - an overview - marc bless - 2009
TRANSCRIPT
Agile Methods – An Overview
Marc Bless Sept 25th 2009
Table of Contents
• Mo@va@on • History of Agile Methods • The Agile Manifesto • Overview: SCRUM and FDD • How we do it @ MCC
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 2
Mo@va@on: Why Agile?
• 65% of all product features are hardly ever used • 65% of projects fail due to requirement issues
• waterfall does not take this into account Source: Standish Group, Jeff Sutherland
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 3
Mo@va@on: Why Planning Fails
• Planning is by ac@vity rather than feature – Ac@vi@es do not finish early – Lateness is passed down the schedule – Ac@vi@es are not independant
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 4
Do this Do that
Do something Plan:
Do this Do that
Do something Lateness:
Mo@va@on: Why Planning Fails
• Mul@tasking causes further delays • Features are not developed by priority • We ignore uncertainty • Es@mates become commitments
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 5
Do something Plan:
Do something
Mul@tasking: Do something
Lateness:
Mo@va@on: Why Planning Fails
• Developing so\ware is not building a house:
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 6
Developing So,ware Building a House
Time for Architecture All during development Short period at the beginning
Resources needed for architecture
Highly skilled Highly skilled
Time to Implement/Build
All during development Long period
Resources needed to implement/build
Highly skilled Low skilled, thus exchangable
Type of work Crea@ve thinkers Strong workers
Mo@va@on: Why Planning Fails • Resul@ng Project Reality:
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 7
Plan:
Test
Design Implement
Test
Design Implement
Real:
Solu@on: feature by priority
Es@mated and commiaed date
Done and releasable
Done and releasable
Final Release
Agile is NOT • No documents
• No planning
• No control
• Anarchy
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 8
History of Agile Methods • Ōno Taiichi, 1947: „Kanban“-‐System at Toyota, Japan
• Frederick Brooks, 1960s: „The Mythical Man-‐Month“ – Gutless es@ma@ng: based on op@mism and is wish-‐
derived – Surgical team: architect, developer, editor, tester,
toolsmith are ONE team – First ideas of modern pair programming: two brains
do beaer than one – Stop sequen@al phases: crea@ve effort involves
dis@nct phases which can start in parallel (design, implementa@on, tes@ng)
• 1976, Tom Gilb: „evolu@on“ and „evolu@onary“
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 9
History of Agile Methods
• 1996 Kent Beck: Extreme Programming
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 10
• 1995 Ken Schwaber, Jeff Sutherland: Scrum
• 1995 Alistair Cockburn: Crystal Clear
History of Agile Methods • 2000, Jim Highsmith: Adap@ve So\ware Development • 1997, Jeff De Luca: Feature Driven Development • 1995: DSDM (Dynamic Systems Development Method) • 2001: The Agile Manifesto • 2005, Scoa Ambler: AUP (Agile Unified Process = „Agile RUP“)
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 11
The Agile Manifesto We are uncovering beaer ways of developing so\ware by doing it and helping others do it. Through this work we have come to value:
Individuals and interacCons over processes and tools
Working so,ware over comprehensive documenta2on Customer collaboraCon over contract nego2a2on
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 le\ more.
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 12
Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Mar@n Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick
Robert C. Mar@n Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas
© 2001, the above authors this declara@on may be freely copied in any form, but only in its en@rety through this no@ce.
The Seven Core Prac@ces of Agile Work
• Self-‐Organizing Team à Whole Team (XP), Cross-‐Func@onal Team • Deliver Frequently à Sprint, Itera@on, Timeboxing • Plan to Learn à Inspect and Adapt, Adap@ve Planning • Communicate Powerfully à Visibility, Whole Team and Team Room, War
Room • Test Everything à Test-‐Driven Development • Measure Value à Measuring Results, ROI, Running Tested Features • Clear the Path à Removing Obstacles and Impediments, Stopping the Line
• hap://www.agileadvice.com/archives/2006/09/prac@ces_of_ag.html
è Deming-‐Circle PDCA: Plan, Do, Check, Act
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 13
Agile Principle: Timeboxing • Focus on doing the things that maaer most
• Limit the @me spent on open ended tasks
• Effec@ve tool against procras@na@on
è higher efficiency (more business value per @me)
• Cri@cs: how to deal with tasks not being finished in a @mebox?
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 14
Agile Principle: Inspect and Adapt • Con@nuos improvement of knowledge and processes
• Based on „Lean“
• Con@nous Deming-‐Circle PDCA: Plan, Do, Check, Act
• Most important goal: remove any impediment instantly
è Higher efficiency and quality
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 15
Agile Principle: Pair Programming • Knowledge transfer
• Collec@ve code ownership
• Less bugs
• Implicit code review
è higher quality
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 16
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 17
FDD (30++)
• Develop Overall Model • Form Modeling Team • Conduct Domain Walk-‐Through • Study Documents • Develop Small Group Models • Develop Team Model • Refine Overall Object Model • Write Model Notes • Build Feature List • Form Features List Team • Build Features List • Plan by Feature • Form Planning Team • Determine Development Sequence • Assign Business Ac@vi@es to Chief Programmers • Assign Classes to Developers
• Build by Feature • Implement Classes and Methods • Inspect Code • Coduct Unit Tests • Promote to Build • Design by Feature • Form Feature Team • Conduct Domain Walk-‐Through • Study Referenced Documents • Develop Sequence Diagrams • Refine Object Model • Write Class and Method Prologue • Design Inspec@on
Methods Compared
FDD: Overview • 1997 by Jeff De Luca • Mixture of waterfall and itera@ve method
• 5 ac@vi@es with 24 sub-‐ac@vi@es, lots of roles, lots of ar@facts
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 18
Develop Overall Model
Build Feature List
Plan by Feature
Design by Feature
Build by Feature
Design by Feature
Build by Feature
Design by Feature
Build by Feature
Scrum: Overview • 1995, Jeff Sutherland & Ken Schwaber: Scrum
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 19
Scrum: Roles, Ac@vi@es, Ar@facts
Scrum
Roles
Product Owner
Scrum Master
Team
AcCviCes
Sprint Planning
Daily Stand-‐up Mee@ng
Sprint Review
Sprint Retrospec@ve
ArCfacts
Product Backlog
Sprint Backlog
Impediments Backlog
Burndown Chart
Working So\ware
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 20
The Scrum Board
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 21
Source: Henrik Kniberg
Scrum: Hyperproduc@ve Teams
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 22
Scrum: Hyperproduc@ve Teams
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 23
Slow Upset Late
Pressure
Fast Happy Early
Improve
Scrum: Hyperproduc@ve Teams
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 24
Constraints
Energy
Slow Upset Late
Pressure
Fast Happy Early
Improve
Scrum: Hyperproduc@ve Teams
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 25
Constraints
Energy
Hyperproduc@ve teams can output 300% more results in the same @me in a much higher quality! This is proven by many case studies in the last years.
(Source: Jeff Sutherland)
Slow Upset Late
Pressure
Fast Happy Early
Improve
The V-‐Model Issue
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 26
• V-‐Model: waterfall approaches are slow, late, unpredictable, and have low ROI
• Standards (e.g. IEC 62304) do not imply the V-‐Model: any incremental and evolu@onary development process may be used
è huge organiza@onal changes are mandatory!
Bibliography Highly recommended!
• Henrik Kniberg – Scrum and XP… • Mike Cohn – Agile Es@ma@ng and Planning • agilemanifesto.org
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 27
Bibliography • Frederick Brooks – The Mythical Man Month • Ken Schwaber – Agile Project Management With
Scrum • Kent Beck – Test-‐Driven Development by Example • Kent Beck – Extreme Programming explained: Embrace
Change • Mar@n Fowler, Kent Beck – Refactoring: Improving the
Design of Exis@ng Code
Agile Methods – An Overview Marc Bless, Sept 25th 2009 Page 28
[email protected] @marcbless
Marc Bless Sept 25th 2009