Can development work describe itself?

Work descriptions are informal notes taken by developers to summarize work achieved in a particular session. Existing studies indicate that maintaining them is a distracting task, which costs a developer more than 30 min. a day. The goal of this research is to analyze the purposes of work descriptions, and find out if automated tools can assist developers in efficiently creating them. For this, we mine a large dataset of heterogeneous work descriptions from open source and commercial projects. We analyze the semantics of these documents and identify common information entities and granularity levels. Information on performed actions, concerned artifacts, references and new work, shows the work management purpose of work descriptions. Information on problems, rationale and experience shows their knowledge sharing purpose. We discuss how work description information, in particular information used for work management, can be generated by observing developers' interactions. Our findings have many implications for next generation software engineering tools.

[1]  Michele Lanza,et al.  On the nature of commits , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[2]  Jonathan I. Maletic,et al.  What's a Typical Commit? A Characterization of Open Source Software Repositories , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[3]  Erik F. Tjong Kim Sang,et al.  Introduction to the CoNLL-2003 Shared Task: Language-Independent Named Entity Recognition , 2003, CoNLL.

[4]  Walid Maalej,et al.  A Lightweight Approach for Knowledge Sharing in Distributed Software Teams , 2008, PAKM.

[5]  Walid Maalej,et al.  Task-First or Context-First? Tool Integration Revisited , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[6]  Thomas G. Dietterich,et al.  TaskTracer: a desktop environment to support multi-tasking knowledge workers , 2005, IUI.

[7]  Spencer Rugaber,et al.  Resumption strategies for interrupted programming tasks , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[8]  Dan Klein,et al.  Feature-Rich Part-of-Speech Tagging with a Cyclic Dependency Network , 2003, NAACL.

[9]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[10]  Thomas G. Dietterich,et al.  Discovering frequent work procedures from resource connections , 2009, IUI.

[11]  Mik Kersten,et al.  Using task context to improve programmer productivity , 2006, SIGSOFT '06/FSE-14.

[12]  Walid Maalej,et al.  From work to word: How do software developers describe their work? , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[13]  Michael S. Bernstein,et al.  Note to self: examining personal information keeping in a lightweight note-taking tool , 2009, CHI.

[14]  Jeffrey C. Carver,et al.  Combining self-reported and automatic data to improve programming effort measurement , 2005, ESEC/FSE-13.

[15]  Audris Mockus,et al.  Identifying reasons for software changes using historic databases , 2000, Proceedings 2000 International Conference on Software Maintenance.

[16]  Erik F. Tjong Kim Sang,et al.  Introduction to the CoNLL-2002 Shared Task: Language-Independent Named Entity Recognition , 2002, CoNLL.

[17]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[18]  Ewan Klein,et al.  Natural Language Processing with Python , 2009 .

[19]  Letha H. Etzkorn,et al.  The language of comments in computer software: A sublanguage of English , 2001 .

[20]  Brad A. Myers,et al.  A Linguistic Analysis of How People Describe Software Problems , 2006, Visual Languages and Human-Centric Computing (VL/HCC'06).