The Source for Java Technology Collaboration
User: Password:



Curtis Cooley's Blog

Principles of Extreme Programming

Posted by thedarksavant on November 07, 2003 at 08:58 AM | Comments (3)

Most debates about XP revolve around a certain practice. Pair programming gets the most abuse, but many others take heat as well. It's time we transcended the practices and starting talking about the principles. But what are they?

Womack and Jones opened my eyes in Lean Thinking to the fact that practices don't map from project to project. They discovered after their landmark book The Machine That Changed The World that manufacturing companies were having little or no success implementing Lean Manufacturing even though the company embraced and believed it. The problem was that the companies were trying to map the practices that Toyota used to their particular manufacturing process. This doesn't work. The principles of lean manufacturing are constant, so you take the principles and adopt your own practices, possibly from a list which includes practices known to work.

We've all heard the story of the development team that adopted XP and failed. Then they tell us that XP doesn't work. The stock response usually is "Tell me about how you implemented the practices and we'll try to discover what went wrong." That doesn't usually work either. What went wrong was that the team tried to map the practices to their team. I've done this and it has worked brilliantly. I've done this and it has failed miserably. When it didn't work it was very frustrating because I believed that the practices should work all the time for every team in every situation. Today I know better.

Kent Beck and Ron Jefferies have both said many times that to get the most out of XP you need to do all the practices all the time because they support each other. I do not recall either of them ever saying that you must do all the practices all the time to succeed, but doing all the practices all the time gives you the best chance for success. They suggest you do all the practices all the time then fix XP when it breaks or in other words, change the things that are not working. I've done this as well and it has worked, but I've had the most difficulty getting all the practices to happen all together all the time. when this happened I'd get frustrated and push back. Of course, the harder I'd push, the harder the team would push back until it fragmented into a worthless group of individual developers or coalesced into a team willing to do the practices they believed provided the most value. In the latter cases we successfully built software at great speeds. In the former cases we failed.

I propose a different approach to bringing XP to an organization. I propose we offer the principles of lean software development put forth by Mary Poppendieck and Tom Poppendieck.

  • Eliminate waste.
  • Amplify learning.
  • Decide as late as possible.
  • Deliver as fast as possible.
  • Empower the team.
  • Build integrity in.
  • See the whole

Find out which of the above principles the team and company find the most value in then suggest the XP practice that enables adherence to the principle. For example, if the team decides that if they do nothing else, they must build integrity in, then introduce them to test driven development, continuous code improvement, onsite customer, simplicity, and perhaps even metaphor. But the beauty of this approach is that you can ask the team to decide how to enable the principles. When it's their vision on how to make sure that the product has built in integrity, then you get more buy in to the process. Chances may be that they come up with the same practices that XP would have, but since it is their idea, they are more willing to do it. And they may even come up with better practices that no one ever thought of before. Then you can write a book and become rich and famous.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first)

  • Do we yet another list of values, principles, or best practices?
    XP as an agile development methodology supports the agile manifesto…
    1. Individuals and interactions over processes and tools
    2. Working software over comprehensive documentation
    3. Customer collaboration over contract negotiation
    4. Responding to change over following a plan

    Then at http://www.extremeprogramming.org/rules.html we have 28 “rules” that must be followed. There are too many to list here.

    According to Rick Hightower (http://www.rickhightower.com/xpj2ee_jdjedge/text5.html) there are 5 principles to XP:
    1. Provide rapid feedback.
    2. Assume simplicity.
    3. Make incremental changes.
    4. Embrace change.
    5. Do quality work.

    There are 4 values of XP:
    1. communication
    2. simplicity
    3. feedback
    4. courage

    Object mentor tells us that XP is a set of “best practices”
    1. customer team member
    2. planning game
    3. user story
    4. small release
    5. acceptance testing
    6. open workspace
    7. test driven design
    8. metaphor
    9. simple design
    10. refactoring
    11. continuous integration

    Ron Jeffries tells us that there are 13 “core practices”
    1. whole team
    2. planning game
    3. small release
    4. customer tests
    5. simple design
    6. pair programming
    7. test-driven development
    8. design improvement
    9. continuous integration
    10. collective ownership
    11. coding standard
    12. metaphor
    13. sustainable pace

    It seems like there are enough lists already. Do we need more, or is writing your own list of values, principles, or best practices an initiation right of joining the XP community? Consider for example the value of simplicity. Do all these lists reflect that value?

    Taylor Cowan

    Posted by: tcowan on November 10, 2003 at 07:58 AM

  • wow power leveling
    wow powerleveling
    wow power leveling
    wow gold
    wow items
    feelingame.com
    wow tips
    Most Valuable WOW Power Leveling Service
    wow power leveling faq
    cheap wow power leveling
    wow power leveling
    wow powerleveling
    wow power lvl

    Posted by: wowleveling3 on December 13, 2007 at 07:00 PM

  • 网络è¥é”€è½¯ä»¶
    网络è¥é”€è½¯ä»¶
    群å‘软件
    网络è¥é”€è½¯ä»¶
    群å‘软件
    群å‘软件
    ---
    群å‘软件
    网络è¥é”€è½¯ä»¶
    论å›ç¾¤å‘软件
    网站排å软件
    群å‘软件
    推广å°åŠ©æ‰‹ç ´è§£ç‰ˆ
    论å›ç¾¤å‘软件
    网站排å软件
    群å‘软件
    推è给你很好的群å‘软件和信æ¯ç¾¤å‘软件和供求群å‘软件
    推è给你很好的群å‘软件和信æ¯ç¾¤å‘软件和供求群å‘软件åšå®¢ç¾¤å‘软件网络è¥é”€è½¯ä»¶ç½‘络è¥é”€è½¯ä»¶
    网站排å软件网站排å软件网站优化软件信æ¯ç¾¤å‘软件信æ¯ç¾¤å‘软件信æ¯ç¾¤å‘软件论å›ç¾¤å‘软件网站推广软件网站推广软件åšå®¢ç¾¤å‘软件åšå®¢ç¾¤å‘软件

    群å‘软件群å‘软件åšå®¢ç¾¤å‘软件论å›ç¾¤å‘软件网络è¥é”€è½¯ä»¶è®ºå›ç¾¤å‘软件
    ä¿¡æ¯ç¾¤å‘软件推广软件网站推广软件网络è¥é”€è½¯ä»¶ç½‘站推广软件群å‘软件网站排å软件网站推广软件åšå®¢ç¾¤å‘软件论å›ç¾¤å‘软件群å‘软件网站排å软件网站推广软件åšå®¢ç¾¤å‘软件论å›ç¾¤å‘软件
    网站排å软件
    åšå®¢ç¾¤å‘软件
    网站排å软件
    网站推广软件
    群å‘软件信æ¯ç¾¤å‘软件
    å…费论å›ç¾¤å‘软件
    论å›ç¾¤å‘软件
    网站排å软件
    å…è´¹åšå®¢ç¾¤å‘软件
    网站推广软件

    群å‘软件
    åšå®¢ç¾¤å‘软件
    网站排å软件
    网站推广软件
    群å‘软件信æ¯ç¾¤å‘软件
    å…费论å›ç¾¤å‘软件
    论å›ç¾¤å‘软件
    网站排å软件
    å…è´¹åšå®¢ç¾¤å‘软件
    åšå®¢ç¾¤å‘软件
    ä¿¡æ¯ç¾¤å‘软件
    论å›ç¾¤å‘软件
    ä¿¡æ¯ç¾¤å‘软件
    åšå®¢ç¾¤å‘软件
    qq群å‘软件
    邮件群å‘软件
    åšå®¢ç¾¤å»ºè½¯ä»¶
    ä¼ä¸šå录æœç´¢è½¯ä»¶
    ä¿¡æ¯ç¾¤å‘软件
    邮件群å‘软件
    论å›ç¾¤å‘软件
    åšå®¢ç¾¤å‘软件
    网站推广软件
    网络è¥é”€è½¯ä»¶
    全能è¥é”€ç ´è§£ç‰ˆ
    网络è¥é”€è½¯ä»¶
    论å›ç¾¤å‘软件
    论å›ç¾¤å‘软件
    论å›ç¾¤å‘软件
    网络è¥é”€è½¯ä»¶
    ä¿¡æ¯ç¾¤å‘软件
    ä¿¡æ¯ç¾¤å‘软件
    ä¿¡æ¯ç¾¤å‘软件
    群å‘软件
    论å›ç¾¤å‘软件
    网络è¥é”€è½¯ä»¶
    网络è¥é”€è½¯ä»¶
    网络è¥é”€è½¯ä»¶
    群å‘软件
    群å‘软件
    ---网络è¥é”€è½¯ä»¶
    网站推广软件

    Posted by: info0089099 on December 25, 2007 at 04:33 PM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds