Extreme Programming – How Does it Work?
Extreme programming is a software development method that performs in the following way:
1. Code is always reviewed by pair programmers.
2. Tests are made all the time.
3. Integration tests are made before and after adding new modules.
4. Code is redesigned to leave it in the simplest possible state.
5. Iterations are radically shorter.
Also called Pair Programming, it places one programmer in the driver’s seat in control of the keyboard, while the other programmer is an observer checking syntax, spelling, and strategy. This allows one programmer to write the code while the other can aid in brainstorming.
Pair programming believes that two pairs of eyes looking at code are better than one. This article brings Murphy’s Law to the code review and states that two pairs of eyes are better than one if they are don’t suffer from groupthink – sharing the same illusion.
In looking at some case studies pair programming is not as easy to implement as one would think. Programmers vary in how fast they code and type and how they use the keyboard (e.g. shortcuts). On the upside, the weakness of one can be offset by the strength of another. In the example in the link above, the team finished a 5 day project in only 2 days. Also, each learned new techniques and tools through the process.
Getting started with Pair Programming varies from one group to another. This article draws an analogy to learning how to swim. There are those who dip their toes into the water and slowly make their way in, while others commit wholeheartedly similar to performing a cannonball into the swimming pool.
For those who want to read more about Extreme Programming, this blog recommends the Extreme Programming Adventures in C# which describes in diarist format one programmers exploration of a new programming language. It does not provide perfect programming examples, but rather gives an insightful view into how one learns new languages.
If you are working with new programming methodologies, I would like to hear from you. Please email me at email@example.com.
Hall T. Martin