敏捷开发

通过改进团队流程最大限度发挥Scrum的优势


本文是Scrum Mastery系列文章的第三篇。第一篇文章介绍了Scrum Mastery的4个维度。第二篇文章探讨了如何打造强大的团队认同感。本文将讲述如何改进团队流程。
团队如何最大限度地发挥Scrum和敏捷的优势?
回想一下,Scrum团队在Scrum的框架内定义了自己的流程。这其中包括方法、工具和互动以及如何履行Scrum角色的职责、如何使用工件和事件等。
如何确定团队做什么以及怎么做?
从产品管理方法到研发及质量管理方法。从团队的沟通协作方式到团队成员如何有效利用团队知识提升自己的技能及能力等等。
在充满不确定性且不断变化的环境中交付复杂的产品会涉及到很多方面。因此,我们尝试简化过程并聚焦具体的行动。 下面是改进团队流程的5个步骤,希望能对你的团队有所帮助:

第1步:增加透明度的深度和广度

要改进团队流程,就一定要有透明度。如果只是要“遵守规则”,Scrum只会提供最低程度的经验论。
而只有当团队真正接受经验论时,才更有可能改进流程。最重要的是,团队必须要了解其流程如何影响结果。
以下是团队需要探讨的一些问题:

  • 我们如何决定产品做什么?这些决定如何实现透明化并且需要对谁透明?
  • 在任何特定时刻,我们如何理解团队在实现增量目标方面的进展?(这可能是每日目标,Sprint目标或更长期的目标。)
  • 就我们所做的每一项工作而言,什么才是有价值的输出?怎样才能让它更有价值?
  • 怎样打造高品质的产品?目前的产品质量如何?发展趋势如何?
  • 哪些因素会让结果更完美?哪些因素会导致不那么完美的结果?
  • 我们提出了哪些假设?这些假设如何验证?

第2步:使用精简原则

精益软件开发有七个原则。虽然这七个原则都很有用,但在这里我做了简化。我的同事Simon Reindl向我介绍了他所谓的精简原则。

  • 价值最大化
  • 浪费最小化
  • 流动最大化

这三个原则是相互关联的。流动最大化意味着我们尽可能快的推动项目(即价值)在整个过程中的流动,同时还要保证质量和客户满意度。摒弃浪费可以帮我们做到这点。因为浪费从来不会给客户增加价值。
现在,从精简原则的视角来评估整个流程。寻找资源浪费的迹象和能将价值流最大化的机会。常见的资源浪费来源如下:

  • 开发出客户不想要或者不会使用的产品
  • 心有旁骛、不断切换任务
  • 半成品
  • 质量差的产品
  • 不必要或无效的流程和文档

第3步:期待变化,寻求更好(即检验和调整)

团队使用的方法和工具将受到产品类型、产品技术平台、产品使用环境、产品使用者及使用方式、监管与法律环境、市场走向、不断变化的业务需求等因素的影响。
所以说,涉及的因素很多。而且大部分因素会随着时间推移而发生改变。因此,团队在检验和调整他们的工作内容、工作原因、工作方法以及工作收益时必须保持警惕。
世界各地的产品开发社区在不断创造和共享新的方法和工具,因此保持联系并不断学习非常重要。
实际上,团队通常需要不断改进和发明新的方法和工具,来满足他们的独特需求。在复杂的工作中,并没有所谓的最佳方法。最佳方法是团队当前情况下的最优方法,而一个月后随着团队情况的变化,最优方法也会有所不同。
参与推动领域或行业发展。

第4步:专注于交付“完成”增量

将1-3步应用到交付“完成”增量中。
Scrum的全部意义在于“完成”。可发布产品的增量有利于降低风险,优化可预测性,同时体现敏捷业务的优势。“完成”是检验进度的唯一真正标准。
如果你没有在每个Sprint结束之前交付至少一个“完成”增量,那你就要注意了,这就是你需要集中精力做到的一点。
那么如何改进流程以达到“完成”状态呢?
当然,改进流程的方法有很多。但是,说到实现“完成”状态,这里有很多共性的因素需要我们考虑。因此,我和Simon Reindl套用1-3步中的方法将需要探索的共性因素的范围缩小,简化成了7个特定领域。这7个领域刚好可以帮助团队踏上探索和改进流程之旅:

  • 明确定义什么情况下才算“完成”
  • 有效使用Sprint目标
  • 尽量在Sprint周期结束前“完成”PBI(Product Backlog Item)
  • 保证质量
  • 解决技术债务问题
  • 识别并消除阻碍
  • 不断提升团队技能、知识和能力

第5步:不要满足于触手可及的目标

快速获得小范围的成功是件好事。可以通过改进一些简单的流程获得相对稳定的收益,甚至可以通过局部优化获得一些益处。只是团队需要在一段时间内超越这些触手可及的目标,这个时候,团队需要的就是系统性的优化而不是局部优化(这也可能意味着要颠覆目前团队或产品架构)。
分享一个实例吧。我曾与一个Scrum团队合作过,这个团队没有针对庞大且复杂产品的自动化测试。因为实施自动化测试需要大量工作且成本很高。有很长一段时间,自动化测试作为改进的理念被多次提及,然而,最终这个团队还是选择通过其他途径去提高质量减少浪费。当然,他们确实提高了质量和效率。但是,随着流程的推进每项改进最终获得的收益却越来越少。
终于,他们意识到是时候超越触手可及的目标,寻求更大的利益。他们需要面对来自自动化测试的挑战。由于他们之前在短时间内获得了一些小的成功,所以已经在团队中树立了更强大的团队认同感,准备扩大业务范围(即实施自动化测试)。

总结

Scrum团队要有自己的流程,这一点确实非常重要。当人们觉得自己在某件事上拥有所有权时,他们就会想投入更大精力,获得更好的效果。
改进团队流程是一项持续的工作,永无止境。
你的团队是否能保证在每个Sprint结束时都能构建一个“完成”增量?团队以何种方式表明他们对自己的流程拥有所有权?
团队流程的哪些方面不那么透明,而且可能被忽略了?您希望采取哪些步骤,改进团队流程?

原文作者: Stephanie Ockerman
翻译:Worktile翻译
校对:吴倩倩
转载请注明出处。