State, reasons, and effects of technical debt in a Finnish IoT-domain software project

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2023-03-20
Department
Major/Subject
Software and Service Engineering
Mcode
SCI3043
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
59 + 7
Series
Abstract
Technical debt is a sub-optimal technical solution that has a negative impact on software development in the long term, with possible short-term benefits if taken intentionally. Despite technical debt having caught the attention of researchers during the last decade, it is still quite an unfamiliar subject for practitioners. Especially technical debt management is rarely practiced. This thesis presents a case study that investigated the technical debt in the context of one software project. State and effects of technical debt were studied with two surveys for the developers. Reasons of technical debt were investigated with group interviews, where root cause analysis method was used to examine the most significant debts in detail. It was discovered that the amount of debt is slightly higher than average, with unusually high proportion of architecture debt. Most significant effect of technical debt is the increased effort in development and debugging, causing developers to waste 20-30% of their development time on average. The most common reason for new debt is lack of ownership that causes the structure and quality of various parts of the software to degrade. However, reasons are numerous, and there is no individual cause that could explain most of the debt.

Teknisellä velalla tarkoitetaan heikkolaatuista teknistä toteutusta, josta aiheutuu sovelluskehitykselle pitkän aikavälin haittoja, mutta mahdollisia lyhyen aikavälin hyötyjä, jos velkaa otetaan tietoisesti. Vaikka teknistä velkaa on tutkittu paljon viime vuosikymmenenä, käsite on silti huonosti tunnettu ammatinharjoittajien keskuudessa. Erityisesti teknisen velan hallinta on harvinainen käytäntö alalla. Tässä työssä esitellään tapaustutkimus, jonka tavoitteena oli ymmärtää ohjelmistoprojektin teknistä velkaa. Velan tilaa ja seurauksia kartoitettiin kahdella kyselyllä projektin kehittäjille. Teknisen velan syitä tutkittiin kahdella ryhmähaastattelulla, joissa käytettiin juurisyyanalyysiä muutamien merkittävimpien velkojen yksityiskohtaisempaan tarkasteluun. Projektissa teknistä velkaa on hieman keskimääräistä enemmän, ja erityisesti arkkitehtuurivelan osuus on epätavallisen suuri. Velan merkittävin vaikutus on kasvanut työmäärä: kehittäjät hukkaavat keskimäärin 20 - 30 % työajastaan sen seurauksena. Yleisin syy velan syntymiseen on omistajuuden puute, joka aiheuttaa laadun ja rakenteen heikkenemistä useilla eri sovelluksen osa-alueilla. Syitä on kuitenkin useita, eikä mikään yksittäinen tekijä selitä suurinta osaa velasta.
Description
Supervisor
Vanhanen, Jari
Thesis advisor
Pohja, Mikko
Keywords
technical debt, technical debt management, root cause analysis, exploratory case study
Other note
Citation