Pair programming is no new topic and has been widely used in the industry. At first, it might seem like it’s waste of time because two coders work in the same station. However, it provides values like team building and less defective code.
Although code reviews provide a degree of control in written code piece, a second person makes sure hopefully nothing is gone off the road. The practice is to have pair review the code while coder writes it. Thus, code doesn’t need further code review. So, that’s what I and heard others call shoulder ship it.
I believe having a second eye is important in some cases. Nevertheless, I don’t see much value having pair constantly because some(min. half) part of software would be trivial. I’ll list cases which I think should ship its can take place.
- Somebody New. S/he can learn existing stuff and bring completely new perspective.
- Critical Production Bug. It might be necessary to do a quick fix. In this case, second eye is very important. Although acting rapidly on these cases is important, you become more vulnerable because of stress. So having a pair would decrease possible mistakes.
- Vital Components. Some components are more important than other. Whenever you feel like you are dealing with heart of your application, support from your colleagues might be indispensable. By pair programming, you offload some heavy lifting to your pair so that you don’t get drowned.
There might be other examples but these are the most common scenarios I’ve encountered. Happy shoulder ship its!