Tuesday, November 11, 2008
A(nother) Case for Pair-Programming
The benefits of pair-programming include:
Drawbacks:
Most studies show that a pair is 40 to 80% faster than an individual, which means that two individuals are faster than a pair. However, the resultant code is higher quality in that it has a better design and fewer bugs. It has been extensively documented that the cost and time it takes to fix bugs found by testers or customers is many times larger than the cost of the originally written code, which effectively means that over the whole project life-cycle pair-programming is faster.
Scheduling problems can be solved, but personality conflicts can be a real problem. A good pair programmer leaves his/her ego at the door, is flexible, and most importantly communicates well. One mitigation strategy is to frequently rotate pairs.
- Faster
- Fewer bugs
- Higher quality code (continuous peer review and brainstorming)
- Shared understanding of code-base
- Can learn from partner
- Better design
- Team building
- Higher confidence in code
- Higher satisfaction
Drawbacks:
- Scheduling problems (developer schedules are different)
- Personality conflicts
Most studies show that a pair is 40 to 80% faster than an individual, which means that two individuals are faster than a pair. However, the resultant code is higher quality in that it has a better design and fewer bugs. It has been extensively documented that the cost and time it takes to fix bugs found by testers or customers is many times larger than the cost of the originally written code, which effectively means that over the whole project life-cycle pair-programming is faster.
Scheduling problems can be solved, but personality conflicts can be a real problem. A good pair programmer leaves his/her ego at the door, is flexible, and most importantly communicates well. One mitigation strategy is to frequently rotate pairs.
Labels: Agile, Pair-Programming, Redpoint
Subscribe to Posts [Atom]