本站首页 返回顶部 关于博主

什么是Scrum–敏捷框架Scrum系列(1)

PDF版

流行的敏捷框架Scrum

Scrum是一种敏捷开发框架。在这种框架下,工程师可以高产、创造性地开发出高价值的软件产品。全球超过70%的敏捷团队在使用Scrum(包括把Scrum整合到开发流程中的情形),并在管理复杂产品开发方面受益。

Scrum框架介绍系列共分7篇文章,系统地介绍Scrum的理论、价值、角色和事件。最后,还会介绍在大规模开发环境中开发复杂项目的几种流行Scrum框架。

什么是敏捷

在谈到Scrum的时候,总是不避免地提到敏捷(Agile)。那么,什么是敏捷?敏捷和Scrum之间是什么关系呢?

敏捷开发宣言里,提到了敏捷的四条价值观:

  • 软件工程师的能力、主动性与工程师之间的交互,高于开发流程和工具。

  • 可运行、可交付的软件,高于详尽的需求文档、设计文档、开发文档等。

  • 工程师与客户之间的合作,高于合同与谈判中的达成的协议。

  • 拥抱变化,及时对变化作出相应,高于遵循最初制定的计划。

针对这四条价值观,还提出了12条原则:

  • 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

  • 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

  • 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

  • 业务人员和开发人员必须相互合作,项目中的每一天都不例外。

  • 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

  • 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

  • 可工作的软件是进度的首要度量标准。

  • 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

  • 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

  • 以简洁为本,它是极力减少不必要工作量的艺术。

  • 最好的架构、需求和设计出自自我组织的团队。

  • 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

由此可见,敏捷开发是一种价值观,它提出了符合敏捷的12条原则。而实现这种价值观,并符合敏捷原则的框架,就是敏捷开发框架。在众多的敏捷开发框架中,Scrum无疑是最流行的。

什么是Scrum

Scrum是一种敏捷框架。在这个框架下,软件工程师可以解决复杂的问题,与此同时,交付高质量、创造性的高质量软件产品。

Scrum是一个轻量的开发框架,易于理解,却难以掌握。

1995年的OOPSLA大会上, Ken Schwaber 和 Jeff Sutherland 提出了Scrum的概念, 之后,Scrum框架就用于管理复杂的产品开发。

需要说明,Scrum并不是开发产品的过程或技术,也不是一种方法论。它只是一种框架,在这个框架下,你可以运行各种过程或技术,开发出满足需求的产品。 

在产品管理和开发中,Scrum很容易区分同一团队在不同迭代周期的效率差别,这也有利于团队不断完善自己。

图 1     Scrum框架

Scrum的理论基础

Scrum是以经验控制理论为基础。换句话说,它建立在经验主义的基础上。它假设我们的知识来自过去的经验,我们也是基于已知的事实做决策。在Scrum里,以过去的经验为基础,迭代地增量发布产品,尽量让结果与预期相符,降低产品交付的风险。在经验控制过程中,三大流程至关重要:透明、检查、改进。

瀑布模型的替代品

相对于传统的瀑布模型,增量开发、渐进交付敏捷方式优先关注高价值的功能需求,可以很快地从用户获取响应,并迅速调整。

Scrum可运用于各行各业,当然,最流行还是用于软件产品开发。基于经验主义,产品团队增量地发布产品,以尽量规避风险,并增加与用户之间的理解。

图 2     瀑布模型中的价值交付

  

图 3     Scrum中的价值交付

一种改变组织架构的破坏性框架

Scrum的交付周期很短。要在这很短的周期内对需求作出反馈,对个人、团队、组织提出了很大的挑战。如果组织架构无法适应这种开发模式,我们不应修改Scrum来掩盖这些问题,而应鼓励调整组织架构来解决这些限制。否则,很难从Scrum框架收益,甚至不如运行Scrum之前。

再次说明,Scrum是一个框架,而不是定义的过程或方法论。Scrum包含角色、事件、事项、规则等。Scrum团队负责在此框架内创建和调整流程。Scrum的管理实践与极限编程(XP)类似,不同的是,Scrum没有规定具体的工程实践。




请你留言