Technical Debt Guild
managing technical debt from code up to build
DOI:
https://doi.org/10.5753/jserd.2023.2417Keywords:
Technical Debt, Technical Debt Management, Community of Practice, Technical Debt GuildAbstract
Efficient Technical Debt Management (TDM) requires specialized guidance so that decisions taken are oriented to add value to the business. Because it is a complex problem that involves several variables, TDM requires a systemic look that considers professionals' experiences from different specialties. Guilds have been a means technology companies have united specialized professionals around a common interest, especially those using the Spotify methodology. This paper presents the experience of implementing a guild to support TDM's activities in a software development organization using the action research method. The project lasted three years, and approximately 120 developers were involved in updating about 63,300 source-code files, 2,314 test cases, 2,097 automated test scripts, and the build pipeline. The actions resulting from the TDM guild's efforts impacted the company's culture by introducing new software development practices and standards. Besides, they positively influenced the quality of the artifacts delivered by the developers. This study shows that, as the company acquires maturity in TDM, it increases the need for professionals dedicated to TDM's activities.
Downloads
References
Alves, N., Mendes, T., de Mendonça, M., Spínola, R., Shull, F., & Seaman, C. (2016). Identification and management of technical debt. Information and Software Technology, 70(C).
Ampatzoglou, A., Michailidis, A., Sarikyriakidis, C., Ampatzoglou, A., Chatzigeorgiou, A., & Avgeriou, P. (2018). A Framework for Managing Interest in Technical Debt: An Industrial Validation. 2018 IEEE/ACM International Conference on Technical Debt (TechDebt).
Bavani, R. (2012). Distributed Agile, Agile Testing, and Technical Debt. IEEE Software, 29(6), pp. 28-33. doi:10.1109/MS.2012.155
Besker, T., Martini, A., & Bosch, J. (2017). The Pricey Bill of Technical Debt - When and by whom will it be paid? 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME). doi:10.1109/ICSME.2017.42
Besker, T., Martini, A., & Bosch, J. (2019). Software developer productivity loss due to technical debt - A replication and extension study examining developers' development work. The Journal of Systems and Software, pp. 41–61. doi:https://doi.org/10.1016/j.jss.2019.06.004
Braun, V., & Clarke, V. (2006). Using thematic analysis in psychology. Qual. Res. Psychol. 3, pp. 77–101.
Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., . . . Zazworka, N. (2010). Managing technical debt in software-reliant systems. FoSER '10 Proceedings of the FSE/SDP workshop on Future of software engineering research, pp. 47-52.
Codabux, Z., Williams, B., Bradshaw, G., & Cantor, M. (2017). An empirical assessment of technical debt practices in industry. Journal of Software: Evolution and Process 2017. doi:DOI:10.1002/smr.1894
Connolly, C. (1992). Team-oriented problem solving. IEE Seminar on Team Based Techniques Design to Manufacture.
Coughlan, P., & Coghlan, D. (2002). Action Research for Operations Management. January 2002 International Journal of Operations & Production Management, 22, pp. 220-240. doi:10.1108/01443570210417515
Desjardins, M. (2011). How to execute corporate action plans effectively. Business In Vancouver. Archived from the original on 22 March 2014.
Dick, B. (2000). A beginner's guide to action research. Acesso em 03 de 09 de 2019, disponível em [link]
Fernández-Sánchez, C., Garbajosa, J., Yagüe, A., & Pereza, J. (2017). Identification and analysis of the elements required to manage technical debt by means of a systematic mapping study. Journal of Systems and Software, 124, pp. 22-38. doi:https://doi.org/10.1016/j.jss.2016.10.018
Ghanbari, H., Besker, T., Martini, A., & Bosch, J. (2017). Looking for Peace of Mind? Manage your (Technical) Debt. An Exploratory Field Study. Published in: 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). doi:10.1109/ESEM.2017.53
Griffith, I., Taffahi, H., Izurieta, C., & Claudio, D. (2015). A simulation study of practical methods for technical debt management in agile software development. Proceedings of the Winter Simulation Conference 2014. doi:10.1109/WSC.2014.7019961
Guo, Y., Spínola, R., & Seaman, C. (2016). Exploring the costs of technical debt management - a case study. Empirical Software Engineering, 21(1), pp. 159–182. doi:https://doi.org/10.1007/s10664-014-9351-7
Kniberg, H. (2014). Spotify engineering culture. (Spotify) Accessed on: Oct/30/2020, Available: [link]
Kruchten, P., Nord, R., & Ozkaya, I. (2012). Technical Debt: From Metaphor to Theory and Practice. IEEE Software, 29(6), pp. 18-21. doi:10.1109/MS.2012.167
Larman, C., & Vodde, B. (2010). Practices for Scaling Lean & Agile Development: Large, Multisite, and Offshore Product Development with Large-Scale Scrum. Addison-Wesley Professional.
Lave, J., & Wenger, E. (1991). Situated Learning: Legitimate Peripheral Participation.
Martini, A., & Bosch, J. (2016). An Empirically Developed Method to Aid Decisions on Architectural Technical Debt Refactoring: AnaConDebt. 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).
Martini, A., Bosch, J., & Chaudron, M. (2014). Architecture Technical Debt: Understanding Causes and a Qualitative Model. 2014 40th EUROMICRO Conference on Software Engineering and Advanced Applications.
Martini, A., Fontana, F. A., Biaggi, A., & Roveda, R. (2018). Identifying and Prioritizing Architectural Debt Through Architectural Smells: A Case Study in a Large Software Company. Springer International Publishing. doi:https://doi.org/10.1007/978-3-030-00761-4_21
Mo, R., Snipes, W., Cai, Y., Ramaswamy, S., Kazman, R., & Naedele, M. (2018). Experiences applying automated architecture analysis tool suites. ACM/IEEE International Conference on Automated Software Engineering (ASE 2018), pp. 779–789. doi:10.1145/3238147.3240467
Nord, R., Ozkaya, I., Kruchten, P., & Gonzalez-Rojas, M. (2012). In Search of a Metric for Managing Architectural Technical Debt. 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture, pp. 20-24. doi:10.1109/WICSA-ECSA.212.17
Paasivaara, M., & Lassenius, C. (2014). Deepening Our Understanding of Communities of Practice in Large-Scale Agile Development. doi:10.1109/AGILE.2014.18
Rios, N., Mendonça, M., & Spínola, R. (2018). A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Information and Software Technology, 102, pp. 117-145. doi:https://doi.org/10.1016/j.infsof.2018.05.010
Schmid, K. (2013). A Formal Approach to Technical Debt Decision Making. QoSA '13 Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures, pp. 153-162. doi:10.1145/2465478.2465492
Seaman, C., Guo, Y., Zazworka, N., Shull, F., Izurieta, C., Cai, Y., & Vetrò, A. (2012). Using technical debt data in decision making: Potential decision approaches. 2012 Third International Workshop on Managing Technical Debt (MTD). doi:10.1109/MTD.2012.6225999
Sharma, T., Suryanarayana, G., & Samarthyam, G. (2015). Challenges to and Solutions for Refactoring Adoption. IEEE Software, 32(6), pp. 44-51.
Smite, D., Moe, N. B., Floryan, M., Levinta, G., & Chatzipetrou, P. (2020). Spotify guilds. 63(3), pp. 56–61. doi:https://doi.org/10.1145/3343146
Smite, D., Moe, N. B., Levinta, G., & Floryan, M. (2019). Spotify Guilds: How to Succeed With Knowledge Sharing in Large-Scale Agile Organizations. 32(2), pp. 51-57. doi:10.1109/MS.2018.2886178
Spínola, R., Vetrò, A., Zazworka, N., Seaman, C., & Shull, F. (2013). Investigating technical debt folklore: Shedding some light on technical debt opinion. 2013 4th International Workshop on Managing Technical Debt (MTD). doi:10.1109/MTD.2013.6608671
Tom, E., Aurum, A., & Vidgen, R. (2013). An exploration of technical debt. Journal of Systems and Software, 86(6), pp. 1498-1516. doi:https://doi.org/10.1016/j.jss.2012.12.052
Wenger, E., & Wenger-Trayner, B. (2015). Introduction to communities of practice. A brief overview of the concept and its uses. Accessed on: Oct/30/2020, Available: [link]
Wenger, É., McDermott, R. A., & Snyder, W. (2002). Cultivating Communities of Practice: A Guide to Managing Knowledge. Harvard Business Press.
Wolek, F. (1999). The managerial principles behind guild craftsmanship. 5(7). doi:10.1108/13552529910297460
Yuanfang, C., & Kazman, R. (2019). DV8: Automated Architecture Analysis Tool Suites. IEEE/ACM International Conference on Technical Debt (TechDebt), pp. 53-54. doi:10.1109/TechDebt.2019.00015
Zengyang, L., Avgeriou, P., & Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, pp. 193–220. doi:10.1016/j.jss.2014.12.027
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2023 Thober Detofeno, Andreia Malucelli, Sheila Reinehr
This work is licensed under a Creative Commons Attribution 4.0 International License.