A process-driven framework to analyze and measure technical debt (td) in software start-ups
Abstract
Software start-ups are young companies that aim to develop and deliver their products on the market quickly with the few resources they have. These start-ups have been characterized as companies that work under harsh conditions and tight competition from similar software start-ups and established software companies for stiff market share. Software start-ups always use various ad hoc software development processes and practices to develop their products. During their product development process, they incur many shortcuts and compromises to catch up with time and fewer resources to hit the market notch. The accumulation of these shortcuts and compromises made during the product development process is referred to as "Technical Debt (TD)" which can result in increased complexity, reduced maintainability, and hindered software quality of these software startups. Objective: In this research study, we aimed to explore technical debt in software development processes and practices used by start-ups. Our objective was to design and evaluate a process-driven framework to analyze and measure technical debt (TD) in start-up software development practices. Methodology: We conducted an explanatory empirical case study using a mixed-methods research approach guided by in-depth semi-structured interviews from 16 software start-ups in hubs and four(4) start-ups outside hubs in Kampala - Uganda on TD in their software development processes. We conducted an online survey of 34 software start-ups that evaluated and validated the measurements of technical debt in software development processes used by start-ups. Results: We found 10 software development processes with technical debt. We identified a total of 27 practices that lead to technical debt in software development processes used by start-ups. The software development processes found with their identified technical debt practices were mapped to the standard software development life cycle (SDLC) to represent technical debt in software start-ups. A total of 20 measurements for technical debt in software start-ups emerged from the study. These measurements were evaluated and validated by software start-ups. 18/20 technical debt measurements passed the set precedence and were mapped to the technical debt representation in start-ups to develop a process-driven framework that analyses and measures technical debt in software start-ups. Contribution: This empirical study contributes to 1) the knowledge of technical debt and its measurements in software start-up development processes, 2) a new perspective on the representation of technical debt in software start-ups, and 3) a framework that software start-ups can bench-mark on to manage and control technical debt in their software idevelopment processes and inform further research. Suggested Future work: Our findings can be used to investigate why software start-ups tend to incur more technical debt practices as they grow from early stage to maturity. We suggest future work to explore and conduct a comparative analysis with similar frameworks for both software start-ups and mature software organizations of technical debt in software development processes.