Why Pair Programming Is The Best Development Practice? Saving Changes...
Sort By:
Sergio Luis ConteHelping to create solutions for everyone| Worldwide based OrganizationsBuenos 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. Saving Changes...
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. Saving Changes...
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.
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:
Frances KerrAssociate Program Manager| PreSonus Audio ElectronicsBaton 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
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 .
Saving Changes...
Jaleel .PMP, Associate Director| MetricStreamBangalore, 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.
Senior Projects Manager | Field & Marten AssociatesNew 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
Stéphane ParentSelf Employed / Semi-retired| Leader MakerPrince 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. Saving Changes...
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
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.