200 likes | 212 Views
Extreme Programming… chunking down, rubber ducking and waterfalls. Ed Granger-Happ Save the Children April 7, 2003. Some Quotes.
E N D
Extreme Programming…chunking down, rubber ducking and waterfalls. Ed Granger-Happ Save the Children April 7, 2003
Some Quotes • ''Software easily rates among the most poorly constructed, unreliable, and least maintainable technological artifacts invented by man.'' --Paul Strassmann, former CIO for Xerox Corp. --Business Week, 12/6/99 • “All told, bad software cost U.S. businesses $85 billion in lost productivity last year,according to Jim Johnson, president of …The Standish Group” --Business Week, 12/6/99
Some Quotes (cont.) • Software bugs, or errors, are so prevalent and so detrimental that they cost the U.S. economy an estimated $59.5 billion annually … although all errors cannot be removed, more than a third of these costs, or an estimated $22.2 billion, could be eliminated by an improved testing infrastructure that enables earlier and more effective identification and removal of software defects.”--National Institute of Standards and Technology (NIST), 6/28/02
Some Quotes (cont.) • “A software mogul … makes a speech. ‘If the automobile industry had developed like the software industry’, the mogul proclaims, ‘we would all be driving $25 cars that get 1,000 miles to the gallon.’ To which an automobile executive retorts, ‘Yeah, and if cars were like software, they would crash twice a day for no reason, and when you called for service, they'd tell you to reinstall the engine.’ --Charles C. Mann July/August 2002
Some NGO Realities • “If the user could just tell us exactly what they want, we could program anything!” • “The scope on our first interactive web project changed so many times we missed our deadline at least six times.” • “If we were to do every project that our users requested we wouldn’t get anything done.” • “I’m moving to Mozambique; at least there it’s my own chaos.”: • “What budget?”
Extreme Programming…What is it? • A definition: “XP is a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly changing requirements.” • “XP promises to reduce project risk, improve responsiveness to business changes, improve productivity throughout the life of a system, and add fun to building software in teams…” -- Kent Beck • Why “Extreme?” • XP takes common sense practices and turns up the volume to 10 on each.
What Problem is XP Trying to Solve? • Software development risks: • Schedule slips • Canceled projects • Systems going sour • High defect rates • Misunderstood business • Changing business • Feature bloat, scope creep • Staff turnover
Four Project Variables • Four Interrelated Factors • Cost • Time • Quality • Scope • At the most the user can determine 3; the 4th goes to the developers • XP fixes the time (60 day projects max) • What “gives” is the scope… • that feature would really make a nice phase 18 feature
Key Assumption • The cost of change rises slowly over time. • Therefore, make the decision as you go, as late as possible
An evolving plan Small releases Use metaphors, stories to describe systems Keep designs simple Write the tests first Refactor Program in pairs Collective ownership Continuous integration 40-hour work week (avoid burn-out) On-site customer Code to standards Keep meetings short Embrace change XP Practices
Why do XP? • Software project failures are legendary • Traditional software methodologies are unable to: • Handle faster delivery cycles • Nor able to embrace frequent change • They can’t live in web world
The “waterfall” method of development has failed Traditional development methodologies are not working requirements analysis specification design coding testing release
Why should an NGO try XP • NGO’s cannot afford a large project failure. • “When IT makes a mistake here, a child goes hungry.” --Gordon Hodgson, former CIO, World Vision. • Program and other NGO professionals cannot specify what they need. • With limited IT budgets, NGO’s need small, quick successes • The 80% solution sooner
STC Experience • We focused on a few of the practices last year: • Small releases, “chunking down” • We went from one major web release in 2001 to 13 in 2002 • Prototyping everything… you gotta see it to understand what you want • Metaphors, stories to describe systems. • One page application diagrams • Story cards to sort priorities • Paired design & testing teams • “Rubber Ducking”
Project Chunking • CIO Magazine, April 1, 2003, pp. 93-94 • Benefits of chunking down: • Less risk: smaller and less complex, shorter timeframes, learning from preceding phases, changing environment • Benefits realized sooner: putting value in users hands earlier • More frequent decision points: can change project’s course, leverage learning
How Have Things Improved? • In the IS Department, from FY01 to FY02 • Productivity jumped • Project completions grew 99% (697 to 1386) • Project on-time rate improved to 78% (434 to 1086) • Significant turnaround on interactive web development • Phase one – 9 month project, 6 delays • Phase two – 13 3-week phases, 0 delays • User satisfaction grew 10% (CSI of 3.25 to 3.55 on 5 point scale)
Getting Started • Read Kent Beck’s book, Extreme Programming Explained, 166 pp. • See the additional resources listed on the next slides. • Try it… test, tune, throw away!
Resources • Links to articles on Extreme Programming: • http://www.cutter.com/project/ead0002.html • a long article, but good background and treatment • http://www.xprogramming.com/what_is_xp.htm • a good overview, and web site of XP resources • http://www.extremeprogramming.org/map/project.html • a good one-page map of the XP process • also a good reference site—see their home page at http://www.extremeprogramming.org • http://tayek.com/~ray/xptools/ • a superb XP bibliography of web links and tools
Resources (cont.) • Books • Extreme Programming Explained: Embrace Change, by Kent Beck • Questioning Extreme Programming, by Pete McBreen • A Practical Guide to eXtreme Programming, by David Astels, Granville Miller, Miroslav Novak • The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt, David Thomas, Ward Cunningham