TODO or to bug

Software development is a highly collaborative activity that requires teams of developers to continually manage and coordinate their programming tasks. In this paper, we describe an empirical study that explored how task annotations embedded within the source code play a role in how software developers manage personal and team tasks. We present findings gathered by combining results from a survey of professional software developers, an analysis of code from open source projects, and interviews with software developers. Our findings help us describe how task annotations can be used to support a variety of activities fundamental to articulation work within software development. We describe how task management is negotiated between the more formal issue tracking systems and the informal annotations that programmers write within their source code. We report that annotations have different meanings and are dependent on individual, team and community use. We also present a number of issues related to managing annotations, which may have negative implications for maintenance. We conclude with insights into how these findings could be used to improve tool support and software process.

[1]  Nicolas Anquetil,et al.  A study of the documentation essential to software maintenance , 2005, SIGDOC '05.

[2]  Wes Sharrock,et al.  Project work: The organisation of collaborative design and development in software engineering , 1996, Computer Supported Cooperative Work (CSCW).

[3]  Ted Tenny,et al.  Program Readability: Procedures Versus Comments , 1988, IEEE Trans. Software Eng..

[4]  Janice Singer,et al.  How Programmers can Turn Comments into Waypoints for Code Navigation , 2007, 2007 IEEE International Conference on Software Maintenance.

[5]  Martin P. Robillard,et al.  Automatically inferring concern code from program investigation activities , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[6]  C MurphyGail,et al.  How Are Java Software Developers Using the Eclipse IDE , 2006 .

[7]  Peter Grogono,et al.  Comments, assertions and pragmas , 1989, SIGP.

[8]  Kjeld Schmidt,et al.  CSCW: Four Characters in Search of a Context , 1989, ECSCW.

[9]  Mike Robinson,et al.  Double-level languages and co-operative working , 2005, AI & SOCIETY.

[10]  E. Nurvitadhi,et al.  Do class comments aid Java program understanding? , 2003, 33rd Annual Frontiers in Education, 2003. FIE 2003..

[11]  Ding Yuan,et al.  HotComments: How to Make Program Comments More Useful? , 2007, HotOS.

[12]  Li-Te Cheng,et al.  Shared waypoints and social tagging to support collaboration in software development , 2006, CSCW '06.

[13]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

[14]  A. Twycross Research design: qualitative, quantitative and mixed methods approaches Research design: qualitative, quantitative and mixed methods approaches Creswell John W Sage 320 £29 0761924426 0761924426 [Formula: see text]. , 2004, Nurse researcher.

[15]  A. Strauss Work and the Division of Labor , 1985 .

[16]  Miguel P Caldas,et al.  Research design: qualitative, quantitative, and mixed methods approaches , 2003 .

[17]  Scott N. Woodfield,et al.  The effect of modularization and comments on program comprehension , 1981, ICSE '81.

[18]  Larry Weissman,et al.  Psychological complexity of computer programs , 1973, SIGP.

[19]  Harald C. Gall,et al.  Do Code and Comments Co-Evolve? On the Relation between Source Code and Comment Changes , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[20]  Pierre N. Robillard Automating comments , 1989, SIGP.

[21]  James L. Wright,et al.  Source code that talks: an exploration of Eclipse task comments and their implication to repository mining , 2005, ACM SIGSOFT Softw. Eng. Notes.

[22]  Rebecca E. Grinter Supporting articulation work using software configuration management systems , 1996, Computer Supported Cooperative Work (CSCW).

[23]  Michael J. Kaelbling Programming languages should NOT have comment statements , 1988, SIGP.

[24]  Mik Kersten,et al.  How are Java software developers using the Elipse IDE? , 2006, IEEE Software.

[25]  Larry Weissman,et al.  Psychological complexity of computer programs: an experimental methodology , 1974, SIGP.

[26]  Ahmed E. Hassan,et al.  Examining the evolution of code comments in PostgreSQL , 2006, MSR '06.

[27]  Andrian Marcus,et al.  Source code files as structured documents , 2002, Proceedings 10th International Workshop on Program Comprehension.