|
地板

楼主 |
发表于 2010-7-2 10:38:18
|
只看该作者
|
本帖最后由 williams 于 2010-7-2 10:42 编辑
回复 jane 的帖子
首先,谢谢你问题,你问题概括而言——2条,第一条,需求变更和优先级怎么操作? ;第二,在SPRINT周期中,BACKLOG的从计划到实现的不可控、不协调。根据以上情况,帮你分担一下:
首先,大家要明确一下AGILE或者说SCRUM核心思想,在CMMI中,大家讲需求不断分析细化,一般是按照自顶向下逐层细化的,最后细化到可实现为止;RUP中将需求作为对象模型分解成若干集成体,然后通过自低向上的集成来完成需求;SCRUM 在获取需求是先将需求分解到每个需求都是可实现情况为止,也就是说SCRUM需求从实现基础上都是独立和拥有同样的地位,而CMMI 和 RUP的需求都不注重需求的可持续实现,从这种角度就延伸出一个问题,既然SCRUM需求都是一样的,为什么要划分优先级呢?
(插入:1、从根本而言,完成需求就是我们服务于组织和客户的目的,所以以上我所说的需求完成就是指项目完成;
2、自顶向下与自低向上,在一个项目实施过程中,有很多的都是结合应用的,我只是针对质量体系特征和项目实施的情
况而言的通常惯例描述,所以大家不要误解为什么CMMI要自顶想下 为什么RUP要自低向上。)
SCRUM有几个基本原则和做法,比如PO角色,PO角色就像某个橄榄球俱乐部的老板一样,他和他的董事会再雇佣教练和选择团队的时候他们就会向教练和队员描述俱乐部在这年要实现什么目标。实际上,他就是为了俱乐部服务的,他的需求就是为了符合某个利益。所以PO角色总体的责任就是要负责PRODUCT LINE的利益,那么最为团队和教练就不应该也没有能力去决定什么样的需求最高优先级的,因此,在敏捷中,一定要注意,PO决定需求优先级,不要让团队和教练参与进去,确定需求优先级一切责任和义务交给PO.这样,才能提高一个SCRUM团队的效率。
需求的变更—— 在本贴文中,我提到了需求的变更问题,这里通过另一个角度的两个方面来帮你解决疑惑,我们为什么说在一个SPRINT Cycle中基本是不允许变更BACKLOG的?首先上节我们说的需求要分解到可是实现为止(需求可实现中需求未必是最小可实现的需求颗粒),那么我们在SPRINT PLANNING MEETING中分配任务的时候就已经对工作量和规模进行估计,并准备SPRINT Cycle进行冲刺,什么叫冲刺,冲刺就是尽全力在短时间内完成到达终点,如果在一个冲刺阶段,你变更需求,相当于你百米冲刺的时候多加了跨栏,那么能在规定实现完成任务嘛,所以这是一个较大风险会很大导致项目的迭代目的失败。从另一方面说,一个项目有无数次的冲刺,按照计划初始的时候 你为项目终极目标设定了每个冲刺所需要力量(资源 技术 环境)。但是突然在一个冲刺阶段 添加一个或多个跨栏,那么就算你再上一个SPRINT Cycle中按计划达到目标,但是已经透支体力,你怎么保证下个SPRINT Cycle 你力量去完成目标呢。所以在一个SPRINT Cycle中不断更改目标是导致SCRUM失败主要原因。
(插入:为什么说SCRUM中,控制风险制度很高,原因是需求颗粒小,周期短促迭代降低风险系数以及团队的互补增减团队成
员之间的监督,所以在PO出具P-BACKLOG的时候,我们将他分解成SPRINTBACKLOG的时候尽量将SPRINT CYCLE之于可控可
估状态)
那么,上段说了需求不要再一个SPRINT PLANNING MEETING后变更,站在PO角度说 ,我们响应客户的,要尽早创造最值钱的产品,所以BACKLOG必须更改,那么听到这些话,SCRUM可以要求重新开SCRUM PLANNING MEETING来确定优先,来制作完成最高的优先级故事点,或者这个新需求挪到下一个SPRINT再作出修改。
回答第二条问题:
我要知道SCRUM是迭代形式交付可工作的软件,在软件特征上,是要与上一个迭代的产品的功能集成或者是修复上一次迭代没有解决的软件问题,也就是我们常说增量。那么说到迭代我们就要知道迭代形式起源来自WATERFALL,是针对WATERFALL缺点而眼生出来的,有实现软件的目标一致,交付手段不同,那么在迭代开发周期中是由许多小WATERFALL组成,为什么WATERFALL现在还有用的 因为她有一条很重原则,就是有层次性,没有上一个产品或产品组件(或称为活动)输出必然指导一下相关产品输入,就像软件没有做出及没有办法通过测试活动来验证功能一样,就像你不能拿着需求规格说明书 设计说明说去做测试验证一样。现在就映射到SCRUM团队中针对一个sprint cycle 中活动来,常规WATERFALL开发要求文档是为了承诺和记录以便最后评估结果和过程检查,在SCRUM由于有了DAILY SCRUM MEETING、及团队集体工作环境、故事墙和白板等工具 环境 所以导致“个体”交互是非常强烈的,这就是为什么要求SCRUM的团队基本特征必须有以上情况才可以的缘故,所以你说的sprint cycle过程中总会出现不可控情况的原因就是 团队虽然有SCRUM特征 但是却没有真实SCRUM内涵,那是出现在沟通机制不完善,SCRUM MASTER的游戏规则不准确,SCRUM TEAM不积极 等缘故,这是团队内部建设的问题。以后要注意这点。(另外,我可能以后会针对SCRUM团队建设讲解几点)
(另外:我们不要认为拥有SCRUM基本特征就是掌握了SCRUM规则,不是的,取决一个SCRUM团队是否真实,在于我们团队成员的决心和毅力——“SCRUM :和谐为主,以人为本”)
|
评分
-
查看全部评分
|