Advertisement

Visualizing and Managing Technical Debt in Agile Development: An Experience Report

  • Paulo Sérgio Medeiros dos Santos
  • Amanda Varella
  • Cristine Ribeiro Dantas
  • Daniel Beltrão Borges
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 149)

Abstract

This paper reports the experience of an architecture team of a software development department with 25 agile teams in supporting technical decisions regarding technical practices. The main motivation to use technical debt metaphor was its acknowledged potential in driving software development and maintenance decisions, especially those long term maintenance tradeoffs which are usually less visible to developers and decision makers in general. We propose the use of a "technical debt board" with main technical debt categories to manage and visualize the high-level debt, combined with tools to measure it at low-level (software metrics and other kind of static analysis). We have found that our approach improved the teams’ awareness about the technical debt, stimulated a beneficial competition between teams towards the debt payment and enhanced the communication regarding technical decisions.

Keywords

technical debt software quality visualization agile practices 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Boehm, B.: Get ready for agile methods, with care. Computer 35, 64–69 (2002)CrossRefGoogle Scholar
  2. 2.
    Dinakar, K.: Agile development: overcoming a short-term focus in implementing best practices. In: Proceedings of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications, pp. 579–588. ACM, New York (2009)CrossRefGoogle Scholar
  3. 3.
    Abrahamsson, P., Warsta, J., Siponen, M.T., Ronkainen, J.: New directions on agile methods: a comparative analysis. In: Proceedings of the 25th International Conference on Software Engineering, pp. 244–254 (2003)Google Scholar
  4. 4.
    Merisalo-Rantanen, H., Tuunanen, T., Rossi, M.: Is Extreme Programming Just Old Wine in New Bottles. Journal of Database Management 16, 41–61 (2005)CrossRefGoogle Scholar
  5. 5.
    Mishra, D., Mishra, A.: Complex software project development: agile methods adoption. Journal of Software Maintenance and Evolution: Research and Practice 23, 549–564 (2011)CrossRefGoogle Scholar
  6. 6.
    Svensson, H., Host, M.: Introducing an Agile Process in a Software Maintenance and Evolution Organization. In: 9th European Conference on Software Maintenance and Reengineering, CSMR 2005, pp. 256–264 (2005)Google Scholar
  7. 7.
    Cunningham, W.: The WyCash portfolio management system. SIGPLAN OOPS Mess. 4, 29–30 (1992)CrossRefGoogle Scholar
  8. 8.
    Fowler, M.: Technical Debt (2009), http://martinfowler.com/bliki/TechnicalDebt.html
  9. 9.
    Sterling, C.: Managing Software Debt: Building for Inevitable Change. Addison-Wesley Professional (2010)Google Scholar
  10. 10.
    Lim, E., Taksande, N., Seaman, C.: A Balancing Act: What Software Practitioners Have to Say about Technical Debt. IEEE Software 29, 22–27 (2012)CrossRefGoogle Scholar
  11. 11.
    Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., Lim, E., MacCormack, A., Nord, R., Ozkaya, I., Sangwan, R., Seaman, C., Sullivan, K., Zazworka, N.: Managing technical debt in software-reliant systems. In: Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research, pp. 47–52. ACM, New York (2010)CrossRefGoogle Scholar
  12. 12.
  13. 13.
    Klinger, T., Tarr, P., Wagstrom, P., Williams, C.: An enterprise perspective on technical debt. In: Proceedings of the 2nd Workshop on Managing Technical Debt, pp. 35–38. ACM, New York (2011)Google Scholar
  14. 14.
    Seaman, C., Guo, Y., Izurieta, C., Cai, Y., Zazworka, N., Shull, F., Vetro, A.: Using technical debt data in decision making: Potential decision approaches. In: 2012 Third International Workshop on Managing Technical Debt (MTD), pp. 45–48 (2012)Google Scholar
  15. 15.
    Seaman, C., Guo, Y.: Measuring and Monitoring Technical Debt. In: Zelkowitz, M. (ed.) Advances in Computers. Academic Press (2011)Google Scholar
  16. 16.
    Zazworka, N., Seaman, C., Shull, F.: Prioritizing design debt investment opportunities. In: Proceedings of the 2nd Workshop on Managing Technical Debt, pp. 39–42. ACM, New York (2011)Google Scholar
  17. 17.
    Vetrò, A.: Using automatic static analysis to identify technical debt. In: Proceedings of the 2012 International Conference on Software Engineering, pp. 1613–1615. IEEE Press, Piscataway (2012)Google Scholar
  18. 18.
    Fontana, F.A., Ferme, V., Spinelli, S.: Investigating the impact of code smells debt on quality code evaluation. In: 2012 Third International Workshop on Managing Technical Debt (MTD), pp. 15–22 (2012)Google Scholar
  19. 19.
    Guo, Y., Seaman, C.: A portfolio approach to technical debt management. In: Proceedings of the 2nd Workshop on Managing Technical Debt, pp. 31–34. ACM, New York (2011)Google Scholar
  20. 20.
    Gaudin, O.: Evaluate your technical debt with Sonar (2009), http://www.sonarsource.org/evaluate-your-technical-debt-with-sonar/
  21. 21.
    Anderson, D.: Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press (April 7, 2010) Google Scholar
  22. 22.
    Gaillot, E.: What is Coding Dojo (2012), http://codingdojo.org/cgi-bin/wiki.pl?WhatIsCodingDojo
  23. 23.
    Werbach, K.: Gamification, University of Pennsylvania (2012), https://www.coursera.org/course/gamification

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Paulo Sérgio Medeiros dos Santos
    • 1
  • Amanda Varella
    • 2
  • Cristine Ribeiro Dantas
    • 2
  • Daniel Beltrão Borges
    • 2
  1. 1.System Engineering and Computer Science DepartmentFederal University of Rio de Janeiro, Cidade Universitária – Centro de Tecnologia.Rio de JaneiroBrazil
  2. 2.Petrobras, Exploitation and Production Business Solutions, CentroRio de JaneiroBrazil

Personalised recommendations