skip to main content
The collaborative software process(sm)
Publisher:
  • The University of Utah
ISBN:978-0-599-73356-5
Order Number:AAI9968742
Pages:
186
Bibliometrics
Skip Abstract Section
Abstract

Anecdotal and qualitative evidence from industry indicates that two programmers working side by side at one computer, collaborating on the same design, algorithm, code, or test, perform substantially better than the two working alone. Statistical evidence has shown that programmers perform better when following a defined, repeatable process such as the Personal Software Process SM (PSP SM ). Bringing these two ideas together, the Collaborative Software Process SM (CSP SM ) has been formulated. The CSP is a defined, repeatable process for two programmers working collaboratively. The CSP is an extension of the PSP, and it relies upon the foundation of the PSP.

To validate the effectiveness of CSP, an experiment was run in 1999 with approximately 40 senior Computer Science students at the University of Utah. All students learned both the CSP and the PSP. Two-thirds of the students worked in two-person collaborative teams using the CSP to develop their programming assignments. The other students worked independently using the PSP to develop the same assignments. Additionally, a significant amount of input and confirmation from professional engineers who practice collaborative programming was factored into the research.

The research contributed a defined, repeatable process, the CSP, for collaborative programming pairs. The experiment validated the following quantitative findings about collaborative teams using the CSP: (1) Collaborative pairs spend approximately 15% more time than do individuals on the same task. This additional time, however, is not statistically significant. (2) Collaborative pairs achieve a higher quality level for programming products. Pairs had 15% less defects in their code. The higher quality level is statistically significant. (3) Considering the long-term field support savings of higher quality programming products, collaborative programming is cheaper for an organization than individual programming. (4) Consistently, 95% of collaborative programmers asserted that they enjoy their work more and are more confident in their work than when they program alone.

Additionally, the research resulted in many qualitative findings about collaborative programming. Most notable are the positive effects of increased problem-solving skills, better designs, augmented learning, and improved team building for collaborative pairs. Organizations in which the engineers consistently switch partners also note increased communication, enhanced teamwork, and reduced product risk.

Cited By

  1. Choi K, Deek F and Im I (2009). Pair dynamics in team collaboration, Computers in Human Behavior, 25:4, (844-852), Online publication date: 1-Jul-2009.
  2. Chong J and Hurlbutt T The Social Dynamics of Pair Programming Proceedings of the 29th international conference on Software Engineering, (354-363)
  3. Williams L, Layman L, Slaten K, Berenson S and Seaman C On the Impact of a Collaborative Pedagogy on African American Millennial Students in Software Engineering Proceedings of the 29th international conference on Software Engineering, (677-687)
  4. Arisholm E, Gallis H, Dyba T and I.K. Sjoberg D (2007). Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise, IEEE Transactions on Software Engineering, 33:2, (65-86), Online publication date: 1-Feb-2007.
  5. ACM
    Phongpaibul M and Boehm B An empirical comparison between pair development and software inspection in Thailand Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, (85-94)
  6. Madeyski L Is external code quality correlated with programming experience or feelgood factor? Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering, (65-74)
  7. Madeyski L The impact of pair programming and test-driven development on package dependencies in object-oriented design — an experiment Proceedings of the 7th international conference on Product-Focused Software Process Improvement, (278-289)
  8. Lui K and Chan K Software process fusion Proceedings of the 2006 international conference on Software Process Simulation and Modeling, (115-123)
  9. Williams L (2006). Debunking the Nerd Stereotype with Pair Programming, Computer, 39:5, (83-85), Online publication date: 1-May-2006.
  10. Keefe K, Sheard J and Dick M Adopting XP practices for teaching object oriented programming Proceedings of the 8th Australasian Conference on Computing Education - Volume 52, (91-100)
  11. Nawrocki J, Jasiński M, Olek Ł and Lange B Pair programming vs. side-by-side programming Proceedings of the 12th European conference on Software Process Improvement, (28-38)
  12. Nawrocki J, Olek L, Jasinski M, Paliświat B, Walter B, Pietrzak B and Godek P Balancing agility and discipline with XPrince Proceedings of the Second international conference on Rapid Integration of Software Engineering Techniques, (266-277)
  13. Ally M, Darroch F and Toleman M A framework for understanding the factors influencing pair programming success Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering, (82-91)
  14. ACM
    Hulkko H and Abrahamsson P A multiple case study on the impact of pair programming on product quality Proceedings of the 27th international conference on Software engineering, (495-504)
  15. Bellini E, Canfora G, Cimitile A, Garcia F, Piattini M and Visaggio C The impact of educational background on design knowledge sharing during pair programming Proceedings of the Third Biennial conference on Professional Knowledge Management, (455-465)
  16. ACM
    Canfora G, Cimitile A, Garcia F, Piattini M and Visaggio C Confirming the influence of educational background in pair-design knowledge through experiments Proceedings of the 2005 ACM symposium on Applied computing, (1478-1484)
  17. ACM
    Beck L, Chizhik A and McElroy A Cooperative learning techniques in CS1 Proceedings of the 36th SIGCSE technical symposium on Computer science education, (470-474)
  18. ACM
    Beck L, Chizhik A and McElroy A (2005). Cooperative learning techniques in CS1, ACM SIGCSE Bulletin, 37:1, (470-474), Online publication date: 23-Feb-2005.
  19. ACM
    Hanks B, McDowell C, Draper D and Krnjajic M (2004). Program quality with pair programming in CS1, ACM SIGCSE Bulletin, 36:3, (176-180), Online publication date: 1-Sep-2004.
  20. ACM
    Hanks B, McDowell C, Draper D and Krnjajic M Program quality with pair programming in CS1 Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education, (176-180)
  21. ACM
    Gehringer E A pair-programming experiment in a non-programming course Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (187-190)
  22. Bozheva T Practical aspects of XP practices Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (360-362)
  23. Lui K and Chan K When does a pair outperform two individuals? Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (225-233)
  24. Johnson P, Kou H, Agustin J, Chan C, Moore C, Miglani J, Zhen S and Doane W Beyond the Personal Software Process Proceedings of the 25th International Conference on Software Engineering, (641-646)
  25. ACM
    George B and Williams L An initial investigation of test driven development in industry Proceedings of the 2003 ACM symposium on Applied computing, (1135-1139)
  26. ACM
    Nagappan N, Williams L, Ferzli M, Wiebe E, Yang K, Miller C and Balik S Improving the CS1 experience with pair programming Proceedings of the 34th SIGCSE technical symposium on Computer science education, (359-362)
  27. ACM
    Nagappan N, Williams L, Ferzli M, Wiebe E, Yang K, Miller C and Balik S (2003). Improving the CS1 experience with pair programming, ACM SIGCSE Bulletin, 35:1, (359-362), Online publication date: 11-Jan-2003.
  28. ACM
    Williams L and Upchurch R (2001). In support of student pair-programming, ACM SIGCSE Bulletin, 33:1, (327-331), Online publication date: 1-Mar-2001.
  29. ACM
    Williams L and Upchurch R In support of student pair-programming Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education, (327-331)
Contributors
  • The University of Utah
  • NC State University

Recommendations