Even programmers can be whole people in the real world. XP is an opportunity to test yourself, to be yourself, to realize that maybe you've been fine all along and just hanging with the wrong crowd.

This quote comes from the Note to Programmers at the beginning of Extreme Programming Explained, by Kent Beck and Cynthia Andres. I consider myself very lucky to have found a workplace that follows XP. While I was in school I didn't know what I wanted to do with my degree because the stereotypical lonely programming life did not appeal to me. Had I known there was such a thing as XP, I would have been much more optimistic about pursuing a career as a programmer. I've recently been reading through Extreme Programming Explained and have taken notes in an attempt to absorb as much of it as possible. I thought I would post them here for those who haven't gotten the chance to read it. Here's a very brief overview of the overview. :)

What is XP?
  • Giving up old habits for new ones that work.
  • Appreciating yourself for total effort today.
  • Striving to do better tomorrow.
  • Evaluating yourself through contributions to team goals.
  • Getting your needs met through software development.
Paradigm for XP
  • "Stay aware. Adapt. Change."
  • "Make frequent, small corrections."
  • "You don't have to wait a long time to find out if you were going the wrong way."

After the basic overview of XP, the author gets into talking about values, principles, and practices. For now, I will only cover values, which are the first to be explained.

We all have personal values that shape our everyday lives; they are the roots of the things we like and dislike, and are "the large-scale criteria we use to judge what we see, think, and do." XP incorporates five core values that that focus on what is important to the team. They are outlined below.

Communication
  • Helps solve problems.
  • Motion without communication is not progress.
  • Creates a sense of team and cooperation.
Simplicity
  • Ask yourself, "What is the simplest thing that will work?"
  • Eliminate wasted complexity.
Feedback
  • Change is inevitable, and change creates the need for feedback.
  • Be satisfied with improvement rather than expecting instant perfection.
  • Shorten the feedback loop; it will allow you to adapt sooner.
Courage
  • Definition: Effective action in the face of fear.
  • If you know what the problem is, do something! If you don't know, ask!
  • Doing something without regard for consequence is not effective teamwork.
  • We must have the courage to adhere to the other values.
Respect
  • XP won't work if the team members don't care about the project and each other.
  • Everyone is important!

Next stop: principles that guide XP and practices to use in order to live XP. Stay tuned.

1 Comment on “Extreme Programming: Part 1”

Leon Says:

Nice and simple XP Primer. I'm not quite as fortunate to have found an XP shop yet... but I'm doing my best to convert them! Can't wait for the next in the series, keep em coming! :)

October 4th, 2007

Sorry, comments are closed for this article.

Lindsay Ucci (aka Ooochie!)

Lindsay Ucci

Ruby/Rails developer and wannabe pastry chef. :)

Welcome to ooochie.com! I'm Lindsay Ucci, and I'm a web developer in Boston, MA. If you're in the area, please get in touch!

Design by Dan Ritz, FeedBot by Matt Forsythe, and Powered by Mephisto