【IT168 技术文章】
Scrum为项目执行提供了可靠的、已被证实的基础。但是,在每个项目中,Scrum都必须根据具体需求和环境进行调整,这是项目成败的决定性因素。在这篇文章中,将会介绍如何成功地完成了一个大型的(20人年,超过十万行代码)、分布式(开发人员位于印度和荷兰)Scrum项目,而这个项目曾经在传统开发方式下被废弃过 。为了帮助读者顺利运作大规模项目,在这里我也会历数我们的经验教训,包括:项目启动、找到合适的产品负责人、估算的重要性、有效沟通、测试、文档。
总结
下面是我们从这个项目中学到的最重要的几点:
1.很难找到一个既有丰富的需求知识、又有权利设置优先级的产品负责人。所以人们往往都要用几个人一起扮演产品负责人的角色,尤其是在大型项目里面。
2.如果一定要按期完成工作,那就得保证产品backlog的完整,也要做好估算。对需求而言,即便信息量很小,有估算也比没估算的好。把估算跟团队生产率合并以后,发布计划就有了必要的信息。
3.Scrum对多个分布式团队很适用。我们每个Scrum团队都既有荷兰人又有印度人,这很好地发挥了团队精神,让我们注重有效沟通。在沟通中,利用现成的硬件和免费软件能节省成本。
4.在启动分布式项目的时候,先把大家都聚到同一个地方,让大家对团队实践达成一致,这点效果很好。
5.对于不适合放到Scrum Sprint中的工作(比如寻找关键人员,跟其他客户部门交流),可以让一个单独的团队去做,这样效率更高。特性团队可以集中精力开发软件。有一个专职的技术文案也很好,即便这会增加沟通成本。
6.虽然软件开发过程不需要大量的需求文档,但客户可能需要。不过在Scrum项目中,需求文档代替不了用户故事。如果既有需求文档,又有用户故事,那就得在做计划的时候,就要考虑到在两个地方协调需求的额外开销。
7.在增量式交付软件的过程中,自动化测试发挥着关键性作用,它可以排除回归bug的干扰。在项目结束之前,投资回报会高过成本的。