This is the 64th Step towards gaining the Programming Enlightenment series. If you didn’t learn the 63rd Step, read it.
Pair programming is not a “go faster” strategy, it is a “waste less” strategy (which often results in going faster) . ~ Kent Beck
What is Pair Programming?
Also, know as Pairing. It is an agile software development technique in which two programmers work together at one workstation.
Why do Pair Programming?
- It is a team building social skill which will get the work done while building cooperation within the team.
- It increases software quality without impacting time to deliver.
- Even though 2 people working might mean less work done, instead it will add as much functionality with higher quality.
- Helps new team-mate to speed up through the on-boarding process.
- Helps Junior developer to sharpen their skill, while Senior developer can learn by sharing the knowledge.
How to do Pair Programming?
Do pair programming by following Ping-Pong programming.
- One, the driver, writes code.
- While the other, the observer or navigator, reviews each line of code as it is typed in.
- The two programmers switch roles frequently.
- In addition, each member performs the action the other is not currently doing: While one types in UnitTests the other thinks about the class that will satisfy the test.
Common Misconceptions in Pair Programming
- You have to do pair programming if you’re doing an agile process.
- Extreme programming forces you to do Pair-Programming.
- I don’t need to try pairing because I know I won’t like it.
- Pair-programming halves the productivity of developers.
- It’s only worth pairing on complex code, rote code yields no advantage.
Go to 63rd Step
Go to the 65th Step.
References:
- 97 things Every Programmer Should Know ~ Git Book
- 97 Things Every Programmer Should Know ~ Paperback
- Pair Programming ~ ExtremeProgramming
- Pair Programming ~ AgileAlliance
- Pair Programming Misconception ~ Martin Fowler
- Pair Programming Guides ~ Medium
- Pair Programming ~ wiki.c2
- Pair Programming Ping Pong Pattern ~ wiki.c2