Advertisement

The Effects of Software Process Evolution to Technical Debt—Perceptions from Three Large Software Projects

  • Jesse Yli-HuumoEmail author
  • Andrey Maglyas
  • Kari Smolander
Chapter

Abstract

This chapter describes a qualitative study with the goal to explore and understand how software process evolution affects technical debt. We investigated three large software development projects with a long development history with the aim to understand how software processes had evolved during the life cycle and how this evolution affected technical debt. We observed how companies had changed their software processes as well as the reasons, benefits, and consequences of these changes on technical debt. The main driving force for the software process evolution was business pressure from management to increase productivity and become cost-efficient. However, these changes were also the source of technical debt. The results show that software process evolution has a clear effect to technical debt. Software process evolution can be used to decrease technical debt by adopting new methods, tools, and techniques. However, software process evolution includes several challenges. These challenges have a possibility to decrease the productivity and quality of new software processes and technical debt might increase.

Keywords

Software Development Software Process Development Team Code Base Case Company 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Notes

Acknowledgments

We would like to thank the companies that took part in this research and all the interviewees who shared valuable information related to the studied cases. This research has been carried out in Digile Need for Speed program, and funded by Tekes (the Finnish Funding Agency for Technology and Innovation).

References

  1. 1.
    Allman, E.: Managing technical debt. Commun. ACM 55(5), 50–55 (2012)CrossRefGoogle Scholar
  2. 2.
    Ashrafi, N.: The impact of software process improvement on quality: in theory and practice. Inf. Manage. 40(7), 677–690 (2003)CrossRefGoogle Scholar
  3. 3.
    Baddoo, N., Hall, T.: Motivators of software process improvement: an analysis of practitioners’ views. J. Syst. Softw. 62(2), 85–96 (2002)CrossRefzbMATHGoogle Scholar
  4. 4.
    Beecham, S., Hall, T., Rainer, A.: Software process improvement problems in twelve software companies: an empirical analysis. Empir. Softw. Eng. 8(1), 7–42 (2003)CrossRefzbMATHGoogle Scholar
  5. 5.
    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, NY, USA (2010)Google Scholar
  6. 6.
    Carpenter, G.S., Nakamoto, K.: Consumer preference formation and pioneering advantage. J. Mark. Res. 26(3), 285–298 (1989)CrossRefGoogle Scholar
  7. 7.
    Charmaz, K.: Constructing Grounded Theory, 2nd edn. Sage Publications, London (2014)Google Scholar
  8. 8.
    Clarke, P., O’Connor, R.V.: An approach to evaluating software process adaptation. In: O’Connor, R.V., Rout, T., McCaffery, F., Dorling, A. (eds.) Software Process Improvement and Capability Determination. Communications in Computer and Information Science, pp. 28–41. Springer, Berlin (2011)Google Scholar
  9. 9.
    Codabux, Z., Williams, B.: Managing technical debt: an industrial case study. In: Proceedings of the International Workshop on Managing Technical Debt, pp. 8–15. IEEE, Washington, DC (2013)Google Scholar
  10. 10.
    Coleman, G., O’Connor, R.: Investigating software process in practice: a grounded theory perspective. J. Syst. Softw. 81(5), 772–784 (2008)CrossRefGoogle Scholar
  11. 11.
    Corbin, J., Strauss, A.: Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory, 3rd edn. Sage Publications, Thousand Oaks (2007)Google Scholar
  12. 12.
    Cugola, G., Ghezzi, C.: Software processes: a retrospective and a path to the future. Softw. Process: Improv. Pract. 4(3), 101–123 (1998)CrossRefGoogle Scholar
  13. 13.
    Cunningham, W.: The WyCash portfolio management system. In: Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications, pp. 29–30. ACM (1992)Google Scholar
  14. 14.
    Dybå, T.: An empirical investigation of the key factors for success in software process improvement. Trans. Softw. Eng. 31(5), 410–424 (2005)CrossRefGoogle Scholar
  15. 15.
    Eisenberg, R.J.: A threshold based approach to technical debt. ACM SIGSOFT Softw. Eng. Notes 37(2), 1–6 (2012)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Everett, G.D., McLeod, R.: Software Testing: Testing Across the Entire Software Development Life Cycle. Wiley, New York (2007)CrossRefGoogle Scholar
  17. 17.
    Gibson, D., Goldenson, D., Kost, K.: Performance results of CMMI-based process improvement. Research Report CMU/SEI-2006-TR-004, Software Engineering Institute, Carnegie Mellon University (2006)Google Scholar
  18. 18.
    Harter, D.E., Krishnan, M.S., Slaughter, S.A.: Effects of process maturity on quality, cycle time, and effort in software product development. Manage. Sci. 46(4), 451–466 (2000)CrossRefGoogle Scholar
  19. 19.
    Herbsleb, J., Zubrow, D., Goldenson, D., Hayes, W., Paulk, M.: Software quality and the capability maturity model. Commun. ACM 40(6), 30–40 (1997)CrossRefGoogle Scholar
  20. 20.
    Hove, S.E., Anda, B.: Experiences from conducting semi-structured interviews in empirical software engineering research. In: Proceedings of the International Software Metrics Symposium, pp. 10–23. IEEE, Washington, DC, USA (2005)Google Scholar
  21. 21.
    Klinger, T., Tarr, P., Wagstrom, P., Williams, C.: An enterprise perspective on technical debt. In: Proceedings of the Workshop on Managing Technical Debt, pp. 35–38. ACM, New York, NY, USA (2011)Google Scholar
  22. 22.
    Korsaa, M., Biro, M., Messnarz, R., Johansen, J., Vohwinkel, D., Nevalainen, R., Schweigert, T.: The SPI manifesto and the ECQA SPI manager certification scheme. J. Softw.: Evol. Process 24(5), 525–540 (2012)Google Scholar
  23. 23.
    Krishnan, M., Kellner, M.: Measuring process consistency: implications for reducing software defects. Trans. Softw. Eng. 25(6), 800–815 (1999)CrossRefGoogle Scholar
  24. 24.
    Laanti, M., Salo, O., Abrahamsson, P.: Agile methods rapidly replacing traditional methods at nokia: a survey of opinions on agile transformation. Inf. Softw. Technol. 53(3), 276–290 (2011)CrossRefGoogle Scholar
  25. 25.
    Lepmets, M., Ras, E.: Motivation and empowerment in process improvement. Systems. Software and Service Process Improvement, Communications in Computer and Information Science, vol. 172, pp. 109–120. Springer, Berlin Heidelberg (2011)Google Scholar
  26. 26.
    Lim, E., Taksande, N., Seaman, C.: A balancing act: what software practitioners have to say about technical debt. IEEE Softw. 29(6), 22–27 (2012)CrossRefGoogle Scholar
  27. 27.
    Mathiassen, L., Ngwenyama, O.K., Aaen, I.: Managing change in software process improvement. IEEE Softw. 22(6), 84–91 (2005)CrossRefGoogle Scholar
  28. 28.
    McConnell, S.: Technical debt-10x software development. http://www.construx.com/10x_Software_Development/Technical_Debt (2014)
  29. 29.
    Ojameruaye, B., Bahsoon, R.: Systematic elaboration of compliance requirements using compliance debt and portfolio theory. In: Salinesi, C., van de Weerd, I. (eds.) Requirements Engineering: Foundation for Software Quality. Lecture Notes in Computer Science, vol. 8396, pp. 152–167. Springer International Publishing (2014)Google Scholar
  30. 30.
    Pressman, R.S.: Software Engineering: A Practitioner’s Approach. McGraw-Hill, New York (2005)zbMATHGoogle Scholar
  31. 31.
    Robson, C.: Real World Research: A Resource for Users of Social Research Methods in Applied Settings. Wiley, New York (2011)Google Scholar
  32. 32.
    Rodríguez, P., Markkula, J., Oivo, M., Turula, K.: Survey on agile and lean usage in finnish software industry. In: Proceedings of the International Symposium on Empirical Software Engineering and Measurement, pp. 139–148. ACM, New York, NY, USA (2012)Google Scholar
  33. 33.
    Royce, W.W.: Managing the development of large software systems: concepts and techniques. In: Proceedings of the International Conference on Software Engineering, pp. 328–338. IEEE, Washington, DC (1987)Google Scholar
  34. 34.
    Salo, O., Abrahamsson, P.: Agile methods in european embedded software development organisations: a survey on the actual use and usefulness of extreme programming and scrum. IET Softw. 2(1), 58–64 (2008)CrossRefGoogle Scholar
  35. 35.
    Seaman, C., Guo, Y., Zazworka, N., Shull, F., Izurieta, C., Cai, Y., Vetro, A.: Using technical debt data in decision making: potential decision approaches. In: Proceedings of the International Workshop on Managing Technical Debt, pp. 45–48. IEEE, Washington, DC, USA (2012)Google Scholar
  36. 36.
    Shaikh, A., Ahmed, A., Memon, N., Memon, M.: Strengths and weaknesses of maturity driven process improvement effort. In: Proceedings of the International Conference on Complex. Intelligent and Software Intensive Systems, pp. 481–486. IEEE, Washington, DC, USA (2009)Google Scholar
  37. 37.
    Sureshchandra, K., Shrinivasavadhani, J.: Moving from waterfall to agile. In: Proceedings of the Agile Conference, pp. 97–101. IEEE, Washington, DC, USA (2008)Google Scholar
  38. 38.
    Tom, E., Aurum, A., Vidgen, R.: An exploration of technical debt. J. Syst. Softw. 86(6), 1498–1516 (2013)CrossRefGoogle Scholar
  39. 39.
    van Solingen, R., Berghout, E., Kusters, R., Trienekens, J.: From process improvement to people improvement: enabling learning in software development. Inf. Softw. Technol. 42(14), 965–971 (2000)CrossRefGoogle Scholar
  40. 40.
    Verner, J., Sampson, J., Tosic, V., Bakar, N., Kitchenham, B.: Guidelines for industrially-based multiple case studies in software engineering. In: Proceedings of the International Conference on Research Challenges in Information Science, pp. 313–324. IEEE, Washington, DC, USA (2009)Google Scholar
  41. 41.
    Yin, R.K.: Case study research: design and methods. Sage Publications, Thousand Oaks (2003)Google Scholar
  42. 42.
    Yli-Huumo, J., Maglyas, A., Smolander, K.: The sources and approaches to management of technical debt: A case study of two product lines in a middle-size finnish software company. In: Jedlitschka, A., Kuvaja, P., Kuhrmann, M., MännistÖ, T., Münch, J., Raatikainen, M. (eds.) Product-Focused Software Process Improvement, Lecture Notes in Computer Science, vol. 8892, pp. 93–107. Springer International Publishing (2014)Google Scholar
  43. 43.
    Zazworka, N., Shaw, M.A., Shull, F., Seaman, C.: Investigating the impact of design debt on software quality. In: Proceedings of the Workshop on Managing Technical Debt, pp. 17–23. ACM, New York, NY, USA (2011)Google Scholar
  44. 44.
    Zazworka, N., Spínola, R.O., Vetró, A., Shull, F., Seaman, C.: A case study on effectively identifying technical debt. In: Proceedings of the International Conference on Evaluation and Assessment in Software Engineering, pp. 42–47. ACM, New York, NY, USA (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Jesse Yli-Huumo
    • 1
    Email author
  • Andrey Maglyas
    • 1
  • Kari Smolander
    • 2
  1. 1.School of Business and Management, Innovation & SoftwareLappeenranta University of TechnologyLappeenrantaFinland
  2. 2.Department of Computer ScienceAalto UniversityAaltoFinland

Personalised recommendations