Professional Documents
Culture Documents
Ned Horvath Massey University Prepared for New Zealand Police 20 Jul 07
Agenda
Recap Agile motivation & history SCRUM Some case studies and lessons learned Agile applied to business processes
You can never step in the same river twice - Buddhist proverb
Waterfall v. Agile
Predictive v. Adaptive Perfection v. Approximation Right once v. Continuous improvement Process artefacts v. Running system Centralized control v. Distributed control Delivery times measured in months or years v. weeks or months Discipline v. Discipline
Agile is for
Small teams (<40) Goal is on-time, on-budget, good quality Poorly-understood requirements Not safety-critical Experienced contributors
Cultural Requirements
Continuous communication between Suppliers and Users Sponsors who reward business value and value the product Delegation to front-line teams Negotiation permitted
Agile Manifesto
Customer satisfaction by rapid, continuous delivery of product Working product is delivered frequently (weeks rather than months) Working product is the principal measure of progress. Even late changes in requirements are welcomed. Close, daily, cooperation between customers and suppliers
Agile Practices
Frequent Customer-Supplier Communication Get something delivered, then refine Timebox
Fixed length 2-4 week development iterations 1-3 development interations per release iteration
YAGNI (You Aint Gonna Need It) / Just in Time Redesign to meet new/evolving requirements Continuous Integration & Testing
(Automated) Unit Tests part of deliverables (Automated) System integration tests updated every iteration (Every week? Every day?) Customer owns acceptance testing
+
Customers and Suppliers are accountable for success!
Scrum
Scrum Roles
Small (6-15) Team ScrumMaster (guide, provide cover, deal with non-technical obstacles. Not a manager) Product Owner (Customer or Marketing) Other Stakeholders: Sponsor, Press, Meta Team - larger teams comprise small scrum teams for components (up to 800 contributors claimed by Schwaber)
Scrum Activities
Project Planning Sprint (Iteration) Definition & Completion Daily Sprint Status Meeting
Items from previous sprint backlog (e.g. bugs, incomplete features) New features from Product Backlog to be delivered (implemented and tested) New features for next sprint that need research (definition, spikes) Delivery Preparation actvities [Budget 75% of available time net of planned unavailability]
Sprint Review Meeting Review and demo accomplishments Update Release [and Product] Burndown Chart
ScrumMaster records obstacles, updates blocks list and sprint burndown chart
see spreadsheet example
Sprint Retrospective
Team & ScrumMaster Every 2-4 iterations Identify chronic obstacles Identify process improvements [Define process improvement plan]
Spikes
A Spike is a bit of exploratory work, the aim of which is to understand enough to estimate a task, pick a technology, or assess a tool for fitness for a purpose.
Typically timeboxed to 8 hours or less The outcome is a recommendation or estimate Any code resulting from a spike is usually thrown away
Ask Why? Capture the outermost summary use cases to see who really cares. Revise, repeat.
Use case driven supports YAGNI Use cases identify functional requirements only
Use cases supplemented with explicit problem scenarios (Acceptance Test Framework) > 20 stove pipe legacy systems, customer beginning to integrate with J2EE.
Sync ctd
Tight timeframe and budget (4 developers, 1 QA, one lead, 4 months) No formal scope, requirements Geographically distributed team, multiple demands on personnel Lots of pre-existing (but poorly understood) development process Already late
Sync - Issues
Scope ill-defined
Target LDAP implementations? Target substrate (JMS, DBMS)? Boil the ocean - initial deliverables included logging framework and other cool subprojects
Lead had little project management experience Management wants it yesterday Culture rewards innovative individuals
Sync - Results
First customer delivery 4 months after restart
Scope insufficient! Developed 2 interested outside customers
Second delivery 9 weeks after first Subsequent deliveries at 6 week intervals Operational at targeted customers at third release (8 months after restart, 11 months after initial start) Resources redirected after 5th release (11 months after restart)
BT Exact ctd
Problem: Too Few Coaches
Pair Coaching Apprentice Coaching Agile Boot Camps
Results
ISO 9001 certification Jan 2006. Assessor: This was a fundamental change within the business. We were impressed by the scale of the transformation and how fast the organisation implemented the changes.
One size does NOT fit all (Cockburn: Crystal) Consistent with current management theory (Drucker, Peters) and Quality process [Ask Stephen about Telecom]
References
Cockburn, Alistair, Writing Effective Use Cases, Addison-Wesley 2000, ISBN 0-201-70225-8 Schwaber, Ken, Agile Software Development with Scrum, Prentice-Hall 2001, ISBN 0-130-67634-9 Boehm, B. & R. Turner, Balancing Agility and Discipline: A Guide for the Perplexed, AddisonWesley 2004. ISBN 0-321-18612-5. Ambler, Scott, Making the Unified Process Work in Practice, http://www.ambysoft.com/unifiedprocess/ Linda Rising and Norman S. Janoff, The Scrum Software Development Process for Small Teams, IEEE SOFTWARE July/August 2000
References ctd.
Cohn, Mike, Agile Estimating and Planning, Prentice-Hall 2005, ISBN 0-131-47941-5 M. Poppendieck and T. Poppendieck, Lean Software Development, Addison-Wesley, 2003, ISBN 0-321-15078-3 http://www.ControlChaos.com/ http://www.ScrumAlliance.org/ http://AgileAlliance.org http://AgileManifesto.org Other books by Cockburn, Schwaber
Q&A
Scrum
Criticality
Life (L)
L6
L20
L40
L100
L200
L500
L1000
E20
E40
E100
E200
E500
E1000
D20
D40
D100
D200
D500
D1000
C20
C40
C100
C200
C500
C1000
1- 6
Alistair Cockburn
- 20
- 40
- 100
- 200
- 500
- 1,000 Slide 11
Not even conceivable to have a single, common methodology. Every project is slightly different and needs its own.
- Alistair Cockburn
Deliver benefits early (First Iteration is demonstrable) Avoid significant rework by only doing just-in-time detailed design Avoid dead-end design decisions by managing with LPM decisions and trade-off matrix Raise quality by moving testing forward in the process Become responsive by supporting scope adjustments every iteration Become reliable by instituting regular heartbeats to the team Increase estimating accuracy by working in small chunks Decrease risk by always having working software Increase throughput via real-time visibility Increase team moral by dropping the death marches.
- Ryan Martens, Rally SDC
4. 5.
6. 7. 8. 9. 10.
Hierarchical
High
Great Organization
Agile Organization
Path 1 Agility Agility & Innovation
Low
Waterfall
Path 3 Agility & Discipline
Agile Development
Path 2 Discipline
Chaos
Bureaucratic
Low
Solo Virtuosos
Start-up
(Adapted from Collins Good-to-Great Matrix of Creative Discipline, 2002)
Rollover
Implement daily stand-up meetings, create an automated build process to always be close to shippable code
2.
Create and track a Backlog of stories, a Release, and its Iterations through to Acceptance Create short iterations and release small batches
3.
Capture use cases, scenarios for richer requirements statements, and build parent-child relationships to pull testing forward Build tight link to the customer for feedback
4.
Track test case results to story cards, manage defects from iteration to iteration Implement an automated acceptance testing framework
5.
6. 7.
Develop coding and naming standards Track remaining effort on tasks Automate the build process and share results Implement a Testing Framework that includes unit test, application tests and GUI tests Develop a continuous integration process and server Move toward collective code ownership Cross-train through pair programming to increase flexibility, domain knowledge and reduce risk
Suggested Reading
Home of SCRUM Agile & Iterative Development
www.controlchaos.com/ www.craiglarman.com
Lean Software Development
www.poppendieck.com/
Agile Project Management
www.jimhighsmith.com/
Rally Whitepaper
Tactical Management of Iterative Development: Achieving Competitive Advantage, www.rallydev.com
Professional Help
Training Opportunities Lean Manager & Practitioners Classes
www.poppendieck.com/co urses.htm
eXtreme Programming
www.xprogramming.com/ xpmag/services.htm
Ineffective use of the retrospective Inability to get everyone in the planning meetings Failure to pay attention to the infrastructure required Bad ScrumMasters Product Owner is Consistently Unavailable, or There are Too Many Owners Who Disagree Reverting to Form Obtaining Only "Checkbook Commitments" from Executive Management Teams Lacking Authority and Decision-Making Ability Not Having an Onsite Evangelist for Remote Locations A Culture that Does Not Support Learning Denial is Embraced Instead of the Brutal Truth
- Jean Tabaka, http://tinyurl.com/2og2f7