Engineers at Star Trek would understand Pair Programming very well
Why pair programming works or how to explain pair programming to your manager.
Scotty without a doubt would understand pair programming
Computers in the future
According to the Star Trek movie series, a few hundred years in the future, computers are a lot smarter. You can speak to them. It is funny that we do not have to wait until then. We already in 21 century can have complex computers which understand natural language. Siri already does that. Cars also are equipped with computers which can understand basic commands. However, voice commands have not yet proven helpful in every profession and industry. Software development hasn’t really seen its benefit.
How would you use a Star Trek computer to write code?
Imagine we had a computer from the movie in front of us and we wanted to design and implement a piece of software using that. Let’s also imagine it could well understand and execute advanced software engineering concepts. For example, how to follow a specific pattern, implement a UI component, refactor, or write some unit tests. You could say “OK computer, please write a class for this component I think specification pattern would be nice here” or “please write a test which covers this scenario” or “please refactor this function which is too long to a few smaller ones”. You could see how amazing would that be. You can focus on the main and most important parts of software engineering without doing all of the details yourself. Your mind can focus on the bigger picture, software architecture, overall functionality, and test scenarios. Another way to say that is you could focus on the quality and the best ways of solving a problem without dealing with all of the details.
Pair programming is today’s Star Trek computer
If you have ever done pair programming before, the commands in the previous section should look familiar. That is how you do or should do pair programming. So, in essence, the most important reason why pair programming can improve software quality is that you can focus on the most important concerns without having to deal with distracting details. Exactly as you would sit in front of a super-smart software engineering computer.
Another analogy
Another analogy that helps here is a car rally. In those types of racing the road is bumpy, there are curves after curves and maybe trees on the side of the road, additionally, you have to drive fast because it is a race. The way rally racers solve this problem is to use pair programming. There are a driver and a navigator in the car. Following the same logic, in developing software, when the task is complex and involves software design or refactoring, pair programming would shine.
Final note
Obviously, in the real world, pair programming is different from car racing or talking to a computer. There are lots of other factors you’ll have to take into account including, non-technical stakeholders, personal preferences, conflicts, and many more. To see a comprehensive article about these aspects have a read here.