Embracing Technical Debt, from a Startup Company Perspective

Software startups are typically under extreme pressure to get to market quickly with limited resources and high uncertainty. This pressure and uncertainty is likely to cause startups to accumulate technical debt as they make decisions that are more focused on the short-term than the long-term health of the codebase. However, most research on technical debt has been focused on more mature software teams, who may have less pressure and, therefore, reason about technical debt very differently than software startups. In this study, we seek to understand the organizational factors that lead to and the benefits and challenges associated with the intentional accumulation of technical debt in software startups. We interviewed 16 professionals involved in seven different software startups. We find that the startup phase, the experience of the developers, software knowledge of the founders, and level of employee growth are some of the organizational factors that influence the intentional accumulation of technical debt. In addition, we find the software startups are typically driven to achieve a "good enough level," and this guides the amount of technical debt that they intentionally accumulate to balance the benefits of speed to market and reduced resources with the challenges of later addressing technical debt.

[1]  Tony Gorschek,et al.  Software development in startup companies: A systematic mapping study , 2014, Inf. Softw. Technol..

[2]  Rodrigo O. Spínola,et al.  Exploring the costs of technical debt management – a case study , 2016, Empirical Software Engineering.

[3]  Tony Gorschek,et al.  Exploration of Technical Debt in Start-ups , 2017, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[4]  Richard T. Vidgen,et al.  An exploration of technical debt , 2013, J. Syst. Softw..

[5]  Juan Garbajosa,et al.  Software Startups - A Research Agenda , 2016, e Informatica Softw. Eng. J..

[6]  Zadia Codabux,et al.  Managing technical debt: An industrial case study , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

[7]  Ipek Ozkaya,et al.  Managing Technical Debt in Software Engineering (Dagstuhl Seminar 16162) , 2016, Dagstuhl Reports.

[8]  Jan Bosch,et al.  Technical Debt tracking: Current state of practice: A survey and multiple case study in 15 large organizations , 2018, Sci. Comput. Program..

[9]  M. Crowne,et al.  Why software product startups fail and what to do about it. Evolution of software product development in startup companies , 2002, IEEE International Engineering Management Conference.

[10]  Jan Bosch,et al.  On the interest of architectural technical debt: Uncovering the contagious debt phenomenon , 2017, J. Softw. Evol. Process..

[11]  Jan Bosch,et al.  Investigating Architectural Technical Debt accumulation and refactoring over time: A multiple-case study , 2015, Inf. Softw. Technol..

[12]  Paul A. Gompers Grandstanding in the venture capital industry , 1996 .

[13]  Martin Reddy Chapter 4 – Design , 2011 .

[14]  John L. Campbell,et al.  Coding In-depth Semistructured Interviews , 2013 .

[15]  Stanley M. Sutton The Role of Process in a Software Start-up , 2000, IEEE Softw..

[16]  Marcos Chicote Startups and Technical Debt: Managing Technical Debt with Visual Thinking , 2017, 2017 IEEE/ACM 1st International Workshop on Software Engineeting for Startups (SoftStart).

[17]  Tony Gorschek,et al.  Software Development in Startup Companies: The Greenfield Startup Model , 2016, IEEE Transactions on Software Engineering.

[18]  Yuanfang Cai,et al.  Using technical debt data in decision making: Potential decision approaches , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[19]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[20]  Robert L. Nord,et al.  Technical debt: towards a crisper definition report on the 4th international workshop on managing technical debt , 2013, SOEN.

[21]  Naveed Ikram,et al.  Architecting Activities Evolution and Emergence in Agile Software Development: An Empirical Investigation - Initial Research Proposal , 2016, XP.

[22]  Jesse Yli-Huumo,et al.  The Relationship Between Business Model Experimentation and Technical Debt , 2015, ICSOB.

[23]  Daniela E. Damian,et al.  The Evolution of Requirements Practices in Software Startups , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[24]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[25]  Robert L. Nord,et al.  Reducing Friction in Software Development , 2016, IEEE Software.