In 2006, Fowler and Foemmel defined ten core Continuous Integration (CI) practices that could increase the speed of software development feedback cycles and improve software quality. Since then, these practices have been widely adopted by industry and subsequent research has shown they improve software quality. However, there is poor understanding of how organizations implement these practices, of the benefits developers perceive they bring, and of the challenges developers and organizations experience in implementing them. In this paper, we discuss a multiple-case study of three small- to medium-sized companies using the recommended suite of ten CI practices. Using interviews and activity log mining, we learned that these practices are broadly implemented but how they are implemented varies depending on their perceived benefits, the context of the project, and the CI tools used by the organization. We also discovered that CI practices can create new constraints on the software process that hurt feedback cycle time. For researchers, we show that how CI is implemented varies, and thus studying CI (for example, using data mining) requires understanding these differences as important context for research studies. For practitioners, our findings reveal in-depth insights on the possible benefits and challenges from using the ten practices, and how project context matters.
翻译:2006年,Fowler和Foemmel界定了10个核心连续整合(CI)做法,这些做法可以提高软件开发反馈周期的速度,提高软件质量。此后,这些做法被业界广泛采用,随后的研究表明,这些做法提高了软件质量。然而,对于各组织如何实施这些做法、开发者认为这些做法带来的益处以及开发者和组织在实施这些做法过程中遇到的挑战,认识不足。在本文件中,我们讨论了对3家中小型公司进行的多案例研究,其中使用了推荐的10个做法的套件。我们利用访谈和活动记录挖掘,了解到这些做法得到了广泛实施,但实施的方式各不相同,这取决于它们所察觉的效益、项目的背景以及组织所使用的CI工具。我们还发现,CI的做法可对软件流程造成新的限制,从而损害反馈周期的时间。我们向研究人员表明,实施CI的方式各不相同,因此,研究CI(例如,利用数据挖掘)需要了解这些差异,作为研究的重要背景。对于从业人员来说,我们的调查结果深刻地揭示了使用10种做法可能带来的益处和挑战,以及项目背景是如何发生的。