荷兰铁路公司的分布式Scrum开发

  Scrum为项目执行提供了可靠的、已被证实的基础。但是,在每个项目中,Scrum都必须根据具体需求和环境进行调整,这是项目成败的决定性因素。在这篇文章中,我们将会介绍我们如何成功地完成了一个大型的(20人年,超过十万行代码)、分布式(">开发人员位于印度和荷兰)Scrum项目,而这个项目曾经在传统开发方式下被废弃过 。为了帮助读者顺利运作大规模项目,在这里我也会历数我们的经验教训,包括:项目启动、找到合适的产品负责人、估算的重要性、有效沟通、测试、文档。

  背景

  荷兰铁路可以跻身于世界上使用量最大的铁路系统之列,每天要运送120万乘客。该部门打造了一套全新的信息系统,为乘客提供更准确的列车信息,减少人为干预。作为该系统的一部分,我们做了这个PUB发布系统,对所有车站中的信息显示和音频广播做集中控制。

  有人之前试过完成这个PUB系统,但是他们当时用的是传统的瀑布方法。客户把详细的需求文档规范交给了开发商,然后放任自流,等着完整的系统成形交付。三年之后,这个项目被取消掉了,因为开发商没能开发出一个可以工作的系统来。然后客户雇佣了我们公司从头做起,我们引入了敏捷开发方式,用上了Scrum,跟客户紧密协作,开放交流,小步前进。

  起步

  项目开始的时候,我们在第一个sprint开始前安排了一个启动阶段,耗时三周,准备好了sprint中所需的一切。这个启动阶段由一个项目经理,一个架构师和一个Scrum Master参与完成。

  选择产品负责人是个很有难度的事情,我们找不到一个人能够有时间、具备领域知识、而且有权利设置需求优先级。我们提名了两个业务分析师来一起承担产品负责人的职责。他们能抽出时间来,而且他们从前也参与过构建PUB的工作,所以业务知识很丰富,足以担当起产品负责人的角色,为多组客户充当优秀的代理。有关优先级的和范围的高级决策,是由客户委任的项目经理负责,但是他时间不够用,对于需求的理解也有所欠缺。一般情况下大家的配合还可以,但偶尔项目经理也会对(他所缺席的)计划会议上制定的优先级进行调整,于是这个会议就得重新来过。在理想状态中,对优先级有最终决策权的人应当每次都参加sprint计划会议。

  因为先前有人试着构建过PUB系统,所以有些部分的详细需求文档已经是现成的了。它们遵守了MIL标准[1],不过其形式不适于敏捷计划和估算[2],因为在敏捷开发中,需求应当被组织成小块的段落,每一块都可以在一个sprint中进行实现、测试和演示,但是现有的文档与此要求不符。产品负责人也没有多少编写用户故事的经验,为了解决这个问题,Scrum Master帮他们弄出了最原始的产品backlog,里面放着一些细粒度的、经过估算的用户故事,供前几个迭代使用。

  我们所构建的软件只是某个大型软件系统的一部分,它还包括很多相关的软件系统,那些系统负责显示信息,还要在车站内安装相关显示设备。我们得保证每件事情都可以按时完成,才能把复杂的系统理顺。所以需要有一个整体的计划方案。经历了几次迭代,我们对系统的各个功能都按照自己的最大能力做出估算,这个问题也解决掉了,而且也有了一个比较靠谱的生产率。于是就可以用发布版本燃尽图来记录和沟通进度了。这里我们学到的东西就是,即使是信息量很少的情况下,有估算也比没估算好。

  扩展到分布式团队

  项目启动以后,一开始只有7个人,两星期一迭代。项目从一开始就计划着要用到印度的一些人力,所以从第一个sprint开始就有两个印度开发人员进入了团队。他们来到客户现场参与开发,用了六周时间熟悉领域知识、用户代表和团队其他成员。

  建立团队伊始,就要决定如何协作。我们跟所有团队成员一起——也包括印度同事——组织了一个“规范和章程 [3] ”活动。我们定下来一些实践方式,如怎样做结对、用哪些工具、质量目标、每天的核心工作时间等等。然后在Wiki上记录下来。整个团队有了共识,事情就好办多了。一旦这些共识需要修改,比如在回顾会议上提出改进,这些实践就要在wiki上更新,这样有新人加入的时候,他们看到的总是最新内容。

时间: 2024-10-16 04:03:15

荷兰铁路公司的分布式Scrum开发的相关文章

支撑分布式 Scrum 团队的 5 项最佳实践

分布式 Scrum,从来都不简单. Scrum 的基石 -- 透明性.开放性.自组织 -- 在分布式 Scrum 团队的环境下的实践难度均有着不同程度的提高,沟通协作障碍重重.团队建设难上加难.但与此同时,受成本节约的影响,很多公司又认为分布式 Scrum 是大势所趋. 与上述争议无关,本文只是一份提供给 Scrum Master 的实践指南,可以为分布式团队改善工作过程提供一些必要的参考. 适用于分布式 Scrum 团队的 5 项最佳实践 1.做团队成员的同地汇聚,频率越高越好.时间越早越好

支撑分布式 Scrum 团队的五项最佳实践

分布式 Scrum,从来都不简单. Scrum 的基石 -- 透明性.开放性.自组织 -- 在分布式 Scrum 团队的环境下的实践难度均有着不同程度的提高,沟通协作障碍重重.团队建设难上加难.但与此同时,受成本节约的影响,很多公司又认为分布式 Scrum 是大势所趋. 与上述争议无关,本文只是一份提供给 Scrum Master 的实践指南,可以为分布式团队改善工作过程提供一些必要的参考. 适用于分布式 Scrum 团队的 5 项最佳实践 1.做团队成员的同地汇聚,频率越高越好.时间越早越好

[原创].NET 分布式架构开发实战之一 故事起源

原文:[原创].NET 分布式架构开发实战之一 故事起源 .NET 分布式架构开发实战之一 故事起源   前言:本系列文章主要讲述一个实实在在的项目开发的过程,主要包含:提出问题,解决问题,架构设计和各个逻辑层的实现以及新问题的出现和代码的重构.本系列文章以故事的形式展开,而且文章列举的很多项目的名称,大家也不用太关心,很多都是虚拟的.   系列文章链接:  [原创].NET 分布式架构开发实战之一 故事起源 [原创].NET 分布式架构开发实战之二 草稿设计 [原创].NET 分布式架构开发实

[原创].NET 分布式架构开发实战之二 草稿设计

原文:[原创].NET 分布式架构开发实战之二 草稿设计 .NET 分布式架构开发实战之二 草稿设计   前言:本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下:   1. 第一个数据层草图的提出 2. 对数据访问层的思考 3. 第二个数据层草图的提出   系列文章链接:  [原创].NET 分布式架构开发实战之一 故事起源 [原创].NET 分布式架构开发实战之二 草稿设计 [原创].NET 分布式架构开发实战之三 数据访问深入一点的思考 [原创].

[原创].NET 分布式架构开发实战之三 数据访问深入一点的思考

原文:[原创].NET 分布式架构开发实战之三 数据访问深入一点的思考 .NET 分布式架构开发实战之三 数据访问深入一点的思考   前言:首先,感谢园子里的朋友对文章的支持,感谢大家,希望本系列的文章能够真正的对大家起到一点帮助的作用.再次感谢大家.   大家也许想问,什么时候出代码,代码一定会出的,我不想一上来就开始抛出一大堆的代码,然后讲解,架构的设计在思考的过程,思考到了,代码也就水到渠成了.   上篇文章讲述在设计之初,Richard所画出的一些草图,本篇对之前的草图做了进一步的思考.

荷兰电信公司Altice拟3.08亿美元收购广告科技公司Teads

今日消息,荷兰电信公司Altice宣布收购广告科技公司Teads.Altice拥有5000万固定用户和移动订阅用户,主要市场为美国和法国:Teads则宣称其在线视频广告平台拥有12亿流量,其中7.2亿来自移动端. Altice计划出资3.08亿美元,75%的资金将在交易结束前到位,剩下的1/4则会在Teads完成2017年度营收目标后于2018年早些时候到位. 两公司表示,希望在2017年年中完成这笔交易. Teads于2011年成立于法国,虽然此前考虑过IPO,但该公司最终还是选择了保持私有身

特斯拉OUT了?荷兰ZEP公司太阳能瓦已在多国销售

"美国特斯拉首席执行官(CEO)马斯克最近发布的屋顶太阳能瓦片(Solar Roof Tile)计划受到了关注.但本公司去年就已开发出来,并已在销售." 荷兰ZEP公司11月2日发表了公开对抗特斯拉的声明. 预计将进入特斯拉旗下的美国SolarCity与特斯拉共同推出的太阳能屋瓦上市,估计要到明年了.而ZEP则称,其太阳能屋瓦除了荷兰外,在德国.英国和斯堪的纳维亚半岛等北欧国家也在销售中. ZEP是在陶质瓦上嵌入太阳能电池,构成屋顶太阳能瓦的.据称太阳能发电的电力可以像电源插座的电力一

.NET 分布式架构开发“.NET研究”实战之三 数据访问深入一点的思考

前言: 首先,感谢朋友们对文章的支持,感谢大家,希望本系列的文章能够真正的对大家起到一点帮助的作用.再次感谢大家. 大家也许想问,什么时候出代码,代码一定会出的,我不想一上来就开始抛出一大堆的代码,然后讲解,架构的设计在思考的过程,思考到了,代码也就水到渠成了. 上篇文章讲述在设计之初,Richard所画出的一些草图,本篇对之前的草图做了进一步的思考. 本篇的议题如下: 1.草图的一些问题在哪里 2.重审之前项目中数据层的问上海闵行企业网站设计与制作题 3.思维的一点突破 4.回首再看数据访问层

一起谈.NET技术,.NET 分布式架构开发实战之三 数据访问深入一点的思考

前言: 首先,感谢朋友们对文章的支持,感谢大家,希望本系列的文章能够真正的对大家起到一点帮助的作用.再次感谢大家. 大家也许想问,什么时候出代码,代码一定会出的,我不想一上来就开始抛出一大堆的代码,然后讲解,架构的设计在思考的过程,思考到了,代码也就水到渠成了. 上篇文章讲述在设计之初,Richard所画出的一些草图,本篇对之前的草图做了进一步的思考. 本篇的议题如下: 1.草图的一些问题在哪里 2.重审之前项目中数据层的问题 3.思维的一点突破 4.回首再看数据访问层 1.草图的一些问题在哪里