Presentation is loading. Please wait.

Presentation is loading. Please wait.

Extreme Programming and Agile Processes Glenn Vanderburg Delphi Consultants, LLC Overview and Background.

Similar presentations


Presentation on theme: "Extreme Programming and Agile Processes Glenn Vanderburg Delphi Consultants, LLC Overview and Background."— Presentation transcript:

1 Extreme Programming and Agile Processes Glenn Vanderburg Delphi Consultants, LLC Overview and Background

2 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED2 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.

3 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED3 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.

4 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED4 Rapid, fine feedback:  Test-driven design (via unit and acceptance tests)  On-site customer  Pair programming The Core XP Practices Shared Understanding:  Planning game  Simple Design  System Metaphor  Collective Code Ownership  Coding Conventions Continuous process:  Continuous integration  Merciless refactoring  Small, frequent releases Developer Welfare:  Forty-hour week

5 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED5 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.

6 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED6 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

7 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED7 The Most Common Objections 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.  That can’t work!  Everyone knows you can’t build software that way!

8 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED8 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

9 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED9 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.

10 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED10 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

11 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED11 XP and Software Engineering: Where Software Engineering Went Wrong

12 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED12 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.

13 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED13 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.

14 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED14 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.

15 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED15 What I don’t (necessarily) mean by Software Engineering  Waterfall lifecycle  The SE mainstream has embraced iterative and incremental development to some degree.

16 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED16 Software Engineering Blunder #1  Avoiding costly situations rather than optimizing.  Measures used for avoidance cost more than the original problem points.

17 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED17 Cost of Errors Increases Through a Project’s Lifetime Project Phase Cost of Errors

18 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED18 The Software Engineering Solution Try to push changes as far toward the start of the process as possible: Project Phase Cost of Errors

19 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED19 Secondary Effects The measures used increase the cost of everything: Project Phase Cost of Errors

20 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED20 Budget Pressures Resist … The budget pushes these costs back down through limits on manpower: Project Phase Cost of Errors

21 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED21 Budget Pressures Resist … Project Phase Cost of Errors The budget pushes these costs back down through limits on manpower:

22 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED22 Budget Pressures Resist … Project Phase Cost of Errors The budget pushes these costs back down through limits on manpower, which just pushes the schedule out.

23 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED23 The XP Answer  Find ways to make change cheaper  Find inexpensive ways of avoiding errors  Reduce overall cost of development

24 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED24 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.

25 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED25 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.

26 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED26 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.

27 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED27 The XP Answer  Coding is the detailed (not the only) design activity.  Manufacturing  the compilation and build process.  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! (Cheap!)

28 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED28 The Agile Process Movement

29 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED29 Other Agile Processes  The Crystal Methodology Family: crystalmethodologies.org  Scrum:  Adaptive Software Development:  DSDM (Dynamic System Development Method):

30 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED30 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.

31 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED31 Essential Reading  The Agile Manifesto   Agile Software Development, by Alistair Cockburn  Available 21 December 2001  Draft available at  “No Silver Bullet: Essence and Accident in Software Design,” by Fred Brooks  Reprinted in the 20th Anniversary Edition of The Mythical Man Month  BrooksNoSilverBullet.html  The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas

32 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED32 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)

33 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED33 Other Relevant Reading  “What is Software Design?,” by Jack W. Reeves  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.

34 Copyright © 2001 Delphi Consultants, LLC. ALL RIGHTS RESERVED34 That information again is …  Speaker: Glenn Vanderburg Delphi Consultants, LLC  North Texas XP Interest Group:  This talk: XProundtable/


Download ppt "Extreme Programming and Agile Processes Glenn Vanderburg Delphi Consultants, LLC Overview and Background."

Similar presentations


Ads by Google