Context: Software start-ups are emerging as suppliers of innovation and software-intensive products. However, traditional software engineering practices are not evaluated in the context, nor adopted to goals and challenges of start-ups. As a result, there is insufficient support for software engineering in the start-up context. Objective: We aim to collect data related to engineering goals, challenges, and practices in start-up companies to ascertain trends and patterns characterizing engineering work in start-ups. Such data allows researchers to understand better how goals and challenges are related to practices. This understanding can then inform future studies aimed at designing solutions addressing those goals and challenges. Besides, these trends and patterns can be useful for practitioners to make more informed decisions in their engineering practice. Method: We use a case survey method to gather first-hand, in-depth experiences from a large sample of software start-ups. We use open coding and cross-case analysis to describe and identify patterns, and corroborate the findings with statistical analysis. Results: We analyze 84 start-up cases and identify 16 goals, 9 challenges, and 16 engineering practices that are common among start-ups. We have mapped these goals, challenges, and practices to start-up life-cycle stages (inception, stabilization, growth, and maturity). Thus, creating the progression model guiding software engineering efforts in start-ups. Conclusions: We conclude that start-ups to a large extent face the same challenges and use the same practices as established companies. However, the primary software engineering challenge in start-ups is to evolve multiple process areas at once, with a little margin for serious errors.
翻译:语境:软件初创企业正成为创新和软件密集型产品的供应源头。然而,传统软件工程实践并未针对初创企业的背景进行评估,也未适应其目标与挑战。因此,在初创企业情境下,软件工程缺乏足够的支持。目标:我们旨在收集与初创企业中工程目标、挑战及实践相关的数据,以确定表征初创企业工程工作的趋势与模式。此类数据有助于研究者更深入地理解目标、挑战与实践之间的关联,进而为未来针对这些目标与挑战设计解决方案的研究提供依据。此外,这些趋势与模式可为从业者在工程实践中做出更明智的决策提供参考。方法:我们采用案例调查法,从大量软件初创企业样本中获取一手、深入的实践经验。通过开放式编码和跨案例分析法来描述并识别模式,并结合统计分析验证研究结果。结果:我们分析了84个初创企业案例,识别出16个共同目标、9个共同挑战及16项常见工程实践,并将这些目标、挑战与实践映射至初创企业的生命周期阶段(初创期、稳定期、成长期与成熟期),从而构建了指导初创企业软件工程工作的演进模型。结论:我们认为,初创企业在很大程度上面临与成熟企业相同的挑战并采用类似的实践。然而,初创企业的主要软件工程挑战在于需同时推进多个流程领域,且容错空间极小。