Software development practices are in a constant state of rapid change, from the introduction of agile methodologies to the rise of DevOps; from an explosion of tools and languages to the embrace of remote teams spread across a global landscape. One of these changes is a broader adoption of pair programming practices within contemporary software engineering organizations. Formerly done in-person, we’ve especially seen the rise of remote pair programming becoming more commonplace as organizations scale their efforts and share knowledge and best practices.
What is pair programming?
Pair programming is a software development practice in which two people work together on a single project in tandem. While traditionally performed at the same workstation with the two individuals (literally two people sitting next to each other), remote pair programming is rapidly on the rise as well.
There are a number of potential advantages that pair programming can provide a development organization, including accelerated issue mitigation/problem solving and faster detection of coding mistakes as well as fostering a mutual learning environment (e.g. improving onboarding for new members of a team). However there are common objections to implementing pair programming practices:
- Misconceptions that pair programming “doubles costs” since you’re using two people for a single task – it doesn’t, but how can you show that?
- Active engagement in the programming work is critical; if one person is not fully engaged throughout a session, then those intended benefits are nullified.
- Pair programming needs to be a part of the development culture and not forced upon engineers; coordination and communication are key. Poor team fit or poor pairings are generally a recipe for sub-standard outcomes.
Evaluating pair programming efficacy with Jellyfish
Understanding the impact of pair programming, either positively or negatively, on engineering efforts and on developer culture, is of significant importance to organizations who seek to capitalize on the potential synergistic effects of instituting the practice. Measuring this impact allows teams to quickly course correct and iterate on the organizational strategy if need be, as well as better account for the efforts of the team and organization as a whole.
Jellyfish is positioned perfectly as the market leader in the engineering management space to support engineering organizations in measuring, tracking, and validating an implementation of pair programming. The Jellyfish allocation and investment model allows contemporary engineering organizations to address potential disadvantages or misconceptions of their pair programming implementation. By providing the ability to track pair programming use cases within the organization, Jellyfish can effectively circumvent a limitation of Jira in order to give a more accurate representation of where engineers are spending their time.
Introducing Pair Programming to Jellyfish Allocations
Jellyfish already automatically ingests signals from the tools developers use to build and deliver software – tools like Jira, SCMs (various flavors of Git), CI tools, incident response systems – in order to measure resource allocation, deliverable progress, and team performance. The incorporation of pair programming measurement ensures our ingestion model accurately represents developer effort and assures proper data hygiene.
Measuring pair programming in the Jellyfish Engineering Management Platform is as easy as checking a box and selecting the Jira field(s) that Jellyfish needs to monitor for additional contributors to an issue. The flexibility inherent in this method also means that Jellyfish can track more than two contributors assigned to an issue (mob programming), and the feature will also designate when additional contributors are added or removed from the work.
The Jellyfish model will identify the multiple engineers as working on a project together, so instead of picking between the signals based on one Jira task or initiative, the model will now effectively assign the signal coming from that task to them.
We are proud to announce the general availability of pair programming measurement within the Jellyfish platform. If you are interested in learning more about this capability or the Jellyfish platform in general, request a demo today!