我是一个拥有5个团队的开发团队的成员,该团队共有大约40个开发人员。我们遵循Scrum方法,并进行了3周的冲刺。我们有一个持续集成设置(Jenkins),其构建流程需要几个小时(由于进行了广泛的自动化测试)。基本上,开发过程运行良好。
但是,我们观察到进入新的Sprint几天后,我们的构建通常会变得不稳定,并且会一直不稳定,直到Sprint结束“提交停止”为止。这样做的不利影响是,构建步骤步入了管道,尤其是UI- / Webtest 几天没有执行(因为仅在“绿色”构建时触发)。因此,新引入的错误通常仅在冲刺的后期才检测到。
- 每个提交都通过一组基本测试进行验证。验证后,更改将在代码检查(德语)后推送至主版本
- 基本单元测试每30分钟运行一次,持续时间少于10分钟
- 集成测试每2h运行一次,持续时间1h
- UI / Webtest在成功的集成测试中运行,持续时间数小时
取决于谁在冲刺期间负责构建稳定性(每个冲刺都要移交责任),可能会有中间的临时“提交停止”以使构建恢复稳定。
因此,我们想要:
- 我们的开发团队可以在不受阻碍的冲刺期间开发和提交更改
- 如果构建步骤失败,我们将放弃构建过程,因为后续的构建结果意义不大
- 我们的构建过程可为开发人员及时提供质量反馈
给定(2),点(1)和(3)似乎相互矛盾。有没有人有一个很好的做法来应对这个问题?
(我们目前正在松开要点(2),即使在失败的构建步骤中也允许继续构建。我还没有任何反馈意见,这如何影响我们的质量)
谢谢西蒙
several hours
,那就是真正的问题。它表示合并的解决方案太大而又太广泛。您应该寻求对解决方案进行组件化,然后将一小段代码作为程序包(在所有平台上以所有主要语言以一种或另一种方式提供)。因此,任何更改将仅进入组件,并且将被更快地检测到。完整的构建实际上只会将已经组合的组件放在一起,而且速度也会更快。然后,您将只能运行一些测试以确保正确的组件得到解决。