敏捷,来源于橄榄球中的“带球过人”。
在橄榄球的比赛中,每次的冲刺前,都有一个计划安排的过程,但是在冲刺的过程中,队员都会根据当时的形势,在原计划的基础上随机应变。
瀑布模型的开发过程:需求、设计、编码、测试等阶段。
Scrum的开发过程:多次的迭代(又称为Sprint,冲刺),周期一般为2~4周。
在日常的工作中,【产品负责人】会维护一个按优先级排序的"产品待开发项"(Product Backlog) 。"产品待开发项"就是根据客户的需求,得出产品的功能点。
在每次迭代的第一天,都会召开【迭代计划会】(Sprint Planning Meeting)。产品负责人先总体讲解产品,按优先级由高到低逐一讲解。团队Member可以就需求的细节、完成的标准等信息进行咨询,并逐条根据难度估算工作量,添加到本次迭代的开发任务中,直到本次迭代任务量达到饱和。一旦迭代开始,正常情况下,这些任务是不能发生大的变更的。在得带期内,团队进行任务的分配、所需技术的调研,逐一完成任务。每天团队会进行一个简短的【站立会】即"每日立会"(Daily Stand-up Meeting),沟通当天的进度、当前的问题以及下一步任务等,以借助团队的力量解决遇到的问题。团队还维护一张【燃烧图】(Burn Down Chart)即随时间的递减任务完成的进度图,以观察和预测所有任务是否能够按期完成、以及了解自己的生产效率,从而降低项目的风险。
在每个迭代的最后一天,团队召集【评委会】(Review Meeting),邀请产品负责人等参加,对已经完成的产品功能进行评审,产品负责人进行审核或作出改进的反馈。当天还会召开【反思会】(Retrospective Meeting),对本次迭代中的成功与失败作出总结,并在以后的迭代中进行改进。