Extreme Programming and Agile Processes Overview and Background Glenn Vanderburg Delphi Consultants, LLC [email protected] Outline Brief overview of XP XP and traditional software engineering The agile process movement Recommended reading I’ll move quickly, but at the end I’ll tell you where you can get these slides. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 2 Extreme Programming A software development process Designed to focus on four things: Coding, Testing, Listening, Designing Feedback is built into the development practices, not bolted on. No phases: you do all four of those things all the time. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 3 The Core XP Practices Rapid, fine feedback: Test-driven design (via unit and acceptance tests) On-site customer Pair programming Continuous process: Continuous integration Merciless refactoring Small, frequent releases Shared Understanding: Planning game Simple Design System Metaphor Collective Code Ownership Coding Conventions Developer Welfare: Forty-hour week Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 4 An “Organic” Process Each practice serves multiple purposes in the process as a whole. The processes are interdependent: Each practice on its own is flawed and insufficient. Strengths of other practices compensate. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 5 Many Implicit Practices Caves & commons Fixed iterations Engineering tasks Write it on a card Spike solutions All tests all the time Promiscuous pairing Yesterday’s weather Track velocity Track progress Regression test Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 6 The Most Common Objections That can’t work! Everyone knows you can’t build software that way! Don’t bother. It has worked, and it is working today. It can still fail for various reasons, but when it works, it works spectacularly well. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 7 Characteristics of Successful XP Projects Very rapid development Exceptional responsiveness to user and customer change requests High customer satisfaction Amazingly low error rates System begins returning value to customers very early in the process Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 8 Common XP Misconceptions No written design documentation Truth: no formal standards for how much or what kind of docs are needed. No design Truth: minimal explicit, up-front design; design is an explicit part of every activity through every day. XP is easy Truth: although XP does try to work with the natural tendencies of developers, it requires great discipline and consistency. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 9 More Misconceptions XP is just legitimized hacking Truth: XP has extremely high quality standards throughout the process Unfortunate truth: XP is sometimes used as an excuse for sloppy development XP is the one, true way to build software Truth: it seems to be a sweet spot for certain kinds of projects Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 10 XP and Software Engineering: Where Software Engineering Went Wrong Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 11 Where I’m coming from … I don’t believe in The One True Process. XP isn’t right for every project Classical SE methods aren’t wrong for every project, either. I’ve never experienced a traditional software engineering process on a project for which it was well suited. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 12 Where I’m going … What we now call “Software Engineering” was a response to a particular problem in software development. Different responses are possible, and often preferable. Although Software Engineering works well for certain kinds of projects, it is inappropriate for the vast majority of software being developed today. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 13 What I mean by Software Engineering Software development processes that emphasize one or more of these things: Exhaustive requirements Finding and eliminating errors before they find their way to the code Expensive process elements for measuring and tracking the process itself Extensive elaboration, analysis, and verification of models Coding as a simple translation of the model Yes, I know this is a straw man. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 14 What I don’t (necessarily) mean by Software Engineering Waterfall lifecycle The SE mainstream has embraced iterative and incremental development to some degree. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 15 Software Engineering Blunder #1 Avoiding costly situations rather than optimizing. Measures used for avoidance cost more than the original problem points. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 16 Cost of Errors Cost of Errors Increases Through a Project’s Lifetime Project Phase Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 17 The Software Engineering Solution Cost of Errors Try to push changes as far toward the start of the process as possible: Project Phase Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 18 Secondary Effects Cost of Errors The measures used increase the cost of everything: Project Phase Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 19 Budget Pressures Resist … Cost of Errors The budget pushes these costs back down through limits on manpower: Project Phase Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 20 Budget Pressures Resist … Cost of Errors The budget pushes these costs back down through limits on manpower: Project Phase Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 21 Budget Pressures Resist … Cost of Errors The budget pushes these costs back down through limits on manpower, which just pushes the schedule out. Project Phase Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 22 The XP Answer Find ways to make change cheaper Find inexpensive ways of avoiding errors Reduce overall cost of development Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 23 Software Engineering Blunder #2 Poor understanding of more mature engineering disciplines Treats engineering as a methodical, replicable process Result: SE recommends gradual elaboration with limited feedback into earlier stages of development. In iterative SE processes, this is done for every iteration. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 24 The XP Answer In reality, engineering involves creativity, trial and error, iteration, experimentation, prototyping. Work that into the process with multiple tight feedback loops at all scales. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 25 Software Engineering Blunder #3 Faulty analogy with engineering disciplines. Treats coding as analogous to building or manufacturing. Engineers try to avoid building or manufacturing anything until they are confident of their design (because those steps are costly). Result: SE recommends other costly steps including highly detailed models, model analysis, and careful inspection to ferret out errors before coding begins. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 26 The XP Answer Coding is the detailed (not the only) design activity. Manufacturing = the compilation and build process. (Cheap!) Iterative prototyping and testing are less expensive than all the careful analysis and inspection. Ask some engineers how many prototypes they would build if prototypes were free! Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 27 The Agile Process Movement Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 28 Other Agile Processes The Crystal Methodology Family: crystalmethodologies.org Scrum: www.controlchaos.com Adaptive Software Development: www.adaptivesd.com DSDM (Dynamic System Development Method): www.dsdm.org Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 29 Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others to 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. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 30 Essential Reading The Agile Manifesto http://www.agilealliance.org/ Agile Software Development, by Alistair Cockburn Available 21 December 2001 Draft available at http://members.aol.com/humansandt/crystal/game/getasddraft.htm “No Silver Bullet: Essence and Accident in Software Design,” by Fred Brooks Reprinted in the 20th Anniversary Edition of The Mythical Man Month http://www.virtualschool.edu/mon/SoftwareEngineering/ BrooksNoSilverBullet.html The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 31 The XP Book Series Extreme Programming Explained: Embrace Change, by Kent Beck Extreme Programming Installed, by Ron Jeffries, Ann Anderson, and Chet Hendrickson Planning Extreme Programming, by Kent Beck and Martin Fowler Extreme Programming in Practice, by James Newkirk and Robert Martin Extreme Programming Explored, by William Wake Extreme Programming Examined, by Giancarlo Succi and Michele Marchesi Extreme Programming Applied: Playing to Win, by Ken Auer and Roy Miller (available 12 October 2001) Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 32 Other Relevant Reading “What is Software Design?,” by Jack W. Reeves http://gosh.exeter.ac.uk/~cs98abh/archive/documents/ what_is_software_design.html Adaptive Software Development: A Collaborative Approach to Managing Complex Systems, by James Highsmith Agile Software Development with SCRUM, by Mike Beedle and Ken Schwaber (available 15 October 2001) DSDM: The Method in Practice, by Jennifer Stapleton Refactoring: Improving the Design of Existing Code, by Martin Fowler Software Craftsmanship: The New Imperative, by Pete McBreen The Deadline, by Tom DeMarco A novel about project management. Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 33 That information again is … Speaker: Glenn Vanderburg Delphi Consultants, LLC [email protected] North Texas XP Interest Group: http://groups.yahoo.com/group/ntxp/ This talk: http://www.delphis.com/Java/Talks/ XProundtable/ Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED 34
© Copyright 2026 Paperzz