ebook img

Technical Debt Management in the Context of Agile Methods in Software Development Graziela PDF

206 Pages·2017·16.97 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Technical Debt Management in the Context of Agile Methods in Software Development Graziela

Technical Debt Management in the Context of Agile Methods in Software Development Graziela Simone Tonin THESIS PRESENTED AT INSTITUTE OF MATHEMATICS AND STATISTIC OF THE UNIVERSITY OF SÃO PAULO TO OBTAIN THE TITLE OF DOCTOR IN SCIENCE Program: Computer Science Advisor: Prof. Dr. Alfredo Goldman Co-advisor: Prof. Ph.D. Carolyn Seaman This research was supported by Fapesp - Brazil proc.2011/23470-7, CNPQ - Brazil proc. 555595/2010-2, and IBM proc.207731/2014-4 São Paulo, March, 2018 Technical Debt Management in the Context of Agile Methods in Software Development The original version of the Ph.D. thesis in Computer Science presented by the candidate Graziela Simone Tonin to a judging committee. Technical Debt Management in the Context of Agile Methods in Software Development The original version of the Ph.D. thesis in Computer Science presented by the candidate Graziela Simone Tonin to a judging committee. Doctoral Thesis Committee: • Prof. Ph.D. Carolyn Seaman (Co-Advisor) - (UMBC - Department of Information Systems) - USP - University of São Paulo • Prof. Ph.D. Damian Andrew Tamburri - POLIMI - Department of Electronics, Information, and Bioengineering • Prof. Dr. Eduardo Guerra - INPE - Associated Laboratory for Computing and Applied Mathematics • Prof.Dr.GuilhermeHortaTravassos-UFRJ-SystemsEngineeringandComputer Science Program • Prof. Ph.D. Xiaofeng Wang - UNIBZ - Faculty of Computer Science Abstract TONIN,G.S. Technical Debt Management in the Context of Agile Methods in Software Development. Thesis (PhD) - Institute of Mathematics and Statistics, University São Paulo, São Paulo, 2018. The technical debt field covers an critical problem of software engineering, and this is one of the reasons why this field has received significant attention in recent years. The technical debt metaphor helps developers to think about, and to monitor software quality. The metaphor refers to flaws in software (usually caused by shortcuts to save time) that may affect future maintenance and evolution. It was created by Cunningham to improve the quality of software delivery. Many times the technical debt items are unknown, unmonitored and therefore not managed, thus resulting in high maintenance costs throughout the software life-cycle. We conducted an empirical study in an academic environment, during two offerings of a labo- ratory course on Extreme Programming (XP Lab) at University of São Paulo and in two Brazilian Software Companies (Company A and B). We analyzed thirteen teams, nine in the Academy and four in the Companies environment. The teams had a comprehensive lecture about technical debt and several ways to identify and manage technical debt were presented. We monitored the teams, performed interviews, did close observations and collected feedback. The obtained results show that the awareness of technical debt influences team behavior. Team members report thinking and discussing more on software quality after becoming aware of techni- cal debt in their projects. We identified some impacts on the teams and the projects after having considered technical debt. A conceptual model for technical debt management was created includ- ing ways of how identifying, monitoring, categorizing, measuring, prioritizing, and paying off the technical debt. A few approaches and techniques for the technical debt management, identification, monitoring, measure, and payment are also suggested. Keywords: Technical Debt, Technical Debt Management, Technical Debt Awareness, Identifying Technical Debt, Monitoring Technical Debt, Technical Debt Impact, Software Quality. i Resumo TONIN, G. S. Gerenciamento de Dívida Técnica no Contexto de Desenvolvimento de Software Ágil. Thesis (Doctorate Degree) - Instituto de Matemática e Estatística, Universidade de São Paulo, São Paulo, 2018. A metáfora de dívida técnica engloba um importante problema da engenharia de software e essa é uma das razões pelas quais este campo tem recebido uma grande atenção nos últimos anos. Essa metáfora auxilia os desenvolvedores de software a refletirem sobre e a monitorarem a qualidade de software.Ametáforaserefereafalhasnosoftware(geralmentecausadasporatalhosparaeconomizar tempo) que podem afetar a futura manutenção e evolução do mesmo. A metáfora foi criada por Cunningham com o objetivo de melhorar a qualidade das entregas de software. Muitas vezes as dívidas técnicas não são conhecidas, monitoradas e nem geridas, resultando em um alto custo de manutenção ao longo do ciclo de vida do software. Logo, conduziu-se um estudo empírico na academia, durante duas ofertas da disciplina de Pro- gramação Extrema (XP Lab) na Universidade de São Paulo e em duas empresas Brasileiras de de- senvolvimento de software (Empresa A e B). Foram analisados treze times, sendo nove na academia e quatro nas empresas. Os times tiveram uma apresentação sobre dívida técnica e foram apresen- tadas algumas sugestões de abordagens para gerir dívida técnica. Monitorou-se os times, foram realizadas entrevistas, observações fechadas e informações foram coletadas. Os resultados mostraram que considerar dívida técnica influenciou o comportamento dos times. Eles reportaram que após considerar dívida técnica passaram a refletir e discutir mais a qualidade do software. Identificou-se alguns impactos nos times e nos projetos depois de considerarem dívida técnica. Um modelo conceitual para gestão de dívida técnica foi criado, incluindo formas, técnicas e abordagens de como identificar, monitorar, categorizar, medir, priorizar e pagar os itens de dívida técnica. Palavras-chave: Dívida Técnica, Gestão de Dívida Técnica, Consciência de Dívida Técnica, Iden- tificação de Dívida Técnica, Monitoramento de Dívida Técnica, Impacto de Dívida Técnica, Qual- idade de Software. ii Acknowledgments My sincere gratitude to everyone who, in any way, has been part of my life at this important moment. People who have supported and helped me along the way. I would like to thank my advisor, Professor Alfredo Goldman, for his relentless support in all these years. For encouraging me and opening doors so that I could achieve my objective. Professor Alfredo, who is a brilliant scientist, has taught me so much more than science and technical debt, he has taught me what true advisor is like. He did everything in his power to help me win awards, like the IBM Fellowship, attend renowned scientific summits and never stop learning. Beyond it all, he was always concerned about my study-life balance. Professor, thank you so much for your support, tips, suggestions, advice, and proofreading. I am forever thankful to you. I would also like to express my gratitude to my co-advisor, Professor Carolyn Seaman, for the unconditional support troughtout my PhD, especially when we worked together at UMBC. She made me feel warm and at home even in negative temperatures, and despite being so far from home. I am grateful to you and your amazing family. Working with you every day is having the opportunitytobeinspired,evolveandlearn,whilestandingnexttoabrilliantmindandabigheart. Meeting you was one of the best aspects of my PhD and what an honor it was to work with you. Thank you so much for your support, tips, advice, suggestions, and proofreading. I will be forever grateful to you for teaching me and inspiring with so much dedication and love. Dear advisor and co-advisor, you are not just excellent advisers, you inspire me. It is a privilege to have had you on my journey. A big thanks to the Professors who accepted to contribute to this research as a member of the Thesis committee. Thank you for sharing your knowledge and experience at this very important moment in my life. Thank you so much, Professors PhD. Damian Andrew Tamburri, Dr. Eduardo Guerra, Dr. Guilherme Horta Travassos and PhD. Xiaofeng Wang. I truly admire your work. A big thanks to the Federal University of Fronteira Sul and to the magnificent Dean Professor JaimeGioloforauthorizingmyabsencewhileIwasworkingonmythesis.Theheadsofdepartments Rosane Binotto and Lísia Regina Ferreira for approving and encouraging the training and learning of our professors. A big thanks to the current and former coordinators of the Computer Science course for always collaborating to make it possible and providing a compatible schedule, and to all the colleagues who supported me, encouraged and worked harder and longer so that I could focus on my thesis. A special thank you to Professor Dr. Raquel Pegoraro, who gave me all support since I started to UFFS. A big thanks to the colleagues and friends I made at USP, who gave me support, working hard, sharing their knowledge and being crucial partners on this journey. A special thanks to the English Teacher and Proofreader, who gave me such essential support, working hard, so that I could delivery my best. My affection and gratitude. iii iv A special thanks to my parents, my true heroes, who, by example, taught me to never give up on my dreams, even at difficult times. Despite not having the opportunity to study, they always encouraged and supported me unconditionally in the pursuit of my dreams and never let me give up the knowledge. Today, if I have the opportunity to achieve the highest level of knowledge it is because of the many years you have worked hard on the farm so that I could have the privilege of dedicating to my studies. This achievement is a tribute to you. I love you! To my sisters who have always supported me and have been worried about my well-being to endure the hardships of life. Thank you so much! I love you both! To my brother, sister-in-law and the little nephew and niece who even though live so far away but are always rooting for my success. My little niece, this brilliant mind that inspires and motivates me to go beyond. Thank you all. Family, I love you all and without your support, none of this would have been possible. My aunt Nair, uncle Jacir, godfathers Glaucia and Ivan, cousins Enriete, Everton and Tuilo, and all their lovely family who take care of me in important things in life that I often can not care. Thank you for being my daily support and making me strong to move forward. You were instrumental in making this achievement possible. My gratitude! I love you! To my grandparents, those who support me and protect me from the skies, and especially to my grandmother Alfreda, and the grandfather Alcides, who in his 93 years gives us the privilege of learningsomuchbysharinghiswisdom.GrandFawhatagreatexampleyouare.Iwantyoutoknow I always follow your advice and teachings – and as you say, “You know”. I love you grandfather. A big thank you to my cousins, uncles, aunts, for supporting me and making my days lighter. My gratitude. I love you! To my friends, who sent me many messages, who support me, forgive my absence, and give me the most invigorating hugs: thank you, thank you and thank you! To those who are close and those who live far, thank you for your unconditional love and support, you are my example. You are the lightness, joy and strength that allow me to rise and move on. I love you! A very special thank you to the love of my life, Michel Miotto Barbosa, this brilliant mind that inspires me. You are so genial and your heart is so human. You are incredible, is my mentor and guide, a true idol. There are no words to describe how fantastic you have been on this long journey. Michel always absolutely and unconditionally supports and encourages my dreams, either by sponsoring them or by turning the night by my side just to ensure I am well.Your support makes a world of difference. Michel is always worried – often more than myself - if I am well fed, if I am warm in the American winter, if I am fine, whether I need a ’mate’, a coffee or a hug. Thank you for understanding and enduring my absence, the stressful days and for always being there. No matter where I am following my dreams, I know that somewhere in the world I have there is an incredible man that I can count on unconditionally. How could I not fall in love with you every day?! This achievement not only is dedicated to you, it has your fundamental participation, this is your achievement too, my love. You are the best! Thank you! I love you! In particular, I dedicate this thesis to the memory of two dear friends, Tania Mara Ferla and Daniel Dalabona, I miss you guys. Two incredible humans now shining from the sky. A special thank you to those who spend some time sharing their knowledge and discussing the models and results of this research, especially to Joseph Yoder, a bright mind. To you all!!! My affection and gratitude! Contents Acknowledgments iii List of Abbreviations ix List of Figures x List of Tables xiii 1 Introduction 1 1.1 Research Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Research Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Research Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Thesis Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Technical Debt 8 2.1 The Technical Debt Metaphor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Technical Debt Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Technical Debt Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Incurring Technical Debt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Impact of Technical Debt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6 Technical Debt Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.6.1 What Is Not Technical Debt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.6.2 Technical Debt Prevention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.6.3 Technical Debt Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.6.4 Technical Debt Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.6.5 Technical Debt Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.6.6 Technical Debt Communication . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.6.7 Tools to Support Technical Debt Management . . . . . . . . . . . . . . . . . . 36 2.6.8 Technical Debt Prioritization and Decision Making . . . . . . . . . . . . . . . 37 2.6.8.1 Technical Debt Payment . . . . . . . . . . . . . . . . . . . . . . . . 38 2.7 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3 Research Method and Design 41 3.1 Research Method and Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.1 Case Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 v CONTENTS vi 3.1.2 Action Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.2 Methods and Techniques of Data Collection and Analysis . . . . . . . . . . . . . . . 43 3.2.1 Method of Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.3 Research Steps Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.4 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4 Classroom Studies 49 4.1 The Extreme Programming Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.1.1 Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.1.2 The Informative Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.2 Research Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2.1 Technical Debt Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2.1.1 Extreme Programming Laboratory 2013 Offering . . . . . . . . . . . 53 4.2.1.2 Extreme Programming Laboratory 2014 Offering . . . . . . . . . . . 54 4.2.2 Interviews and questionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.2.1 Extreme Programming Laboratory 2013 Offering . . . . . . . . . . . 54 4.2.2.2 Extreme Programming Laboratory 2014 Offering . . . . . . . . . . . 55 4.2.2.3 Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.3.1 Extreme Programming Laboratory 2013 Offering . . . . . . . . . . . . . . . . 56 4.3.2 Extreme Programming Laboratory 2014 Offering . . . . . . . . . . . . . . . . 58 4.3.3 Open Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.3.4 Axial Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.3.5 Selective Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.3.6 Tool-Based Static Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . 64 4.3.7 Threats to the Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.4 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5 Company A Studies 68 5.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.1.1 Study 01. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.1.1.1 Research Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.1.1.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.1.2 Study 02. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.1.2.1 Research Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.1.2.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.1.2.2.1 The Results of Data Analysis with Grounded Theory . . . 78 5.1.2.2.1.1 Open Coding . . . . . . . . . . . . . . . . . . . . . . 78 5.1.2.2.1.2 Axial Coding . . . . . . . . . . . . . . . . . . . . . . 78 5.1.2.2.1.3 Selective Coding . . . . . . . . . . . . . . . . . . . . 80 5.1.2.2.2 The Proposed Template . . . . . . . . . . . . . . . . . . . . 80 5.1.2.2.3 The Conceptual Model for Technical Debt Management . . 82 5.1.3 Threats to the Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.2 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 CONTENTS vii 6 Company B Studies 85 6.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.1.1 Team A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.1.2 Team B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.1.3 Research Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.1.3.1 Team A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.1.3.1.1 First Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.1.3.1.2 Second Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.1.3.1.3 Third Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.1.3.2 Team B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.1.3.2.1 First Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.1.3.2.2 Second Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.1.3.2.3 Third Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.1.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.2 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7 Conceptual Model for Technical Debt Management 97 7.1 The Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.1.1 Technical Debt Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.1.2 Technical Debt Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.1.2.1 Comparison with the Models . . . . . . . . . . . . . . . . . . . . . . 107 7.1.3 Framework for Technical Debt Management . . . . . . . . . . . . . . . . . . . 107 7.1.4 Framework to Manage and Reduce Technical Debt . . . . . . . . . . . . . . . 108 7.1.5 Conceptual Model of Technical Debt . . . . . . . . . . . . . . . . . . . . . . . 109 7.1.6 Technical Debt Management Framework . . . . . . . . . . . . . . . . . . . . . 110 7.1.7 Managing Architectural Technical Debt: A Unified Model . . . . . . . . . . . 112 7.1.8 Technical Debt Management Cycle . . . . . . . . . . . . . . . . . . . . . . . . 113 7.1.9 Summary of the Comparison of the Models . . . . . . . . . . . . . . . . . . . 114 7.1.9.1 Threats to the Validity . . . . . . . . . . . . . . . . . . . . . . . . . 116 7.2 Chapter Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 8 Conclusion 118 8.1 Summary of the Findings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 8.2 Discussion of findings by each research question. . . . . . . . . . . . . . . . . . . . . 120 8.2.1 RQ1 (Company A): Which decisions may motivate a team to incur technical debt in agile software development projects? . . . . . . . . . . . . . . . . . . . 121 8.2.2 RQ2 & RQ6 (Company A and B): What types of technical debt items did the agile software development team incur? . . . . . . . . . . . . . . . . . . . 121 8.2.3 RQ3 (Company A): What is the impact on an agile software development team of the technical debt in their project? . . . . . . . . . . . . . . . . . . . 121 8.2.4 RQ4 & RQ7 (Company A and B): Which techniques and tools can agile software development teams use to identify, monitor and manage technical debt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Description:
TONIN, G. S. Technical Debt Management in the Context of Agile Methods in Software high maintenance costs throughout the software life-cycle. A little debt speeds development so long as it is paid back promptly has to comply with these estimates; change in team makeup, after the release
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.