Tuesday, May 3, 2011

Extreme Programming Installed Ch 10-12

Reference Information:
Title: Extreme Programming Installed
Author: Ron Jeffries, Ann Anderson, Chet Hendrickson
Editor: Addison-Wesley Professional, October 2000

Summary:
Chapter 10- Quick Design Session
This chapter explains why the design phase is vital in the product development cycle. Once you have the stories and the list of the tasks that need to be implemented, it's important to plan the design of the tasks before moving on to the implementation (programming) phase. Even though the design phase is important, one should not spend too much time designing the task since that puts pressure on the implementation phase. A few minutes should be spent in brainstorming the design ideas. Once you are done sketching the designs, pick the simplest one that can be implemented in least amount of time and move on to the next phase, which is - programming.

Chapter 11 - Programming

Main points:
  • Program in pairs
  • Test and commit
  • Collective ownership
  • Keep it simple
  • Refractoring
  • Continuous Integrate
  • Use a coding standard
Programming in general is significantly different from programming followed in the XP methodology. Programming is paired, each pair works on a single task (explained in detail in the next chapter). Once the task is complete, the code is tested and then it's committed to the repository. The ownership rights for the code are collectively owned by the team of developers and quick changes can be made in the code by anyone as and when required. Also, the code has to be simple to understand since other people would be working on features that depend on your implementation. Refractoring helps in improving the overall structure of the code while preserving the functionality. Using a coding standard is vital to maintain the uniformity of the code.

Chapter 12 - Pair Programming
In extreme programming methodology, all the code is written in pairs. A team of two programmers work on a single task at a time. Both programmers share equal responsibility when it comes to writing code. Programming in pairs can expedite the process since one person's errors can be caught by the other.


Discussion:
This book is a collection of great ideas put together. Not that these ideas are unheard of, but what extreme programming essentially does is that it incorporates all the ideas that have been proved to be successful in the past into one development model. Using a coding standard, continuous integration, paired programming and collective ownership are excellent ideas. One of the students in the class mentioned that collective programming can have potential limitations. For example, consider a situation where someone misinterprets your code and modifies it, breaking the code. However, the code can be reverted to the earlier revision, so this should not be an issue.

No comments:

Post a Comment