Extreme Programming Explained: 2nd ed – Part 1

The first edition of Extreme Programming Explained had too much emphasis on practices and none on principles. Values were mentioned, but it was like talking about the CEO and the assembly line workers in a company with no mention of middle management. Thankfully Kent Beck has rectified that situation in Extreme Programming Explained: Embrace Change 2nd ed.


First up are the values. Values are the root determinants of your behavior. There is always a root value underlying your actions when developing software. For example, say a developer decides that a UI bug is not important even though the customers clearly think it is and say so. His action may represent an underlying value that he doesn’t respect non-technical people.


XP’s values are communication, simplicity, feedback, courage, and respect. Astute readers will notice that this is one more than in the previous edition. These values are behind the commonly-known XP practices (pair programming, test-driven development, etc.). But values don’t map directory to practices; there is an intermediary step called principles. Extensive software requirement documents are intended to communicate, but so are face-to-face meetings. They both represent the value of communication, but your domain-specific principles will determine which one you prefer.


The “new” XP has fourteen principles:



  • Humanity – software is written by people, XP takes it into account

  • Economics – “business” pays for software, so let’s make sure to deliver business value

  • Mutual benefit – don’t choose solutions that may work for you but really transfer the burden to someone else

  • Self-similarity – I don’t know where Kent Beck was going with this one, but it sounds a lot like patterns (not just design patterns, all types of patterns)

  • Improvement – start now and constantly improve rather than trying to design the perfect solution “all at once”

  • Diversity – encouraging healthy conflict improves software development

  • Reflection – analyze why things work and don’t work, do retrospectives frequently

  • Flow – like the Theory of Constraints shows us, small batch sizes (iterations) are good

  • Opportunity – continuous personal growth, or a high rate of L

  • Redundancy – make sure several practices address a problem, like a defense-in-depth technique against software development problems

  • Failure – if at first you can’t succeed, fail a couple times first, then you’ll figure it out

  • Quality – basically projects don’t go slower by keeping quality high, they end up going faster

  • Baby steps – incremental change is more likely to work than big-bang changes

  • Accepted responsibility – business people may own the schedule, but programmers own their estimates

Somewhere at the intersection of the values and principles you’ll find each of the XP practices, which is where we’ll pick up next time.

This entry was posted in .NET. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

4 Responses to Extreme Programming Explained: 2nd ed – Part 1

  1. Yuval Ararat says:

    well….
    its not some thing you wrote but i think i saw it some where.
    may be i am just delusional and i never saw it.
    it was some sort of a comparison between the pricing diciplin in the common project management and the pricing diciplin in the XP or agile world.
    i thought you might remember some sort of a pricing or budgeting comparison done between the tow methids favoring the XP/Agile methodology.
    thaks
    Yuval Ararat

  2. darrell says:

    Yuval – I don’t recall off the top of my head what you’re looking for, could you describe it a little more to maybe help my memory? Thanks.

  3. Yuval Ararat says:

    i have a question for you. i was trying to find a site that i once saw that measured the benefits of XP in terms of project management in the funding of the project and the savings it presents.

  4. rlewallen says:

    I have this book, but just haven’t had time to get it it yet. I’m finishing up Extreme .Net at the moment, and the 2nd edition from Kent is next on this bookshelf. Sounds like its going to be much better than the first!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>