Technical Debt Guild

managing technical debt from code up to build

Authors

DOI:

https://doi.org/10.5753/jserd.2023.2417

Keywords:

Technical Debt, Technical Debt Management, Community of Practice, Technical Debt Guild

Abstract

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

Download data is not yet available.

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 http://www.aral.com.au/resources/guide.html

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: https://engineering.atspotify.com/2014/03/27/spotify-engineering-culture-part-1/?fb_comment_id=278872278947916_360914170743726

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:http://wenger-trayner.com/wp-content/uploads/2015/04/07-Brief-introduction-to-communities-of-practice.pdf

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

2023-01-17

How to Cite

Detofeno, T., Malucelli, A., & Reinehr, S. (2023). Technical Debt Guild: managing technical debt from code up to build. Journal of Software Engineering Research and Development, 11(1), 1:1 – 1:15. https://doi.org/10.5753/jserd.2023.2417

Issue

Section

Research Article