如何用Scrum框架开始敏捷开发

如何用Scrum框架开始敏捷开发

Scrum框架的基础是在1986年由Hirotaka Takeuchi和Ikujiro Nonaka在《哈佛商业评论》的一篇文章“新新产品开发游戏”中介绍的。作者描述了管理产品开发的两种方法。有些团队就像接力赛中的运动员,在直线上工作时传递接力棒。其他团队就像参加单一比赛的橄榄球运动员,在必要时来回传递东西。

竹内和野中得出的结论是,美国宇航局阶段性计划计划系统中使用的接力赛方法已经过时。他们表示,橄榄球模式将为企业提供在跨国商业世界中竞争所需的工具。

1993年,杰夫·萨瑟兰 (Jeff Sutherland)、约翰·斯库姆尼奥塔斯 (John Scumniotales)和杰夫·麦肯纳 (Jeff McKenna)在软件公司Easel Corp.尝试开发Scrum软件。1995年,Ken Schwaber和Sutherland与其他人——包括McKenna和Scumniotales——一起发表了一篇题为《SCRUM开发过程》的论文。结果是一个巨大的变化,使开发人员质疑经典的瀑布软件开发模型的有效性。

Sutherland和Schwaber于2020年11月发布了“Scrum指南”的更新版本。该指南包含了Scrum的官方定义。

Scrum和敏捷的关系

敏捷是一种开发和项目规划方法。正如敏捷宣言中所解释的那样,它有一个全面的哲学或框架,它指示了它下面的方法。Scrum是几种敏捷方法之一。

Scrum可以被认为是实现敏捷的一种实用方法。像Scrum一样,敏捷包含一组价值观和原则。开发团队将Scrum整合到他们的敏捷策略中,以增加一层特异性。

敏捷开发的原则之一是让团队成员定期讨论如何提高效率,然后相应地调整他们的行为。Scrum整合了一个正式的过程来帮助团队做到这一点。每天的会议使团队能够反思在接下来的24小时内要做的工作,并根据预期或遇到的障碍改变他们的方法。

敏捷的另一个原则是认识到最好的工作来自于自我指导的团队。Scrum master在这方面发挥了作用。它们给予团队完成工作所需的东西,以及设定自己路线的自由。然后,他们充当服务型领导,指导团队解决问题、实现目标和解决冲突。

Scrum的支柱和价值观

Scrum的三大支柱是适应、检查和透明度。

  1. 适应。团队不断修改解决问题的方法,并在出现新问题时采取新方法。
  2. 检查。团队始终如一地反思和评估自己的表现。
  3. 透明度。这个团队在一个开放的环境中工作,在这个环境中,所有成员都了解彼此的过程,并意识到其他人面临的挑战。

Scrum的五个核心价值观 支撑着这些支柱。

它们是:

  1. 承诺。团队是自我指导的,每个人都致力于完成商定的工作。
  2. 勇气。团队作为一个整体运作,一起成功或失败。成员们做正确的事情,接受棘手的问题。
  3. 焦点。分散注意力的事情是有限的,团队专注于今天必须完成的工作。
  4. 开放。团队花时间分享在哪些方面取得了成功,哪些方面必须改进。
  5. 尊重。团队成员有不同的优势,每个成员的优势都受到尊重。在想办法解决问题时,没有人会受到指责。

Scrum是一个项目管理框架,它强调团队合作、责任和朝着明确目标的迭代过程。该框架以一个简单的前提开始:从可以看到或知道的内容开始。之后,根据需要跟踪进度和调整。

Scrum通常是敏捷软件开发的一部分。它得名于一种每个人都扮演角色的橄球队形。软件开发Scrum角色包括:

  • 产品所有者 (Product Owner – 这个人充当开发团队和客户之间的联络人。产品负责人负责确保完成产品的期望得到沟通和一致。
  • Scrum Master。 – 被称为项目促进者。他们确保遵循Scrum最佳实践。他们必须是优秀的领导者和项目经理,擅长协作、解决冲突和改进过程。
  • 开发团队 (Development Team) – Scrum开发团队的成员一起工作,创建并测试最终产品的增量版本。开发人员必须了解Scrum和敏捷开发实践。

What is Scrum Team? - Scrum Guide

什么是Scrum过程?
Scrum过程鼓励实践者使用他们所拥有的,并持续评估哪些是有效的,哪些是无效的。良好的沟通是至关重要的,并通过会议(称为“事件”)进行。

Scrum活动包括以下内容:

  • 每日例会  (Daily Standup)- 这个活动是一个简短的、站立式的日常会议,每天在相同的地点和时间举行。在这些会议中,团队回顾前一天完成的工作,并计划在接下来的24小时内要做什么。这是团队成员讨论可能妨碍项目完成的问题的时候。
  • Sprint – Sprint是一个工作必须完成的时间框架——通常是30天。新的sprint会在前一个sprint结束后马上开始。
  • Sprint计划会议 (Sprint Planning) – 在这些会议中,每个人都参与设定目标。最后,至少要产生一个增量——一个可用的软件。
  • Sprint审查 (Sprint Review) – 现在是展示增量的时候了。
  • Sprint回顾(Sprint Retrospective) – Sprint回顾是在Sprint结束后召开的会议。在这次会议中,每个人都在反思这个过程。还可以提供团队建设练习。这个活动的一个重要目标是持续改进。

什么是Scrum工件?

在Sprint规划会议中查看Scrum工件是很有用的。Scrum工件包括以下内容:

  • 产品积压 (Product Backlog) – 这是指尚待完成的工作。在产品待办事项整理会议期间,开发团队与业务负责人一起对已积压的工作进行优先级排序。在一个称为backlog优化的过程中,可以产品backlog进行微调。
  • Sprint积压 – 是在交付所选产品积压项目之前必须完成的任务列表。这些被划分为基于时间的用户故事。
  • 产品增值 (Product Increment) 这是指在一个冲刺过程中完成了什么——所有的产品待办事项——以及在之前的所有冲刺过程中创建了什么。产品增量反映了所取得的进展。
  • 烧掉 (Burn Down Chart) – 燃尽图是仍然需要完成的工作量的直观表示。烧毁图表有一个Y轴显示工作,一个X轴显示时间。理想情况下,图表显示了一种下降趋势,因为随着时间的推移,剩余的工作量会减少到零。

Scrum方法的好处

Scrum的核心好处包括:

  • 优质产品 – Scrum过程的Sprint回顾部分建立在反馈和持续改进中。因此,使用该方法的开发团队可以交付高质量的产品。
  • 团队合作 – Scrum创建了具有凝聚力的软件开发团队,这些团队能够有效地进行沟通,在截止日期前完成任务并共同解决问题。成员相互信任和尊重,并理解他们的时间是宝贵的。这可能意味着将每日Scrum限制在严格的时间限制窗口内。一些软件开发团队在他们的过程中包括一个黑客冲刺。它允许开发者开发新概念,尝试新想法,并拥有产品所有权。
  • 灵活性 – 有了Scrum,团队必须在新的环境下调整他们的工具和流程。产品定义可能会随着开发的进展而变化,有效的团队会在几次迭代中交付这些变化。定期召开产品待办事项会议使团队能够在产品进入sprint之前重新安排优先级。
  • 降低风险 – Scrum注重可预测、可持续的交付速度和一致的反馈,使团队有机会尽早且经常地降低风险。如果一个想法不起作用,短跑会让团队快速失败,从而使失败的风险可控。
  • 缩短了上市时间 – Scrum旨在使用定义良好的Sprint以可预测的增量发布产品及其功能。要发布功能,不需要完成整个产品。Sprint的设计目的是在每次增量时添加可交付的功能。由这些功能组成的完整产品称为复杂产品。
  • 更高的投资回报率(ROI)– Scrum的综合优势带来了更高的投资回报率。不断的反馈会减少流程后期的成本错误,并使产品质量更好,缺陷更少。缩短上市时间和增量发布可以更快地带来收入。