Pair programming is an agile software development technique in which two programmers work together at one work station. One types in code while the other reviews each line of code as it is typed in. The person typing is called the driver. The person reviewing the code is called the observer (or navigator). The two programmers switch roles frequently.
This is the definition of Pair programming which I for a long time called it Peer programming. To me Peer programming make more sense. I think the pair programming is mainly beneficial in specific situations such as bug fixing and new hire orientations. They learn a lot while watching someone else working and the bug fixes can go smoother while people from the same background works on a bug.
Nice, there are even remote pair programming. Imagine you can program with someone else on a different location, how does that sound ? Don’t you like that ? how about distributed pair programming ?
Jeff Atwood, at coding horror, agrees that pair programming is one of the best ways to catch bugs vs. code reviews. In code reviews people usually don’t spend much time to get to know the code but only to accomplish a task assigned to them which is code reviewing. The code might never has to do anything with them, so why they should spend time reading it ?
Agile Unified Process
Agile Unified Process (AUP) is a simplified version of the IBM Rational Unified Process (RUP). It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. The AUP applies agile techniques including test driven development (TDD), Agile Modeling, agile change management, and database refactoring to improve productivity.
Enterprise Unified Process
The Enterprise Unified Process (EUP) is an extended variant of the Rational Unified Process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone and Michael Vizdos.
EUP was introduced to overcome some shortages of RUP, namely the lack of system support and eventual retirement of a software system. So two phases and several new disciplines were added to the RUP.