Agility in the mobile world: Pair Programming
Do you want to get more hours out of the day? Try pair programming. Pair up two programmers and have them sit side-by-side at a single workstation to write code together. One programmer writes while the other reviews the code as it is written. At the core of this Pair Programming software development approach is the code review. The idea behind Pair Programming is that the speed and quality of the code produced will be much better than code written in isolation. Pair programming is often associated with Agile software development because the approach takes collaboration to the extreme. It is a highly collaborative approach to coding that exploits the benefits of “another set of eyes.”
Making key design decisions collaboratively helps teams avoid the bad decisions made in isolation (especially when there is no one around to validate choices). Pair Programming yields a more sound design with fewer defects. Mistakes are caught very early on. But perhaps the most valuable benefit of pairing up is shared knowledge. When code is shared and reviewed, team members gain valuable insight into how it works and the knowledge required to maintain it. Sharing this knowledge significantly reduces the possibility of scheduling bottlenecks. These types of scheduling challenges are often seen with teams comprised of specialists who have to spend time learning about what others are doing. With the Pair Programming model, several team members know the code and can share the load of bug fixes and code changes to get work done more quickly.
It may seem counter-intuitive. How can two people writing the same code be quicker than dividing up the work between them? It is important to understand that Pair Programming is not cheaper than a divide-and-conquer approach. There is more initial effort invested, but the return is seen in shorter schedules because less time is spent fixing problems. The code review itself ultimately helps reduce the number of defects and results in more resilient design decisions. In the end, code reviews save time that may otherwise be spent learning, debugging, and refactoring code.
For many teams, Pair Programming may not be the most practical approach due to cost or team-member location. Best to extract a maximum value from practice without incurring all the associated costs. The real value of Pair Programming practice is the code review. Code reviews are most effective when the writer and reviewer complete them together. But writer and reviewer do not need to be together for the entirety of the project. Instead, they can meet for short periods to conduct the review, then spend the rest of their day writing code. With this alternative approach to true Pair Programming, teams can still derive the benefit of improved quality through a code review while also realizing the efficiencies of dividing up the work. In fact, the programmers can work different shifts or in different time zones so long as there is a period of overlap between their days to review each other’s code.
Try pairing up two programmers on different shifts and give them a user story or requirement to develop together. Try an East coast and West coast pair or an on-shore and off-shore pair. Require them to meet daily to review code during a short period of time that overlaps both shifts. Take this approach to the extreme and add a third shift. Form a team comprised of programmers in three successive shifts that work round the clock. Require each shift to meet with the next for one-hour transition meeting. In that hour each programmer should review their changes with the next programmer—who will continue the work through the next shift. They should agree on a plan for next steps to complete the work and then pass the baton. With this approach, you can get the maximum hours out of each day and ultimately speed up your schedule.
Pair Programming is an option for those Agile teams who want to squeeze more hours out of every day. Even a small investment of additional resources into a Pair Programming approach may result in a lower rate of defects, a higher quality product, even a quicker time to market.
If you’re looking for serious mobile strategy or development help, please check out our Kickstarter offerings and give us a call. Propelics drives real business results with Mobile Strategies and premier Apps for Enterprise clients worldwide.