Background: Start-up companies have emerged as suppliers of innovation and software-intensive products. Small teams, lack of legacy products, experimental nature, and absence of any organizational processes enable start-ups to develop and market new products and services quickly. However, most start-ups fail before delivering any value.
Start-up failures can be attributed to market factors, shortcomings in business models, lack of motivation, or self-destruction, among other reasons. However, inadequacies in product engineering precede any market or business-related challenges and could be a significant contributing factor to start-up failures. At the same time, state-of-the-art software engineering (SE) practices are often neglected by start-ups as inadequate.
At the beginning of this work, SE in start-ups had attracted very little attention from researchers. Thus, there was no coherent view of SE state-of-practice in start-ups and no starting point for a focused investigation.
Objectives: In this thesis, we explore how start-ups practice SE, what specific SE challenges should be addressed, and what new SE practices are needed to support the engineering of innovative software-intensive products and services.
Results: A substantial part of this work is exploratory and aimed to explore SE state-of-practice in start-ups. Our initial findings suggest that start-ups overlook the best SE practices. Teams of a few people working on experimental and straightforward software see no upside of following the best practices. However, late start-ups face substantial challenges as their teams grow and products become more complex. The key difficulties concern installing adequate SE practices supporting collaboration, coordination of work, and management of accumulated technical debt. To support the evolution of engineering practices in start-ups, we propose the start-up progression model outlining engineering goals, common challenges, and useful practices with regards to the start-up life-cycle phases.
Further findings suggest inadequate support for market-driven requirements engineering (MDRE). Specifically, on how to aggregate needs and wishes of a large and loosely defined set of stakeholders who may not be able to articulate their needs and expectations. To address this challenge, we propose a method for the identification and prioritization of data sources and stakeholders in MDRE.
Analyzing SE context in start-ups and other organizations developing innovative and market-driven products, we have found many similarities. While start-ups have challenges, they do not appear to be unique. Thus, most start-up challenges can be addressed by transferring the best practices from other engineering contexts.
Conclusions: We conclude that there is a little need for start-up specific engineering practices. Best software engineering practices are relevant to address challenges in start-ups. The key engineering challenge in start-ups is the management of the evolution of SE practices to match the growing complexity of the product and the organization. Our work also highlights the need for better MDRE practices to support new market-driven product development in both start-ups and other types of organizations.Download thesis