Coté

Coté

why pair programming improves how large organization develop software, a case study

Pair programming has been around since the late nineties and boasts ample research and anecdotal evidence proving its effectiveness. It’s not limited to programming, either; it can also be valuable in roles such as product management. However, despite its benefits, it remains less commonly practiced than one might expect.

Pair Programming in the Department of Defense (DoD)

A great case study for the value of pair programming comes from the Department of Defense (DoD), the U.S.’s collection of military branches. They face challenges typical of large enterprises that can be mitigated by this technique.

Common Challenges Addressed by Pair Programming

One frequent issue within the military, as in many large enterprises, is a skills gap among programmers. There’s often a need to quickly train new arrivals, who typically do not remain in the same positions for long.

Moreover, software is critical for running operations, and there’s a constant need for innovative solutions and rapid software delivery. Also, organizations require high-quality software—free of bugs, well-designed, and easily extendable—to maintain agility and ensure continuous growth. Pair programming offers solutions for these common challenges.

Advantages of Pair Programming

Pair programming provides an environment conducive to continuous learning. By pairing people up, it fosters knowledge exchange. This is particularly effective when pairs are rotated frequently, a practice perfected over 25 years at VMware Tanzu Labs, formerly Pivotal Labs. Rotation exposes team members to a variety of perspectives, ideas, and techniques, while also facilitating relationship building within the team.

This method also helps address the problem of employee churn. Knowledge about the system is disseminated across the team, fostering generalists rather than specialists. As team members come and go, the collective knowledge base remains intact.

Innovation and Quality through Pair Programming

Pair programming supports innovation, thanks to the diversity of ideas brought by different team members. It breaks the silos typically seen in software development teams, promoting a culture of shared responsibility.

Quality assurance is another area where pair programming shines. Techniques like having one person write unit tests before another writes the actual code ensure thorough testing. Different perspectives brought in by pairs often result in novel ways of testing—and breaking—the code.

Enhancing Satisfaction and Scaling Success

The benefits of pair programming extend beyond technical advantages. Many people at VMware Tanzu Labs have reported a deep sense of satisfaction when moving from solo to pair programming. This positive impact on employee satisfaction can greatly aid in retaining and hiring talent.

Large organizations like the military, banks, insurance companies, and manufacturers can find an added advantage: a built-in way to scale and spread change. By moving successful pair programmers to new teams, you can promote trust in new ways of working and effectively spread this positive change throughout the organization.

More…

Over the past decade, I’ve witnessed the benefits of pair programming and the positive impact of rotating team members across different teams while working at VMware Tanzu Labs. It not only improves code quality and encourages innovation but also helps tackle one of the hardest aspects of software development: adopting new practices and scaling them across the organization.

Pair programming is just as applicable to any large organization as it is to the U.S. military. For a more detailed exploration of how the military has leveraged this technique, you can access an extensive write-up linked here. Additionally, my book, Monolithic Transformation, available for free download, delves into how large organizations can improve their software practices and scale those changes to their full extent.

@cote@hachyderm.io, @cote@cote.io, @cote, https://proven.lol/a60da7, @cote@social.lol