设计模式体现的是一种思想,而思想是指导行为的一切------------开发智能要比机械性的生产商品要简单的多./我要从南走到北,从1到2^10/-----------------Life is a pure flame, and we live by an invisible within us.
2.SCRUM简介[摘自网络]
上一篇 /
下一篇 2008-04-19 10:08:29 / 天气: 大风
/ 心情: 平静
/ 个人分类:::方法类::
SCRUM方法
由Ken Schwaber和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进,名称来自英式橄榄球(在比赛中每个队员都应时刻保持对场上全局的判断,然后通过集体行动,奋力实现同一目标──胜利)。
SCRUM方法最初实践于Easel公司(1993年),现已被数十家公司数百个项目开发中应用,适用于需求难以预测的复杂商务应用产品的开发[11]。SCRUM提出的SCRUM Meeting、Sprint、Backlog、SCRUM Master、SCRUM Team、Demo等模式已被PLOP作为组织和过程模式(Organizational and Process Pattern)的标准[12]。
ITPUB个人空间,fvi IQ.y;m
SCRUM将工业过程控制中的概念应用到软件开发中来,认为软件开发过程更多是经验性过程(Empirical Process),而不是确定性过程(Defined Process)。确定性过程是可明确描述的、可预测的过程,因而可重复(Repeatable)执行并能产生预期的结果,并能通过科学理论对其最优化。经验性过程与之相反,应作为一个黑箱(Black box)来处理,通过对黑箱的输入输出不断进行度量,在此基础上,结合经验判断对黑箱进行调控,使其不越出设定的边界,从而产生满意的输出。
SCRUM方法将传统开发中的分析、设计、实施视为一个黑箱,认为应加强黑箱内部的混沌性,使项目组工作在混沌的边沿,充分发挥人的创造力。如将经验性过程按确定性过程来处理(如瀑布模型),必将使过程缺乏适应力。
ITPUB个人空间C0^la/_|%[%Y"h|P
SCRUM方法的开发过程
0w$m oMx0 包括三个过程:
s7qb bX
hP0 (1) 计划和体系结构设计(确定性过程)ITPUB个人空间R2a#s&F,\,rf
将Backlog(急待完成的一系列任务,包括:未细化的产品功能要求、Bugs、缺陷、用户提出的改进、具竞争力的功能及技术升级等)按优先级排序形成Backlog 列表,根据该表和风险评估制订产品交付基线。
ITPUB个人空间t7b%JOZA
建立系统体系结构(如为已有系统改进,则只作有限分析、调整),将Backlog项按高内聚低耦合的原则分解为一系列问题包(Packets,每个Packet是一组对象或构件的集合) ,依据同样原则相应划分若干个开发小组(SCRUM Team),分配各小组合适的Backlog项或问题包。建立开发运行环境。
5|E2N)b1A-S-~!o0 (2) Sprint(经验性过程)
n g&}-p(M;C
X0}9B0 该过程由若干个迭代的疾跑(Sprint) 活动组成,直至风险评估认为产品可交付为止。一个Sprint是在限定时间段内(Sprint周期,通常为1~6周,可在前一个Sprint结束时调整)的一系列开发活动(包括分析、设计、编码、测试等),每个SCRUM Team并行开发且必须步调一致(在一个Sprint结束后,均须完成所分配的Backlog项并有可执行的产出)。
L
QXVRl0
每个Sprint包含以下活动:
'`6i0O3}Bv0 A: 开发。对分配的Backlog工作进行分析,将所需改动(changes)映射到各packets,打开packets,进行领域分析,然后设计、开发、实施、测试、文档化这些改动。ITPUB个人空间*]&}e*M8n$D
B:打包(Wrap)。封装packets,产生一个满足Backlog需求的可执行版本。ITPUB个人空间/@@8be$FI
C:评审(Review)。所有的SCRUM小组一起开会,提交各自的工作并演示(Demo),然后提出和解决问题(Issue)及难点(problem),增加新的Backlog项;发布、审查或调整产品的标准规范;进行风险评估并提出合适的对策;确定下一个Sprint的工作内容和结束时间。
Dh9~y'oq%P:n1z Aa
f0 D:调整(Adjust)。根据评审会汇集的信息,对受影响的Packets进行适当调整和巩固。
W-lT,iKww0
(3) 交付和巩固(确定性过程)