设计模式体现的是一种思想,而思想是指导行为的一切------------开发智能要比机械性的生产商品要简单的多./我要从南走到北,从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个人空间,fv i 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(经验性过程)
ng&}-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) 交付和巩固(确定性过程)
QvYo6jTU!sK0        一旦根据风险评估结果认为可交付产品时,即进入该阶段。该阶段的活动包括:组装,系统测试和回归测试(Regression),准备培训材料,完成最终文档。ITPUB个人空间3Wr ^UT HC
        SCRUM过程认为一个产品的开发将一直持续下去,除非经风险评估后认为应停止。产品交付后的巩固活动类似于传统方法中的维护和改善,目的在于整理Sprint期压力下忽略的工作,为下一阶段的开发做准备,以便轻装上阵。ITPUB个人空间R9B z M"xy c

       SCRUM对过程的管理
} zJ)} u K B&N0        (1) SCRUM的控制手段。
G1q;i*S$x0        SCRUM提出了八个控制项(Controls)用于开发过程的调控,其中风险控制是首要的手段。ITPUB个人空间5x:Tg9\V,S,]5I#| L#T,P
        A:Backlog。
'A/_Dwb2K^l6g0        B:对象/构件。ITPUB个人空间 |3@ Ka[ z{b
        C:Packets。
$R9FI Y;o!J0        D:变动(Changes)。实施一个Backlog项时,对相应Packet的改动。ITPUB个人空间H g(aW0E"|2v V"[V
        E:难点(Problems)。实施一个变动时所必须解决的技术难点。ITPUB个人空间u+P NG.`F"W
        F:问题(Issues)。涉及到整个项目或在Backlog项分解到Packet之前须解决的问题。ITPUB个人空间'YwFEp0}1b9l#\/m)D
        G:措施(Solutions)。对问题或难点的解决,通常会导致变动。
6f7|4R(pP`)`0        H:风险(Risks)。影响项目成功的风险,应持续跟踪评估并相应做出调整。风险评估的结果将影响其他所有控制项。SCRUM定义了六个概念性变量来用于风险评估:用户需求,时间压力,竞争,质量,远见(vision)和可用资源。ITPUB个人空间`3N0q0?9]E?0f5gEQ {:h
在SCRUM的各个阶段都使用这些控制项来评估和权衡,管理人员侧重于以此管理Backlog,开发组用以处理变动和难点。所有人员一起来管理问题、风险和措施。
-Pny3|"rC Aa(\0根据对控制项特别是风险的不断度量评估和权衡,一方面,计划和进度(在每个Sprint结束时)不断相应调整,保证实现产品的商务目标;另一方面,对开发中的工作任务Backlog动态地进行优先级排序,开发组总是先开发优先级最高的Backlog项,这样就保证了资源的最合理使用。另外,SCRUM强调度量(采用标准功能点度量方法)的重要性,通过对每个Sprint中生产率等的度量,计划和进度将越来越趋于准确。


r%W [-M'Fs]&M5E'K)V0        (2) 项目组织。ITPUB个人空间s @QWf VP
        项目组由全职开发人员及与该交付产品有关的市场人员、销售人员、用户等组成。设以下小组:ITPUB个人空间&k,_#sUjW
        A:项目管理组。由产品经理领衔,包括总设计师,各SCRUM小组组长,市场、销售的高级职员及典型用户等。ITPUB个人空间.^9v8v?9L,ij
        B: 若干个SCRUM小组。各小组由组长(SCRUM Master)领衔。每个小组都是跨专业的(通常包括开发人员,文档人员,质量控制人员或用户代表等),通常为3~7人,以使小组内有充分的交流。小组的划分最好是功能导向的(按所分配的问题包或Backlog),也可是系统层次导向(按体系结构中的分层)。.
@Q9J%vR)l3Rm1Y0在项目组人数增大时,可在管理组之上再设管理组(SCRUM of SCRUM),从而使SCRUM方法的应用到大项目中。

ITPUB个人空间#JdHO+\#p4eg#N^ d6k
        (3) Sprint期间的调控。ITPUB个人空间l~5d,VT c6u
        在Sprint期间,应使各SCRUM小组尽量避免外界的干扰(不可将新的Backlog任务加进来,组内产生的Backlog可放到整个项目的Backlog列表中,也可在本次Sprint中解决),使小组成员专心于目前的工作,使他们工作在混沌的边沿。
Zh3Y2y?0为避免项目组在Sprint期间不陷入混乱,SCRUM采取两个措施:ITPUB个人空间 {Fm#ie
        A:SCRUM会议(SCRUM Meeting)。对小组行为进行监控和刺激。会议在Sprint期间每天在同一地点举行,由SCRUM Master主持。会议上,SCRUM Master对每个小组成员提三个问题:ITPUB个人空间Zq!lTA H:a)fQ
        1) 昨天的工作进展如何。 
L!g-\6K(R)l l}5]s0        2) 有否遇到困难和障碍。ITPUB个人空间t,HS[ R!k:e6Q,f}
        3) 今天的工作打算。ITPUB个人空间fe,[2p:K?j
会后SCRUM Master集中精力排除障碍,小组成员则进行当天的开发。

ITPUB个人空间6X5V'~H HWL,b
        B:Sprint评审会议。评审后根据对每人的工作成绩,进行相应的激励。


mb;]D8X$Z0       SCRUM方法的实践效果和发展方向ITPUB个人空间EY:k Uw
        SCRUM在实践中大大提高了生产率(据软件生产率组织的Capers Jones称可提高6倍),在实施中有一个"间断平衡"(Punctuated equilibrium)现象(类似于自然界中物种的进化,在经过一段相对平衡的各自独立、并行的发展期后,在交汇处发生变异),即在经过紧张、并行的Sprint开发后,在Sprint评审时,软件产品产生较剧烈的变化。SCRUM方法的最近动向是设法借鉴XP方法。


q ~5f$g7o0


TAG: scrum

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 393
  • 日志数: 17
  • 建立时间: 2008-04-10
  • 更新时间: 2008-05-14

RSS订阅

Open Toolbar