《规范敏捷交付:企业级敏捷软件交付的方法与实践》——3.2 Scrum

3.2 Scrum

Scrum作为一种核心敏捷方法,所表达的是非常出色的想法,在如今的敏捷团队中得到了广泛应用。但是,Scrum有意不提供方法指导如何将这些实践应用到框架中,而是由团队自身去发掘哪些实践对这个框架有价值有帮助,并决定是否采用它们。另外,它的重点主要在于敏捷交付的产品构造阶段的方方面面。从图3.2中我们也可以看出,Scrum生命周期重点关注敏捷交付的产品构造阶段。下面列出在DAD过程框架中用到的核心Scrum实践:
产品Backlog(工作项列表)。在Scrum中,产品Backlog是项目中所有预期用户需求和产品功能点的一个优先级排序表。尽管Scrum不要求任何特定的制定需求的方法,但是大多数Scrum从业者都推荐使用用户故事来鼓励团队专注于交付那些真正有价值的功能。Scrum团队通常将需要实现的功能点(或者用户故事)分解为一个个的任务项,而不会依照要实现的新技术、系统配置及测试自动工具的搭建等去单独识别相关的工作项。为了对用户需求进行排序,利益相关者就必须认真分析哪些功能点比其他的更有商业价值。在项目进行过程中,产品Backlog中的任务项可以随时变更或重新排序。

在传统的产品开发模式中,利益相关者会提前细化好所有具体的产品需求,并执行严格的变更管理(更像是“变更预防”)来限制变更的发生。而敏捷团队则不介意对还未开始的任务项进行变更,毕竟这些工作项还没启动,但是我们仍然需要谨慎地处理对产品Backlog中任务项的更改,尤其是大范围的变更。对于比较大的企业,往往会在产品发布规划阶段花大部分的精力去汇编产品Backlog。这些工作项可能和其他项目有依赖关系,而由他们的产品负责人提出来的。请注意,在基本的DAD生命周期中,工作项列表是一个经过排序的工作项目栈,包括产品需求、缺陷报告以及敏捷团队所进行的其他活动。这些活动有些可能是整体解决方案的一部分,但并不仅与软件开发有关,比如,资源安排活动或人员交流活动等。有一点是很明确的,DAD很清楚项目相关的其他工作,以及对其进行排序的重要性,这可以为项目交付提供更高一级的透明度。
价值—驱动的生命周期。在每个Sprint结束时实现潜在可交付的软件(Sprint是Scrum中代表“迭代”的术语,一般建议为一个月或更短的时间)。Scrum,如同其他敏捷方法,强调优先考虑和实施那些能给客户带来最高价值的功能。DAD则采用风险—价值驱动的生命周期,不仅考虑价值高低,还会兼顾所带来的风险后果,其被统一过程(Unified Process)广泛采用,我们会在稍后章节详细介绍相关内容。
每日Scrum(协调会议)。一天一次,通常是在早上,整个团队聚在一起协调当天的工作内容。会议期间,团队成员逐个回答以下三个问题:昨天做了什么?今天准备做什么?有什么事情阻碍进度吗?整个会议耗时不超过15分钟。DAD则稍微更加灵活一些,它建议团队成员首先要解决的主要难题是他们是否预见到任何即将到来的麻烦。前两个Scrum问题虽然可以帮助团队成员相互交流自己所承诺的工作,并公开表示会照着自己的承诺尽职完成相关工作,而当有阻碍出现时,第三个Scrum问题才会派上用场(而用前瞻性提问从最开始就避免阻碍的发生则要好得多)。
发布计划。项目开始阶段,敏捷团队会先拟定一个粗粒度的计划贯穿于整个生命周期中,并适时进行适当的维护。而在传统软件开发模式中,却常常创建过于详细的工作分解计划,并一直沿用到很久之后的将来。然而,这是一个有缺陷的实践,在如今的软件开发项目中根本就行不通。人们无法精确地预测到几个星期后要完成的任务以及所需的时间,这点也正印证了敏捷的团队自组织原则,管理层不应尝试微观管理团队,关心具体任务级别。相反,发布规划建议把项目计划书抽象为描述更高层面的里程碑,比如,以增量方式交付可演示的功能等。而这些高层面计划的项目可以分配到生命周期中的一组Sprint(迭代)之中。需要注意的是,至于Backlog中的哪些工作项真正能够在项目生命周期内实现,Scrum本身是不会做出任何承诺的。只有在项目进行过程中,根据一个个迭代的具体情况来定。当客户认为现有的功能已经足够,并决定不再资助下一个迭代周期时,那就是项目结项的时候到了。在现在的官方Scrum指南中,已经找不到发布规划的内容了,这也是我们所担心的。根据第6章的研究结论,绝对大数的敏捷团队在进行软件开发之前会先进行发布计划。
Sprint计划(迭代计划)。在一个Sprint/迭代的开始阶段,敏捷团队会详细地规划当前Sprint/迭代周期内需要交付的工作项以及要怎么完成这些工作。这就需要从产品Backlog中选出优先级最高的那些用户需求,并将它们分解为具体的任务项,然后团队会对工作量进行估算,并向产品负责人承诺会严格按照自己制定的规划内容按时交付相应的工作。
Sprint评审和演示。此时,团队会给利益相关者演示当前Sprint/迭代周期内所完成的工作,这样利益相关者也会评估一下项目进度是否正常。另外,这也可以是评定是否需要提供额外资金的合理的时间点。
Sprint回顾(回顾会议)。在每个Sprint/迭代周期结束时,敏捷团队都需要利用回顾会议去总结目前有哪些地方做得不足,以及后续哪些地方需要改进。在DAD过程框架中,建议那些对敏捷应用得不是很熟练的团队在每个Sprint/迭代周期结束时开一次回顾会议,而那些成熟的敏捷团队则随时都可以根据自己的需要举行回顾会议(也许在某个Sprint/迭代周期的中段发现了难题,又或者对于一个项目进行很顺利的团队,他们几个Sprint/迭代周期才需要举行一次回顾会议)。但至少,DAD团队需要时不时地考虑是否该举行回顾会议了。
用户故事驱动开发(用法驱动开发)。用户故事通过一到两句话表达客户希望实现哪些功能。一系列用户故事按照优先级高低列在产品Backlog中,为后续Sprint/迭代周期提供参考。值得注意的是,虽然官方的Scrum指南并不包括用户故事,但近几年内,它早已成为实质上的标准。DAD对此则没有过多的规定,而推荐一种叫用法驱动的方式,它更注重于产品的使用方法,比如,用户故事、使用场景或用例等。

时间: 2024-09-17 04:34:02

《规范敏捷交付:企业级敏捷软件交付的方法与实践》——3.2 Scrum的相关文章

《企业软件交付:敏捷与高效管理精要》——1.5 对企业软件交付的需求是如何演变的呢

1.5 对企业软件交付的需求是如何演变的呢 对企业软件系统的交付来说,一个非常重要的转变是由几个相辅相成的因素推动的.最终用户的期望.最终用户要求获得更及时的同步信息,要随处.随时.无需停机.这种访问方便程度和透明度的提升,大大改变了整个机构中报告.治理.管理和部署的做法.职能变得越来越多样化,特别对于非专业的软件用户来说.这些用户的需求可以是天差地别.随着软件在我们的生活中发挥着越来越重要的作用,正在开发的解决方案必须能让更广泛的群众在多种设备上更容易地使用,提供更准确.更可靠的信息,还要有更

《企业软件交付:敏捷与高效管理精要》——3.4 企业软件交付的软件工厂方法

3.4 企业软件交付的软件工厂方法 正如我们前面讨论的,今天的机构面对的商业环境正以前所未有的速度发生变化.与此同时,这些机构还要管理和降低整个机构的运营成本.这就直接意味着,他们不仅要最大限度地减少浪费和低效率,还要提高生产力.软件和系统行业正在从基于手工作业.侧重个人的流程,演变为成熟且可重复的流程,既能稳定获得高品质的输出,又具有灵活性,能够根据客户的个别需求差异进行调整. 为了定义企业软件的设计.开发和交付中的软件工厂方法,我们可以把工业行业的关键特点应用到这里,以便减少产品的上市时间.

《企业软件交付:敏捷与高效管理精要》——第 1 章 企业软件交付为什么这么难

第 1 章 企业软件交付为什么这么难 本章概要本章介绍了本书的主要议题:企业全球化.交付的成本效率,以及在满足新的市场需求和期望方面的敏捷性.为了阐述这些议题,我将讨论当今企业系统交付中面临的挑战,回顾企业软件交付机构当前的工作重点,并概述对于企业软件交付不断演变的期望和要求.我会得出以下结论:经济压力迫使企业软件交付机构必须注重成本削减,导致现有的交付能力不堪重负.企业软件交付机构需要依托新的组织模式,以提供更大的地理多样性,并建立集成的软件供应链.客户的需求越来越多,也越来越多样化,这对于新

《企业软件交付:敏捷与高效管理精要》——2.1 引言

2.1 引言 要了解本书的写作背景,对当前企业软件交付所面临的挑战有一个清晰的概念是很重要的.为了说明这个现状,我现在就举一个企业软件交付机构的例子,讲讲它是如何执行某个企业软件交付项目的.我们首先谈谈项目的关键要素,然后分析项目的哪些地方可以做出改进以及如何改进.在这个真实的企业软件交付项目里,虽然有很多方面都值得一谈,但这里我选出了四个重点,作为我在全书中详细阐述的关键主题: 分布式团队之间的协作:特别是当团队分散在不同的地点.机构和公司的时候.在此类项目中,我们常常会发现,低效率和误解是产

《企业软件交付:敏捷与高效管理精要》——2.7 述评

2.7 述评 通过研究MyProj项目,我们看到了典型企业软件交付项目中的一些细节,包括项目的交付背景.资源配置情况以及执行的过程.在接下来的分析中,我们考虑了可以通过引入额外的软件工厂交付技术和自动化来改进的方面.这样我们就可以得到一些重要的观点.首先,我们把通过企业和项目层面的分析得到的潜在改进之处进行总结.我们可以从以下四个方面提出改进建议.每一项建议都是一个挑战,也是机遇:全球协作.全球交付的方式值得特别关注.企业软件交付中面临的许多问题都是由于相互沟通不畅引起的.开发团队分布在世界各地

《企业软件交付:敏捷与高效管理精要》——2.8 结论

2.8 结论 本章重点介绍了一个企业软件交付项目的具体例子,展现了当今软件交付所面临挑战的许多特征:让分布在全球各地的在岸 - 离岸混合团队交付核心业务能力.这个例子切实地展现了,对于全球企业软件交付,哪里以及如何可以提高效率.作为这项研究的结果,改善企业软件交付的关键因素有四个方面:全球协作.敏捷交付.注重质量.持续监测和测量.在本书后续章节中,我会对每个领域详细讨论,并特别注重那些体现应用本研究的诸多改进建议后所取得成果的案例.

《企业软件交付:敏捷与高效管理精要》——3.2 走向软件供应链

3.2 走向软件供应链 由于商业环境的演变.金融动荡.社会的变化和技术进步,许多业务领域中在过去的几年都经历了很大的变化.要了解和发展自己的业务来适应新形势,企业机构已经分析了自己的核心业务流程,看看可以如何改进.优化并进行重组.这种业务流程再造已帮助机构重新着力于业务中最引人注目.最有价值的方面.这也常常是机构调整投资的过程,那些被视为根本的商业活动会获得优先投资,而次要的则考虑剥离[39].这样得到的业务供应链由一系列直接拥有和治理的业务活动组成,并与那些可能从其他来源收购并定制的活动整合在

《企业软件交付:敏捷与高效管理精要》——1.6 结论

1.6 结论 企业软件交付面临的压力在不断增长.要削减成本,同时又要对业务承担更大的责任,这些都要求企业软件交付机构在他们提供的系统和维护中加快创新步伐.企业软件交付的成功,在很大程度上取决于机构是否能够很好地平衡对敏捷性和效率的需求,并根据这些需求来协调全球的资源.尤为突出的是,企业软件交付机构必须努力为当今的软件工厂建立骨干流程和技术,还要创造基于团队的实践方案,鼓励和加强可扩展的方法,以提高敏捷性,优化全球软件供应链.在这本书的其余部分中,我们会讨论如今企业软件交付的特点,以及企业软件交付

《企业软件交付:敏捷与高效管理精要》——1.4 企业软件交付机构关注什么

1.4 企业软件交付机构关注什么 一般来说,企业的软件交付机构进行的工作可分为三类补救和修复现有系统.目前,大量资源都致力于修复和升级现有系统,以延长其使用寿命.这些工作的策略都是旨在满足必须解决的短期需求,减少持续的投资,或让这些系统做好准备外包给第三方.利用现有的资产,以提高生产效率和业绩.为了经济地提供新的服务,各个机构都投入了大量的精力,从现有系统中提取数据,把这些信息包装起来供新技术访问,并组装新的应用.利用现有的部件构建解决方案,这在建设成本经济的系统中永远都扮演着重要角色.然而,要