Scrum中的一个挑战是如何将QA融入到该过程中。当然,在Sprint期间,QA会与开发人员一起处理每个单独的用户故事,但在发布到生产环境之前,让QA有时间进行完整的回归和负载测试呢?
我看到了两种方法:
- 在Sprint的最后一天发布到生产环境; 或者
- 在Sprint结束后一周发布到生产环境
这两种方法都存在着挑战,所以我想知道大多数公司在每个Sprint发布时都做些什么?
Scrum中的一个挑战是如何将QA融入到该过程中。当然,在Sprint期间,QA会与开发人员一起处理每个单独的用户故事,但在发布到生产环境之前,让QA有时间进行完整的回归和负载测试呢?
我看到了两种方法:
这两种方法都存在着挑战,所以我想知道大多数公司在每个Sprint发布时都做些什么?
这两种方法都有挑战,所以我想知道在每个Sprint发布新版本的大部分公司采用哪种方法?
我认为,Scrum 的最终目标是能够在 Sprint 结束后发布一个新版本增量。换句话说,Sprint 的结果是一个可发布的增量(而不是已发布的增量)。
因此,选项#1 对我来说有点太早了(我们的产品待办事项是在 Sprint 结束之前完成的,但在演示之前,我们不包括“发布到生产环境”在我们的完成定义中,因为这不是我们控制的范围,这是另一个团队的工作)。
而且,我认为选项#2 意味着您没有在“DONE DONE”中包含完成所有必需步骤所必需的所有内容。我绝对不是说这很容易做到,并且很可能需要一些时间才能真正包括达到可发布状态的所有必需步骤,并进行必要的组织变更以实现目标。
就我个人而言,我仍然没有真正达到这种流畅的水平(在每个 Sprint 发布),虽然 QA 的一部分确实是在每个 Sprint(IST、UAT)期间完成的,但我们实际上是每 4 个 2 周的 Sprint 才发布一次,最后一个 Sprint 是一种特殊的发布 Sprint,其中包括“特殊”的产品待办事项,例如执行负载测试、如有必要进行优化(尽管现在没有太多坏惊喜)、编写文档(供生产团队和用户使用)。缩短发布周期需要进行更深入的变革,目前无法实现,在我们的情况下也不希望实现。当然,您的情况可能不同。
从商业角度来看,每次迭代结束时不发布是一个好的实践。
如果我可以谦虚地假设您在软件行业,那么您的问题的答案或解决方案将是使用企业Scrum模型,具有坚实的项目发布计划和项目时间表。
应该有一个运营支持Scrum团队,其中可能包括DB管理员、应用服务器管理员、高级QA人员和高级生产支持分析师。这个团队可能负责开发Scrum团队的完整QA回归和负载测试、发布管理、代码部署和其他运营支持活动。另一方面,开发Scrum团队只需生成可发布的软件并将其放在操作支持团队的架子上。
在您的特定情况下,操作支持团队将在其产品待办事项列表中拥有回归测试和负载测试活动,以执行由开发团队制作的存储产品的任务 - 请注意,回归测试理想情况下应该是开发过程的一部分!
现在,每个Sprint都发布的组织需要使操作团队落后于开发团队一两周,因此例如,如果Scrum开发团队正在处理Release 2.0代码,则操作支持团队应该部署Release 1.0代码,而开发团队在2周前完成了“搁置”。
底线是需要制定正确的时间表来规划发布计划。在Scrum中,可能存在这样的误解,认为每个Scrum团队都有自己的发布计划,因为它们是自我管理的,会执行自己的部署等等,这在某种程度上是正确的,但团队的计划还需要与项目范围内的发布计划相适应,并相应地安排时间表。谢谢,Sid Telang。认证Scrum Master