ABSTRACT
Recent research indicates that "people" factors such as ownership, experience, organizational structure, and geographic distribution have a big impact on software quality. Understanding these factors, and properly deploying people resources can help managers improve quality outcomes. This paper considers the impact of code ownership and developer experience on software quality. In a large project, a file might be entirely owned by a single developer, or worked on by many. Some previous research indicates that more developers working on a file might lead to more defects. Prior research considered this phenomenon at the level of modules or files, and thus does not tease apart and study the effect of contributions of different developers to each module or file. We exploit a modern version control system to examine this issue at a fine-grained level. Using version history, we examine contributions to code fragments that are actually repaired to fix bugs. Are these code fragments "implicated" in bugs the result of contributions from many? or from one? Does experience matter? What type of experience? We find that implicated code is more strongly associated with a single developer's contribution; our findings also indicate that an author's specialized experience in the target file is more important than general experience. Our findings suggest that quality control efforts could be profitably targeted at changes made by single developers with limited prior experience on that file.
- Software errors cost u.s. economy $59.5 billion annually, http://www.nist.gov/public_affairs/releases/n02-10.htm.Google Scholar
- Identifying reasons for software changes using historic databases, volume 0, Los Alamitos, CA, USA, August 2002. IEEE Computer Society.Google Scholar
- Succession: Measuring transfer of code and developer productivity, Washington, DC, USA, June 2009. IEEE Computer Society.Google Scholar
- L. Argote. Organizational Learning: Creating, Retaining, and Transferring Knowledge. Kluwer Academic Publishers, Norwell, MA, USA, 1999. Google ScholarDigital Library
- L. Argote, S. L. Beckman, and D. Epple. The persistence and transfer of learning in industrial settings. Manage. Sci., 36(2):140--154, 1990. Google ScholarDigital Library
- A. Bachmann and A. Bernstein. Software process data quality and characteristics: a historical view on open and closed source projects. In IWPSE-Evol '09, 2009. Google ScholarDigital Library
- R. D. Banker, G. B. Davis, and S. A. Slaughter. Software development practices, software complexity, and software maintenance performance: A field study. MANAGEMENT SCIENCE, 44(4):433--450, April 1998. Google ScholarDigital Library
- K. Beck. Embracing change with extreme programming. IEEE computer, 32(10):70--77, 1999. Google ScholarDigital Library
- J. Berkus. The 5 types of open source projects, 2007. March 20, 2007. http://www.powerpostgresql.com/5_types.Google Scholar
- C. Bird, A. Bachmann, E. Aune, J. Duffy, A. Bernstein, V. Filkov, and P. Devanbu. Fair and balanced?: bias in bug-fix datasets. In ESEC/FSE '09, pages 121--130, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- C. Bird, N. Nagappan, B. Murphy, H. Gall, and P. Devanbu. An analysis of the effect of code ownership on software quality across windows, eclipse, and firefox. Technical report, University of California, Davis, 2010. Submitted to FSE 2010. http://wwwcsif.cs.ucdavis.edu/~bird/.Google Scholar
- C. Bird, P. Rigby, E. Barr, D. Hamilton, D. German, and P. Devanbu. The Promises and Perils of Mining Git. In MSR 2009, 2009. Google ScholarDigital Library
- W. Boh, S. Slaughter, and J. Espinosa. Learning from experience in software development: A multilevel analysis. Management Science, 53(8):1315--1331, 2007. Google ScholarDigital Library
- F. Brooks. The mythical man-month. Addison-Wesley, 1995. Google ScholarDigital Library
- M. Cataldo, P. Wagstrom, J. Herbsleb, and K. Carley. Identification of coordination requirements: implications for the Design of collaboration and awareness tools. Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work, pages 353--362, 2006. Google ScholarDigital Library
- B. Curtis and H. Iscoe. N.(1988). A field study of the software design process for large systems. Communications of the ACM, 31(11):1268--1287. Google ScholarDigital Library
- B. Curtis, H. Krasner, and N. Iscoe. A field study of the software design process for large systems. communication of the ACM, 31(11):1268--1287, 1988. Google ScholarDigital Library
- B. Curtis, E. M. Soloway, R. E. Brooks, J. B. Black, K. Ehrlich, and H. R. Ramsey. Software psychology: the need for an interdisciplinary program. pages 150--164, 1987. Google ScholarDigital Library
- E. Darr, L. Argote, and D. Epple. The acquisition, transfer, and depreciation of knowledge in service organizations: Productivity in franchises. Management Science, 41(11):1750--1762, 1995. Google ScholarDigital Library
- J. A. Espinosa. Shared mental models and coordination in large-scale, distributed software development. PhD thesis, Pittsburgh, PA, USA, 2002. Google ScholarDigital Library
- M. Fischer, M. Pinzger, and H. Gall. Populating a release history database from version control and bug tracking systems. In ICSM '03, pages 23+, Washington, DC, USA, 2003. IEEE Computer Society. Google ScholarDigital Library
- D. Freedman. Ecological inference and the ecological fallacy. International encyclopedia of the social and behavioral sciences, pages 4027--4030, 2004.Google Scholar
- T. Fritz, G. C. Murphy, and E. Hill. Does a programmer's activity indicate knowledge of code? In ESEC-FSE '07, pages 341--350, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- T. Girba, A. Kuhn, M. Seeberger, and S. Ducasse. How developers drive software evolution. In Eighth International Workshop on Principles of Software Evolution (IWPSE'05), pages 113--122, Washington, DC, USA, 2005. IEEE. Google ScholarDigital Library
- T. L. Graves, A. F. Karr, J. S. Marron, and H. Siy. Predicting fault incidence using software change history. IEEE Trans. Softw. Eng., 26(7):653--661, 2000. Google ScholarDigital Library
- J. D. Herbsleb and A. Mockus. An empirical study of speed and communication in globally distributed software development. IEEE Trans. Softw. Eng., 29(6):481--494, 2003. Google ScholarDigital Library
- S. Kan. Metrics and models in software quality engineering. Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 2002. Google ScholarDigital Library
- S. Kim, K. Pan, and E. E. J. Whitehead. Memories of bug fixes. In SIGSOFT '06/FSE-14, pages 35--45, New York, NY, USA, 2006. ACM. Google ScholarDigital Library
- S. Kim, T. Zimmermann, K. Pan, and J. Jr. Automatic identification of bug-introducing changes. In ASE '06, pages 81--90, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
- A. Meneely and L. Williams. Secure open source collaboration: an empirical study of linus' law. In CCS '09, pages 453--462, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- A. Mockus and D. M. Weiss. Predicting risk of software changes. Bell Labs Technical Journal, 5(2):169--180, 2000.Google ScholarCross Ref
- A. Mockus and D. M. Weiss. Predicting risk of software changes. Bell Labs Technical Journal, 5(2):169--180, 2000.Google ScholarCross Ref
- N. Nagappan, B. Murphy, and V. Basili. The influence of organizational structure on software quality: an empirical case study. In ICSE '08, pages 521--530. ACM, 2008. Google ScholarDigital Library
- M. Pinzger, N. Nagappan, and B. Murphy. Can developer-module networks predict failures? In SIGSOFT '08/FSE-16, pages 2--12, New York, NY, USA, 2008. ACM. Google ScholarDigital Library
- G. P. Pisano, R. M. J. Bohmer, and A. C. Edmondson. Organizational differences in rates of learning: Evidence from the adoption of minimally invasive cardiac surgery. Manage. Sci., 47(6):752--768, 2001. Google ScholarDigital Library
- J. Ratzinger, M. Pinzger, and H. Gall. Eq-mine: Predicting short-term defects for software evolution. In M. B. Dwyer and A. Lopes, editors, Fundamental Approaches to Software Engineering, volume 4422 of Lecture Notes in Computer Science, chapter 3, pages 12--26. Springer Berlin Heidelberg, Berlin, Heidelberg, 2007. Google ScholarDigital Library
- E. Raymond. The cathedral and the bazaar: musings on Linux and open source by an accidental revolutionary. O'Reilly & Associates, Inc. Sebastopol, CA, USA, 2001. Google ScholarDigital Library
- P. N. Robillard. The role of knowledge in software development. Communications of the ACM, 42(1):87--92, January 1999. Google ScholarDigital Library
- M. Sacks. On-the-Job Learning in the Software Industry. Corporate Culture and the Acquisition of Knowledge. Quorum Books, 88 Post Road West, Westport, CT 06881, 1994. Google ScholarDigital Library
- M. A. Schilling, P. Vidal, R. E. Ployhart, and A. Marangoni. Learning by doing something else: Variation, relatedness, and the learning curve. MANAGEMENT SCIENCE, 49(1):39--56, January 2003. Google ScholarDigital Library
- T. I. Seifert and B. Paech. Exploring the relationship of history characteristics and defect count: an empirical study. In DEFECTS '08, pages 11--15, New York, NY, USA, 2008. ACM. Google ScholarDigital Library
- R. Shatnawi and W. Li. The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process. J. Syst. Softw., 81(11):1868--1882, 2008. Google ScholarDigital Library
- J. Śliwerski, T. Zimmermann, and A. Zeller. When do changes induce fixes? In MSR '05, pages 1--5. ACM, 2005. Google ScholarDigital Library
- D. Čubranić and G. C. Murphy. Hipikat: recommending pertinent software development artifacts. In ICSE '03, pages 408--418, Washington, DC, USA, 2003. IEEE Computer Society. Google ScholarDigital Library
- D. G. Wastell. Learning dysfunctions in information systems development: overcoming the social defenses with transitional objects. MIS Q., 23(4):581--600, 1999. Google ScholarDigital Library
- E. Weyuker, T. Ostrand, and R. Bell. Do too many cooks spoil the broth? using the number of developers to enhance defect prediction models. Empirical Software Engineering, 13(5):539--559, October 2008. Google ScholarDigital Library
- A. Zeller. Why Programs Fail, Second Edition: A Guide to Systematic Debugging. Morgan Kaufmann, 2 edition, June 2009. Google ScholarDigital Library
- Y. Zhou and H. Leung. Empirical analysis of object-oriented design metrics for predicting high and low severity faults. IEEE Trans. Softw. Eng., 32(10):771--789, 2006. Google ScholarDigital Library
Index Terms
- Ownership, experience and defects: a fine-grained study of authorship
Recommendations
Revisiting code ownership and its relationship with software quality in the scope of modern code review
ICSE '16: Proceedings of the 38th International Conference on Software EngineeringCode ownership establishes a chain of responsibility for modules in large software systems. Although prior work uncovers a link between code ownership heuristics and software quality, these heuristics rely solely on the authorship of code changes. In ...
Code ownership and software quality: a replication study
MSR '15: Proceedings of the 12th Working Conference on Mining Software RepositoriesIn a traditional sense, ownership determines rights and duties in regard to an object, for example a property. The owner of source code usually refers to the person that invented the code. However, larger code artifacts, such as files, are usually ...
An empirical study of the effect of file editing patterns on software quality
Developers might follow different file editing patterns when handling change requests. Existing research has warned the community about the potential negative impacts of some file editing patterns on software quality. However, very few studies have ...
Comments