Nexus规模化Scrum框架
上QQ阅读APP看书,第一时间看更新

1.2 为什么要用Scrum

根据Forrester Research公司的调查研究,90%的敏捷团队在使用Scrum。https://www.forrester.com/How+Can+You+Scale+Your+Agile+Adopti-on/fulltext/-/E-res110444#AST9629982013。Scrum之所以流行是因为它并非是什么规定,而是基于一套原则和价值观的框架,包含3种角色(产品负责人、Scrum Master和开发团队),5种事件(Sprint、Sprint计划会、每日Scrum站会、Sprint评审会和Sprint回顾会),以及3种工件(产品待办事项列表、Sprint待办事项列表和产品增量),从而可以使Scrum在不同的情况下有很强的适应能力。想了解更多Scrum的内容,可以参考网站http://www.scrumguides. org/scrum-guide.html。

Scrum的优势在于它很简单。它关注的是单个团队生成一个产品。它只有三个角色:产品负责人,专注于业务目标;开发团队,负责开发产品;以及Scrum Master,通过教学、教练和引导等方式,帮助产品负责人和开发团队实现这些目标。虽然Scrum很容易理解,但是要想精通,仍然需要承诺和献身精神,才能打破旧习惯,建立新秩序。

1.2.1 什么是产品

许多组织仍然习惯基于“项目”的视角来考虑。项目是一个具有时限长度的举措,有明确定义的开始日期,有具体的交付范围,通常也会有明确定义的结束日期。

相比之下,“产品”是长期存在的,通常没有明确的结束定义。如果使用“项目”的理念来交付和支持产品,往往会导致诸多问题,不能仅仅由于利益相关者从那些不确定性的需求中得出一种趋势,就能确定进入“下一个”版本发布。在大多数组织中,项目被视为成本的来源,而产品被看作是业务价值的来源。从项目开发到产品开发的转变,常常会改变开发团队的视角,即从仅仅支持业务转变成主动地驱动业务。

如果产品是值得开发的,那么对产品的投资和管理需要采取不同的方式。产品需要定期发布以满足产品用户不断变化的需求。产品需要一个专门的团队在一系列的版本发布中构建和支持产品,从产品团队的角度来看,产品的维护、新功能的开发以及功能增强等工作是没有区别的。

1.2.2 什么是Scrum

Scrum是一个框架,它可以帮助团队克服复杂的适应性问题,以在交付产品时尽量提供最高的价值。从20世纪90年代初开始,许多组织已经成功地使用了Scrum。

Scrum是建立在经验过程控制理论或经验主义的基础之上。经验主义认为知识来自经验,基于已知的信息做出决策。Scrum采用一种迭代的、增量的方法来优化可预测性,通过持续学习来控制风险。经验过程的实施由三个支柱进行支撑:透明、检视和调整。业界有超过1200万名Scrum实践者,而且人数每天都在增长。Scrum.org。

尽管可以把Scrum技术应用于项目执行,但是Scrum从根本上来说是专注于产品开发的。

Scrum框架的基本要素如图1-1所示。Scrum指南中描述了Scrum框架,它是免费使用的,请参考http://www.scrumguides.org/。

图1-1 Scrum框架

然而,对于单个Scrum团队所能达到的目标,却存在着现实的局限性。组织可能会试图将更多的人员加入到团队中,或者将更多的团队加入到产品中,以获得更高的速度,但是几十年的实践经验表明这样会适得其反。这是Fred Brooks的经典著作《人月神话》中所描述的基于传统软件项目的场景。敏捷方法不会改变根本的问题:团队人员规模的增加会导致沟通复杂度的指数级增长,如果超过7±2团队人员规模上限的话,团队的生产力将受到破坏。联邦调查局(FBI)的“哨兵”项目案例研究也很有启发,请参考http://www.scrumcasestudies. com/fbi/。