引子:
认识XP或Agile已经很久了,但真正接触到Scrum还是不久前,重新安装Team Foundation Server 2010,在建立新项目时,好奇地下载了Scrum过程模板,做技术人的好奇心驱使下,搜索网上如何安装Scrum的模板,开始了Scrum之旅。想真正做好Scrum,自认为要先从很早以前的PSP说起,PSP(Personal Software Process,即个人软件过程),Scrum呢,有点像TSP(Team software Process,团队软件过程)。
想成功做好Scrum,需要先潜心修炼好个人,特别是个人的时间管理能力,需要学习学习周金根的《敏捷个人》。不多废话,先说说大家心目中的Scrum和我心中的Scrum吧。
Scrum的由来:
Scrum原来是英语中橄榄球运动的一个专业术语,表示“争球”。现在已经被用来特指一种敏捷开发的模型。(哦,原来敏捷过程不是一种,而是有很多种啊,以前将XP和Agile划上了等号,原来XP只是Agile的一种形式啊),这是当前使用Agile的方法的比例,现在XP已经被淘汰了,如果再不跟上Scrum,就真的太OUT了。
什么是Scrum:
Scrum 是一个用于运行项目的框架,适用于需求难以预测的复杂商务应用产品的开发。它定义一组活动,这些活动可帮助您的团队更快地向客户交付更多价值。利用这些活动,客户有机会在您的团队开展工作时检查、指导和影响团队的工作。
Scrum 方法不会尝试在项目开始时定义所有内容。相反,项目团队以短小迭代(也称为“冲刺 (sprint)”)为单位进行工作,并随团队工作的进展不断改进计划。Scrum的典型开发流程为:
为什么Scrum
Scrum过程有几以下几个特点:
专注于如何在最短的时间内实现最有价值的部份;
每隔一两周或者一个月,我们就可以看到实实在在的可以上线的产品;
团队按照商业价值的高低先完成高优先级的产品功能,并自主管理,凝结了团队智慧创造出最好的方法因而提高效率?
能够在开发进程中不断检查,并作出相应调整,便于快速发现问题,促使团队和组织持续改进
换句话说,项目团队以不断对线客户需求点为目标,不断地增加新的需求点,以螺旋上升的过程不断满足客户的需求,项目不求大而全,只求“短、平、快”。
这种方式较好块回避了几个方面的问题:
1)传统方式开发,稍大的项目,开发周期都较长,利益关系人风险大,客户和投资人焦虑;
2)项目周期长,项目组成员缺乏成就感,不利于团队的长期作战;
3)项目管理和设计过程,因为没有客户的紧密配合,真实需求与开发成果出入较大,返工成本高;
4)重点不是非常突出,大量时间耗费在不重要或商业价值低的产品功能上;