Project Management

Please login or join to subscribe to this thread

Pair Programming

linkedin twitter facebook  
avatar
SHADAV MOHAMMAD ANSARI PMO| ITC INFOTECH INDIA PVT. Ltd. New Delhi, Delhi, India
Why Pair Programming Is The Best Development Practice?
Sort By:
avatar
Sergio Luis Conte Helping to create solutions for everyone| Worldwide based Organizations Buenos Aires, Argentina
Why do affirm it? First, "best" is a subjective matter that you must transform into objective ones. Each practice you introduce into your organization will impact the organization as a whole then after introduce a practice you have to perform an impact analysis. In my case we use Tom Peter´s Seven S model to do that (this is my paper published by the PMI and the IIBA as best practice: https://www.projectmanagement.com/blog-pos...ight-solution). What you use is part of the solution you are creating. So, if your structure, skills, culture does not match the practice then you have to decide to use it or to make adjustments. For example, we use XP into a highly distributed virtual team then we had to adjust pair programming practice.
avatar
Sante Delle-Vergini, PhD Senior Project Manager| Infosys Melbourne, Victoria, Australia
It's not the best or the worst. its just a practice to allow two developers to work side by side and swap from the coder to the checker, both improving each other as a team, or rather improve the coding. It could be seen as a form of checks and balances.
avatar
Kiron Bondale Retired | Mentor| Retired Welland, Ontario, Canada
Shadav -

As Sante indicates, Pair Programming or any other type of non-solo work (e.g. Mob Programming) is a good practice but may not be suitable in all contexts.

The benefits of non-solo work include:

- Potentially higher quality
- Potentially faster delivery time
- Potential cross-training and broadening of skills within a team

However, there is likely an increase in short-term costs and it might be difficult to justify this to decision makers who don't appreciate the benefits.

Kiron
avatar
Najam Mumtaz Retired Lahore, Punjab, Pakistan
Pair programming is one of the software development practice. And like Kiron and Sante mentioned it has its benefits as well as constraints.
Alistair Cockburn & Laurie Williams has written a useful article on Cost & Benefits of pair programming, here is the link:

https://www.researchgate.net/publication/2...air_Programming
avatar
Frances Kerr Associate Program Manager| PreSonus Audio Electronics Baton Rouge, La, United States
I'm not sure about the Best Development Practice, but I found a few benefits listed online:

- increased code quality: "programming out loud" leads to clearer articulation of the complexities and hidden details in coding tasks, reducing the risk of error or going down blind alleys
- better diffusion of knowledge among the team, in particular when a developer unfamiliar with a component is pairing with one who knows it much better
- better transfer of skills, as junior developers pick up micro-techniques or broader skills from more experienced team members
- large reduction in coordination efforts, since there are N/2 pairs to coordinate instead of N individual developers
- improved resiliency of a pair to interruptions, compared to an individual developer: when one member of the pair must attend to an external prompt, the other can remains focused on the task and can assist in regaining focus afterwards

Source:
https://www.agilealliance.org/glossary/pai...on~'asc~page~1)
...
2 replies by Rami Kaibni and SHADAV MOHAMMAD ANSARI
Dec 18, 2017 11:45 AM
Rami Kaibni
...
Interesting Frances !
Dec 18, 2017 11:46 PM
SHADAV MOHAMMAD ANSARI
...
Thanks Frances .
avatar
Jaleel . PMP, Associate Director| MetricStream Bangalore, India
Best development practice, is the one that gives the expected results keeping in view the quality, schedule, cost as well as continuous improvement as a team and also as an individual. Continuous improvement could be in terms of team work, learning from each other etc.
With respect to pair programming, yes, it definitely has the advantages but can get those, only when the individuals/developers involved clearly understand it. Other wise it would result in conflicts which is not desired. Overall good to have with advantages it gives but need to evaluate and execute with care.
...
1 reply by SHADAV MOHAMMAD ANSARI
Dec 18, 2017 11:47 PM
SHADAV MOHAMMAD ANSARI
...
Good Points..Thanks.
avatar
Rami Kaibni
Community Champion
Senior Projects Manager | Field & Marten Associates New Westminster, British Columbia, Canada
Dec 18, 2017 9:56 AM
Replying to Frances Kerr
...
I'm not sure about the Best Development Practice, but I found a few benefits listed online:

- increased code quality: "programming out loud" leads to clearer articulation of the complexities and hidden details in coding tasks, reducing the risk of error or going down blind alleys
- better diffusion of knowledge among the team, in particular when a developer unfamiliar with a component is pairing with one who knows it much better
- better transfer of skills, as junior developers pick up micro-techniques or broader skills from more experienced team members
- large reduction in coordination efforts, since there are N/2 pairs to coordinate instead of N individual developers
- improved resiliency of a pair to interruptions, compared to an individual developer: when one member of the pair must attend to an external prompt, the other can remains focused on the task and can assist in regaining focus afterwards

Source:
https://www.agilealliance.org/glossary/pai...on~'asc~page~1)
Interesting Frances !
avatar
Stéphane Parent Self Employed / Semi-retired| Leader Maker Prince Edward Island, Canada
I'm sure paired programming can be beneficial in appropriate environments. As for us, we find we get more mileage from having one developer do functional coding while another developer codes the associated unit tests.
avatar
SHADAV MOHAMMAD ANSARI PMO| ITC INFOTECH INDIA PVT. Ltd. New Delhi, Delhi, India
Dec 18, 2017 9:56 AM
Replying to Frances Kerr
...
I'm not sure about the Best Development Practice, but I found a few benefits listed online:

- increased code quality: "programming out loud" leads to clearer articulation of the complexities and hidden details in coding tasks, reducing the risk of error or going down blind alleys
- better diffusion of knowledge among the team, in particular when a developer unfamiliar with a component is pairing with one who knows it much better
- better transfer of skills, as junior developers pick up micro-techniques or broader skills from more experienced team members
- large reduction in coordination efforts, since there are N/2 pairs to coordinate instead of N individual developers
- improved resiliency of a pair to interruptions, compared to an individual developer: when one member of the pair must attend to an external prompt, the other can remains focused on the task and can assist in regaining focus afterwards

Source:
https://www.agilealliance.org/glossary/pai...on~'asc~page~1)
Thanks Frances .
avatar
SHADAV MOHAMMAD ANSARI PMO| ITC INFOTECH INDIA PVT. Ltd. New Delhi, Delhi, India
Dec 18, 2017 11:07 AM
Replying to Jaleel .
...
Best development practice, is the one that gives the expected results keeping in view the quality, schedule, cost as well as continuous improvement as a team and also as an individual. Continuous improvement could be in terms of team work, learning from each other etc.
With respect to pair programming, yes, it definitely has the advantages but can get those, only when the individuals/developers involved clearly understand it. Other wise it would result in conflicts which is not desired. Overall good to have with advantages it gives but need to evaluate and execute with care.
Good Points..Thanks.

Please login or join to reply

Content ID:
ADVERTISEMENTS

Conformity's an obsession with me.

- George Costanza

ADVERTISEMENT

Sponsors