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

Loading...
Thumbnail Image

URL

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