skip to main content
10.1145/3131151.3131164acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Understanding Technical Debt at the Code Level from the Perspective of Software Developers

Authors Info & Claims
Published:20 September 2017Publication History

ABSTRACT

Keeping the source code clean and organized throughout the software development and evolution is a challenging task. Due to many factors, design choices that cause the overall code structure to decay may be made and implemented, so that benefits, such as reduced development time, can be obtained in the short term. In order to deal with these situations, the metaphor of technical debt emerged to allow such situations to be systematically managed. Although this concept is already known in academia, there are limited evidences that the industry widely adopts it. Therefore, this paper presents the results of a survey involving 74 participants that work in the Brazilian software industry, in order to understand why technical debt is introduced, eliminated and how it is managed in practice, with a focus on the code level. Our survey is not limited to the explicit management of technical debt but also includes the notion that the introduction of poor code without the awareness that it is a poor design choice can also become a debt. Such a code can be acknowledged as a debt to be paid as the software evolves. Our results show that overload of work and lack of time, together with pressure from the management, are the main reasons for the creation of technical debt. However, when participants evaluate other developers, they believe that inexperience also plays a key role. Moreover, the most effective practice to avoid the creation of technical debt is code review, in the opinion of participants.

References

  1. Eric Allman. 2012. Managing Technical Debt. ACM Commununication 55, 5 (May 2012), 50--55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Nicolli S.R. Alves, Thiago S. Mendes, Manoel G. de Mendonça, Rodrigo O. Spínola, Forrest Shull, and Carolyn Seaman. 2016. Identification and Management of Technical Debt: A systematic mapping study. Inf. Softw. Technol. 70, C (Feb. 2016), 100--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. F. Buschmann. 2011. To Pay or Not to Pay Technical Debt. IEEE Software 28, 6 (Nov 2011), 29--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ward Cunningham. 1992. The WyCash Portfolio Management System. SIGPLAN OOPS Mess. 4, 2 (Dec. 1992), 29--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Neil A. Ernst, Stephany Bellomo, Ipek Ozkaya, Robert L. Nord, and Ian Gorton. 2015. Measure It? Manage It? Ignore It? Software Practitioners and Technical Debt. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2015). ACM, New York, NY, USA, 50--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Fernández-Sánchez, J. Garbajosa, C. Vidal, and A. Yagüe. 2015. An Analysis of Techniques and Methods for Technical Debt Management: A Reflection from the Architecture Perspective. In 2015 IEEE/ACM 2nd International Workshop on Software Architecture and Metrics. 22--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Hinsen. 2015. Technical Debt in Computational Science. Computing in Science Engineering 17, 6 (Nov 2015), 103--107.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Kruchten, R. L. Nord, and I. Ozkaya. 2012. Technical Debt: From Metaphor to Theory and Practice. IEEE Software 29, 6 (Nov 2012), 18--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Lavallée and P. N Robillard. 2015. Why Good Developers Write Bad Code: An Observational Case Study of the Impacts of Organizational Factors on Software Quality. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 1. 677--687. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. L. Letouzey and M. Ilkiewicz. 2012. Managing Technical Debt with the SQALE Method. IEEE Software 29, 6 (Nov 2012), 44--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. Maldonado, E. Shihab, and N. Tsantalis. 2017. Using Natural Language Processing to Automatically Detect Self-Admitted Technical Debt. IEEE Transactions on Software Engineering PP, 99 (Jan 2017), 1--1.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Tufano, F. Palomba, G. Bavota, R. Oliveto, M. Di Penta, A. De Lucia, and D. Poshyvanyk. 2015. When and Why Your Code Starts to Smell Bad. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 1. 403--414. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Zablah and C. Murphy. 2015. Restructuring and refinancing technical debt. In 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD). 77--80.Google ScholarGoogle Scholar

Index Terms

  1. Understanding Technical Debt at the Code Level from the Perspective of Software Developers

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          SBES '17: Proceedings of the XXXI Brazilian Symposium on Software Engineering
          September 2017
          409 pages
          ISBN:9781450353267
          DOI:10.1145/3131151

          Copyright © 2017 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 20 September 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed limited

          Acceptance Rates

          SBES '17 Paper Acceptance Rate42of134submissions,31%Overall Acceptance Rate147of427submissions,34%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader