为什么Scrum容易学习,却难以掌握?

在快速变化的数字环境中,敏捷性这一概念变得越来越受欢迎。每个人都正在谈论Scrum, 敏捷软件开发,以及各种其他方法,如极限编程(XP)、Scrum、水晶方法、自适应软件开发(ASD)、特性驱动开发(FDD)、动态系统开发方法(DSDM)和轻量级方法。RUP、测试驱动开发(TDD)等,如下面的图表所示。在所有敏捷开发方法中,Scrum是最广泛采用的。
本文主要分享了关于理解与实施Scrum的见解,以及Scrum为团队带来的变化。
Agile Umbrella
敏捷伞

什么是Scrum?

Scrum是一种用于开发和维护复杂产品的框架,遵循增量式和迭代式开发过程。在这个框架中,整个开发过程由多个短期迭代周期组成,其中一个被称为Sprint,持续时间为2到4周。
在Scrum中,产品待办事项列表用于管理产品需求。产品待办事项列表根据业务价值进行优先级排序。在Sprint期间,Scrum团队从产品待办事项列表中选择优先级最高的项目,并通过Sprint计划过程,创建一个Sprint待办事项列表。在Sprint计划会议上,对选定的产品待办事项(PBIs)进行讨论、分析和估算,以形成下个Sprint需要包含的任务列表(即Sprint待办事项列表)。当Scrum团队完成Sprint待办事项列表中的所有选定任务后,当前Sprint结束,并进入下一个Sprint迭代。
Agile Scrum Framework
敏捷Scrum框架

为什么Scrum难以掌握?

Scrum非常有价值。然而,在一些组织中,实施Scrum具有挑战性。有些人认为Scrum的影响并不明显。为什么这么多人觉得Scrum难以掌握或实施?让我们重新回顾一下Scrum指南中关于Scrum的描述:
Scrum是
  • 轻量级
  • 易于理解
  • 难以掌握
由于Scrum需要文化变革,因此难以实施。如果一个组织从传统的团队结构转向Scrum进行敏捷开发,就必须为所有Scrum角色每个Scrum角色的职责远比传统瀑布式环境中的职责更广泛。为什么Scrum难以掌握?主要原因如下:
  1. Scrum中的角色对所有团队成员的要求都更高。
    例如,在Scrum项目中,开发人员不仅仅是“编写代码”——他们必须负责计划、估算、管理自己的工作,并与其他团队成员协作,以交付一个统一的解决方案。他们还应直接与业务用户合作,以理解需求。
  2. Scrum是一种需要大量技能和判断力的适应性过程。
    Scrum基于经验式过程控制模型,这意味着在项目执行过程中,解决方案及其生成过程必须根据观察结果不断调整。许多技能和判断决策只能在有指导的情况下通过实际操作来掌握。许多人试图机械地应用Scrum,而没有理解其底层原则,这通常会导致失败。
  3. Scrum需要组织变革。
    Scrum要求在整个项目生命周期中,开发团队与业务用户之间建立协作伙伴关系。这通常需要打破组织中的“孤岛”,以实现有效的协作。

敏捷成功的十大策略

从传统方法转向敏捷开发的成功策略,源自对全球各地积极交付软件项目的敏捷项目经理和实践者的访谈,包括:对敏捷专业人士(业务、IT和管理)的访谈,标准组织(PMI、Scrum.org、敏捷联盟、Scrum.org、DSDM、IEEE等)的访谈,行业案例研究、书籍以及研究机构(高德纳、斯坦迪什、弗雷斯特等)的资料。
  1. 确保管理层承诺 – 在启动任何实施计划之前,必须确保管理层的承诺。
  2. 支持你的团队 – 敏捷提供了高度的透明度,减少了对大量检查点审查的需求。
  3. 理解协作文化 – 业务方的代表必须推动敏捷举措;他们的参与是敏捷方法论的基石。
  4. 全面拥抱敏捷 – 敏捷的真正价值只有通过全面投入才能充分体现。
  5. 制定路线图和初步计划 – 敏捷是整体规划过程的一部分。
  6. 聘请敏捷教练并培训你的团队 – 至少需要一名有经验的敏捷教练,Scrum主管,以及至少20%的团队成员具备敏捷经验,能显著提高成功的可能性。
  7. 从小处着手并取得早期成果 – 没有什么比展示早期且可衡量的成功更能推动敏捷举措的进展了。
  8. 建立敏捷绩效指标 – 敏捷关注解决当前的业务优先事项,而不是遵循可能已不再反映当前业务方向的一组基线需求。
  9. 制定敏捷合同 – 不应关注“交付什么”,而应明确界定并交付“解决方案将如何被定义和交付”。
  10. 采用ALM工具以增强互动 – 敏捷ALM工具在传统ALM工具集成的基础上,整合了敏捷流程和治理结构。
基于研究和实践经验,强烈建议组织采用这些策略,同时结合强大的业务和IT管理实践,以确保从传统开发方法向敏捷的平稳过渡。

Leave a Reply