我对Scurm的理解
2011-09-05 17:29 htc开发 阅读(357) 评论(0) 编辑 收藏 举报先说说一些大家都比较模糊的词语,来一个准确一点的定义。
Scrum,名称来自英式橄榄球,寓意是在比赛中每个队员都应时刻保持对场上全局的判断,然后通过集体行动,奋力实现统一目标。
Backlog,急待完成的任务,包括未细化的产品功能要求、Bugs改进、具竞争力的功能及技术升级。
Sprint,在限定时间内的一系列开发活动。
Defined Process,确定性过程,可明确描述的、可预测的过程,因而可重复执行并能产生预期的结果,并能通过科学理论对其最优化。
Empirical Process,经验过程,应作为一个黑箱来处理,通过对黑箱的输入输出不断进行度量,在此基础上,结合经验判断对黑箱进行调控,使其不越出设定的边界,从而产生满意的输出。
我个人将Scrum的开发理解为三个过程。
1、计划和体系结构设计(确定性过程)
将Backlog按优先级形成列表,根据该表和风险评估制订产品交付基线。
建立体系结构(如果是为已有系统改进,则只作有限分析、调整)。
2、Sprint(经验过程),又可分为编码、打包、评审三部分
编码:分析、设计、开发、实施、测试
打包:产生满足需求的可执行版本
评审:演示、发布新问题、调整标准规范、进行风险评估
每一个组员对于自己或者自己小组的新事项、正在处理事项、已完成事项都必须有一个明确的列表。
一个Sprint完成以后,必须将所分配的Backlog解决,而且要有所产出。
3、交付和巩固(确定性过程)
一旦根据风险评估结果认为可交付产品时,即进入该阶段。
SCRUM过程认为一个产品的开发是一直持续的过程,除非经风险评估。产品交付后的巩固活动类似于传统方法中的维护和改善,目的在于整理Sprint期压力下忽略的工作,为下一阶段的开发做准备,以便轻装上阵。
Scrum的控制:
根据对控制项特别是风险的不断度量评估和权衡,计划和进度不断相应调整,保证实现产品的商务目标;
另一方面,对开发中的工作任务Backlog动态地进行优先级排序,开发组总是先开发优先级最高的Backlog项,这样就保证了资源的最合理使用。
Sprint期间的调控:
在Sprint期间,应使小组尽量避免外界的干扰(不可将新的Backlog任务加进来,组内产生的Backlog可放到整个项目的Backlog列表中,也可在本次Sprint中解决),使小组成员专心于目前的工作,使他们工作在混沌的边沿。
SCRUM会议:
对小组行为进行监控和刺激。会议在Sprint期间每天在同一地点举行。会议上,组长对每个小组成员提三个问题:
1、昨天的工作进展如何。
2、有否遇到困难和障碍。
3、今天的工作打算。
每一次的会议,组员应该在会议之前得到会议的目标与议程。如果在会议中展开了不在议程中的话题,把它放入另外一个列表中,会议最后为这个话题选择一个负责人。
如果会议没有达到目标,则再进行一次会议。如果已经达成一致的结果,记录下来,确保所有人都认同。
本文章转自互联网
本文章