SCRUM与 CMMI v1.3 的敏捷式项目管理

作者/林静兰

前言

SEI在 CMMI V1.3 版加入敏捷式项目管理( Agile Project Management)。主要是顺应市场瞬息万变潮流。由于速度就决定了成败与盈亏,在如此快速改变的外在环境下,唯有反应灵敏者才能生存,因此敏捷式项目管理( Agile Project Management) 就是在这样的背景下应运而生,现在正以惊人的速度在球扩散。 SEI 也顺应潮流在 2010 发行 CMMI V1.3 加入 Agile 项目管理,包括的10 个流程领域如CMPPPMC, REQMPPQARDTSPIVER及 VAL。其中包括个 ML2 PA及 个 ML3 的 PA。 但CMMI对 Agile的实作解读并不够直觉,因此要从CMMI的角度来看,而不是Agile的角度来看。因此在导入 CMMI 的流程中如果选择 Agile 如何用CMMI的角度来解读则是一种挑战。本文想先用 SCRUM 来说明 Agile 敏捷式项目管理,再来探讨如何以用CMMI的角度来解读。

What is SCRUM?

SCRUM是一种 『Iterative and incremental 』软件开发过程,通常用于敏捷软件开发。SCRUM一词源自英式橄榄球,在两队前锋对峙下互相争球,也可以解释做「a usually brief and disorderly struggle or fight」 SCRUM把项目开发过程化整为零,可快速反应需求改变,及开发时间紧迫的项目。 因此SCRUM是非常适合快速变化的项目,或非常紧急要求的项目。每一次 Sprint,通常2-4周。

因此 SCRUM是一种灵活的软件开发方法。而不是一个完整的过程或方法,它是一个框架,而不是提供完整及详细描述一切如何做的流程或规定。这就是如好的球队将知道如何解决它的问题。所以『Sprint计划会议』上讨论期望的结果,而不是一套(ETVX)标准。ETVX 包括了任务定义,验证标准,并允出标准提供大部分的方法。

SCRUM团队是自我组织的,该小组是跨不同功能,每个人负责一个功能,包括设计到实施参与。SCRUM小组有两个角色:一SCRUMMaster和 产品须需求者。SCRUMMaster可以被看作是一个教练团队,帮助团队成员进行SCRUM的框架,确保发挥其最高效率。产品负责人代表了业务,客户或用户,负责确认正确的产品。

SCRUM项目进展,是一系列的Sprint。通常一个Sprint是不超过一个月的。一开始,一个Sprint,团队的成员承诺的客户功能,被列入该项目的产品Product Backlog。在最后的Sprint,这些功能完成程序撰写,测试,并集成到不断发展的产品或系统。在最后的一次Sprint是进行 Sprint Review,会依据客户或其他人提供的意见,展示产品,本次的结论可能会影响下次的Sprint

SCRUM的主要活动
Sprint 主要活动如下:
1.Sprint (1~4 )(视项目大小会有 个 1~4),一个Sprint不建议超过一个月,超过一个月最好想办法再细分。
2.Brief Daily Meeting (Daily SCRUM Meeting)Daily 主要要报告以下三件事
 ‧昨天做了什么事?(或今天做了什么事,依开会时间而定
 ‧今天要做什么事?(或明天要做什么事,依开会时间而定
 ‧工作上是否遇到任何阻碍或问题?(主持者(SCRUM Master)必须快速解决成员所遇到的困难。
3.Sprint Review Meeting(检讨会
4.继续重覆上述步骤到项目完成 

因此SCRUM项目的主要活动就是Sprint。 SCRUM是一个” Iterative and incremental 过程,因此该项目被分成一系列连续的Sprint。每个 Time-boxed,通常一个星期之间和一个月。最常见的Sprint为两个星期。在此期间成员会完成小部分功能,包括设计到程序撰写和测试功能。

每次Sprint的第一个活动是「Sprint planning meeting」。在会议上,使用者和团队讨论的需求优先次序也就是项目的Product Backlog。小组成员承诺可以完成的需求,然后创建一个Sprint Product Backlog,也可以解释为任务执行列表(To do list)

每天的SCRUM会议是由所有团队成员参加,包括SCRUMMaster和使用者。 每次会议Time-Boxed不超过十五分钟。 在此期间团队成员分享他们目前的工作进度,今天的工作及工作困难。

最后一次的Sprint是审查活动。在Sprint评审,团队展示功能,过程中可能会因审查而增加功能。审查会议的目的是借由审查获得产品的反馈。这种反馈可能会导致更改为刚交付的功能。但它可能同样有可能导致修改或添加功能因此修正Product Backlog

每次Sprint活动结束时会进行的每一次Sprint回顾展。团队参加包括SCRUMMaster和产品所有者。这次会议是一个回顾机会,除表示短期即结束,透过经验学习并找出下次Sprint可以改善的部份。

SCRUM项目主要产出

‧产品本身。也是每个Spring最后的产出。
Product backlog 是一个完整的功能表列,包括功能的优先次序, 团队可以依优先次序进行以提高效率。 Product backlog通常在第一次sprint planning meeting 中产出。 Product backlog 也可以视为 To do list
Release burndown chart。主要是可以一目了然所有工作进行的进度及完成的工作。

结论

SEI在 CMMI V1.3 版加入敏捷式项目管理( Agile Project Management),项目可选定 SCRUM 的开发方式,也就是敏捷式项目管理。但如何执行 CMPPPMC, REQMPPQARDTSPIVER, VAL 等各流程领域, 评鉴过程又如何认定证据这是一个挑战,也将是所有或未来将导入 CMMI 的公司将进一步了解, 这也是笔者想待续在下次的文章中继续探讨的部份。


评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。