Pair designing as practice for enforcing and diffusing design knowledge

SUMMARY Evolving software’s design requires that the members of the team acquire a deep and complete knowledge of the domain, the architectural components, and their integration. Such information is scarcely addressed within the design documentation and it is not trivial to derive it. A strategy for enforcing the consciousness of such hidden aspects of software’s design is needed. One of the expected benefits of pair programming is fostering (tacit) knowledge building between the components of the pair and fastening its diffusion within the project’s team. We have applied the paradigm of pair programming to the design phase and we have named it ‘pair designing’. We have realized an experiment and a replica in order to understand if pair designing can be used as an effective means for diffusing and enforcing the design knowledge while evolving the system’s design. The results suggest that pair designing could be a suitable means to disseminate and enforce design knowledge. Copyright c � 2005 John Wiley & Sons, Ltd.

[1]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[2]  Aniello Cimitile,et al.  Lessons learned about distributed pair programming: what are the knowledge needs to address? , 2003, WET ICE 2003. Proceedings. Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 2003..

[3]  Laurie A. Williams,et al.  In support of student pair-programming , 2001, SIGCSE '01.

[4]  Chun Wei Choo,et al.  The knowing organization , 2005 .

[5]  Yang Li,et al.  Generating linkage between source code and evolvable domain knowledge for the ease of software evolution , 2000, Proceedings International Symposium on Principles of Software Evolution.

[6]  Tammy VanDeGrift Coupling pair programming and writing: learning about students' perceptions and processes , 2004, SIGCSE.

[7]  Grigori Melnik,et al.  Direct verbal communication as a catalyst of agile knowledge sharing , 2004, Agile Development Conference.

[8]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[9]  Tammy VanDeGrift Coupling pair programming and writing: learning about students' perceptions and processes , 2004 .

[10]  Mario Piattini,et al.  Confirming the influence of educational background in pair-design knowledge through experiments , 2005, SAC '05.

[11]  Charles E. McDowell,et al.  The effects of pair-programming on performance in an introductory programming course , 2002, SIGCSE '02.

[12]  Aniello Cimitile,et al.  Working in pairs as a means for design knowledge building: an empirical study , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[13]  Pekka Abrahamsson,et al.  Extreme programming: a survey of empirical data from a controlled case study , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[14]  Alexander Ran,et al.  Design decision trees , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[15]  F. Blackler Knowledge, Knowledge Work and Organizations: An Overview and Interpretation , 1995 .

[16]  Laurie A. Williams,et al.  The effects of "pair-pressure" and "pair-learning" on software engineering education , 2000, Thirteenth Conference on Software Engineering Education and Training.

[17]  VanDeGriftTammy Coupling pair programming and writing , 2004 .

[18]  Lucas Layman,et al.  Toward a framework for evaluating extreme programming , 2004, ICSE 2004.

[19]  Walter F. Stenning,et al.  AN EMPIRICAL STUDY , 2003 .

[20]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[21]  I. Nonaka A Dynamic Theory of Organizational Knowledge Creation , 1994 .

[22]  Richard Bentley,et al.  An architecture for tailoring cooperative multi-user displays , 1992, CSCW '92.

[23]  Laurie A. Williams,et al.  Building pair programming knowledge through a family of experiments , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[24]  Alistair G. Sutcliffe,et al.  Visualisation design knowledge reuse , 2004, Proceedings. Eighth International Conference on Information Visualisation, 2004. IV 2004..

[25]  John T. Nosek,et al.  The case for collaborative programming , 1998, CACM.

[26]  Claes Wohlin,et al.  Using Students as Subjects—A Comparative Study of Students and Professionals in Lead-Time Impact Assessment , 2000, Empirical Software Engineering.