第2章 CMMI 3级精简并行过程综述.docx
《第2章 CMMI 3级精简并行过程综述.docx》由会员分享,可在线阅读,更多相关《第2章 CMMI 3级精简并行过程综述.docx(23页珍藏版)》请在冰豆网上搜索。
第2章CMMI3级精简并行过程综述
第2章CMMI3级精简并行过程综述1
2.1SPP模型1
2.2SPP过程域的目的4
2.3SPP与CMMI的关系5
2.4SPP文档结构与规范细分6
2.5SPP角色与职责表8
2.6机构软件过程改进的政策9
2.6.1目标9
2.6.2机构领导的支持9
2.6.3质量管理的政策10
2.6.4软件工程过程小组的政策10
2.6.5质量保证小组的政策11
2.6.7项目团队的政策11
2.7SPP裁剪与扩充的指导方针12
第2章CMMI3级精简并行过程综述
“精简并行过程”(SimplifiedParallelProcess,SPP)是基于CMMI以及软件工程和项目管理知识而创作的一种“软件过程改进方法和规范”,它由众多的过程规范和文档模板组成。
SPP主要用于指导国内IT企业持续地改进其软件过程能力。
此处“精简并行”的含义是:
(1)对CMMI3级以内各过程域的内容和要求作了“精简”处理。
(2)在产品生命周期之内,项目管理过程、项目研发过程和机构支撑过程“并行”开展。
本章是SPP的综述文章,它对SPP的思想方法以及企业的软件过程改进政策作了全面介绍。
阅读本章有助于读者更好地理解和应用SPP的所有过程规范和文档模板。
建议用户(企业)根据自身情况(如发展战略、研发实力等)适当地修改SPP,然后推广使用。
2.1SPP模型
SPP模型把产品生命周期划分为6个阶段,分别为:
✧产品概念阶段,记为PH0。
✧产品定义阶段,记为PH1。
✧产品开发阶段,记为PH2。
✧产品测试阶段,记为PH3。
✧用户验收阶段,记为PH4。
✧产品维护阶段,记为PH5。
在SPP模型中,软件项目的过程有三大类:
项目管理过程、项目研发过程和机构支持过程。
上述三类过程可以细分为19个主要过程域,分布在PH0到PH5的各个阶段。
项目管理过程包含6个过程域,分别为:
✧立项管理
✧结项管理
✧项目规划
✧项目监控
✧风险管理
✧需求管理
项目研发过程包含8个过程域,分别为:
✧需求开发
✧技术预研
✧系统设计
✧实现与测试
✧系统测试
✧Beta测试
✧客户验收
✧技术评审
机构支撑过程包含5个过程域,分别为:
✧配置管理
✧质量保证
✧培训管理
✧外包与采购管理
✧服务与维护
SPP模型如图2-1所示。
SPP模型的主要特征和优点有:
一、直观的过程模型
SPP模型将项目管理、项目研发、机构支撑所包含的工作划分为相对独立的三类过程,各个过程域之间的关系直观明了。
这样,机构领导、项目经理、开发人员、测试人员、质量保证人员、外包与采购管理人员等人根据SPP模型,很容易知道自己“应该在什么时候、按照什么规范做什么事情”。
所以SPP模型有助于使机构内的各个职能单位有条不紊地开展工作。
二、容易裁剪与扩充
SPP模型的三类过程贯穿了产品的整个生命周期,19个最常见的过程域都合理地安排在产品生命周期中的某些阶段。
用户可以根据自己产品的特征,适当地裁剪或扩充SPP的过程域,很容易制定出最适合于本产品的过程模型。
并行、迭代
配置管理质量保证外包与采购管理培训管理
根据产品特征确定最合适的开发模型,
以线性顺序为主,以并行、迭代为辅。
其它:
人力资源管理财务管理行政管理市场营销…
技术预研
服务与维护
客户验收
Beta测试
系统测试
技术评审
实现与测试
需求开发
系统设计
结项管理
项目监控风险管理需求管理
PH5产品维护
PH4客户验收
PH3产品测试
PH2产品开发
项目规划
立项管理
PH1产品定义
PH0产品概念
机构支撑过程
项目
研发
过程
项目
管理
过程
图2-1SPP模型
2.2SPP过程域的目的
SPP所有19个过程域的目的如表2-1所示。
项目管理过程域
目的
立项管理
采纳符合机构最大利益的立项建议,通过立项管理使该建议成为正式的项目。
杜绝不符合机构最大利益的立项建议被采纳,避免浪费机构的资源、资金、时间等。
结项管理
在项目开发工作结束后,对项目的有形资产和无形资产进行清算、对项目进行综合评估以及总结经验教训等。
项目规划
为项目的研发和管理工作制定合理的行动纲领(即项目计划),以便所有相关人员按照该计划有条不紊地开展工作。
项目监控
周期性地跟踪项目计划的各种参数如进度、工作量、费用、资源等,不断地了解项目的进展情况,以便当项目实际进展显著偏离计划时能够及时采取纠正措施。
风险管理
在风险产生危害之前识别它们,从而有计划地消除或削弱风险。
需求管理
在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。
项目研发过程域
目的
需求开发
通过调查与分析,获取用户需求并定义产品需求。
技术预研
在立项之后到开发工作完成之前的时间内,对项目将采用的关键技术提前学习和研究,尽可能早地发现并解决开发过程中将会遇到的技术障碍。
系统设计
设计软件系统的体系结构、用户界面、数据库、模块等,从而在需求与代码之间建立桥梁,指导开发人员去实现能满足用户需求的软件产品。
实现与测试
依据系统设计文档,编写并测试整个系统的代码。
在SPP中,实现与测试是“编程、代码审查、单元测试、集成测试、缺陷管理与改错”的综合表述。
系统测试
对最终系统进行全面的测试,确保最终系统满足产品需求并且遵循系统设计。
Beta测试
在产品正式销售之前,开发方将产品交付给一些潜在的客户免费试用,请他们对产品进行测试,并获取他们对产品的建议。
客户验收
客户依据合同对产品进行审查和测试,确保产品满足客户需求。
技术评审
尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。
机构支撑过程域
目的
配置管理
通过执行版本控制、变更控制等规程,以及使用配置管理软件来保证所有配置项的完整性和可跟踪性。
配置管理是对工作成果的一种有效保护。
质量保证
提供一种有效的人员组织形式和管理方法,通过客观地检查和监控“过程质量”与“产品质量”,从而实现持续地改进质量。
外包与采购管理
选择合适的承包商(外包)和供应商(采购),并依据合同进行有效的管理。
培训管理
根据机构(或项目)的需求来制定培训计划,并监督该计划的实施,确保培训取得预期效果。
服务与维护
是指产品销售之后的客户服务和产品维护,其宗旨是提高客户对产品以及对开发方的满意度。
表2-1SPP过程域的目的
2.3SPP与CMMI的关系
CMMI是SPP的主要参考标准,但是SPP并不是对CMMI进行简化处理后的结果。
两者都是用于指导软件过程改进的方法论,CMMI主要论述“应当做什么才能使软件过程能力达到CMMI某种级别”,而SPP则论述“应当怎样做才能使软件过程能力达到CMMI3级水平”。
SPP过程域和CMMI3级过程域的对应关系如表2-2所示。
SPP的19个过程域
CMMI3级以内的18个过程域
项目
管理
过程
立项管理
CMMI3级,DecisionAnalysisandResolution
结项管理
项目规划
CMMI2级,ProjectPlanning
项目监控
CMMI2级,ProjectMonitoringandControl
CMMI2级,MeasurementandAnalysis
风险管理
CMMI3级,RiskManagement
需求管理
CMMI2级,RequirementsManagement
项目
研发
过程
需求开发
CMMI3级,RequirementsDevelopment
技术预研
系统设计
实现与测试
CMMI3级,TechnicalSolution
CMMI3级,ProductIntegration
系统测试
Beta测试
用户验收
技术评审
CMMI3级,Verification
CMMI3级,Validation
机构
支撑
过程
配置管理
CMMI2级,ConfigurationManagement
质量保证
CMMI2级,ProcessandProductQualityAssurance
外包与采购管理
CMMI2级,SupplierAgreementManagement
培训管理
CMMI3级,OrganizationalTraining
服务与维护
SPP其它成果:
✧SPP综述文章
✧SPP培训教材
✧基于Web的项目管理工具
CMM3级,OrganizationProcessFocus
CMM3级,OrganizationProcessDefinition
CMM3级,IntegratedProjectManagement
表2-2SPP过程域和CMMI3级过程域的对应关系
2.4SPP文档结构与规范细分
SPP的文档结构如图2-2所示,SPP包含19个过程域、40余个规程、近60个文档模板。
SPP的规范细分如表2-3所示。
过程域
ProcessesAreas
SPIPolicies
Procedures
Templates
过程改进政策
文档模板
规程
图2-2SPP文档结构
项目管理过程域
主要规程
文档模板
立项管理
SPP-PROC-PIM
立项建议
立项评审
项目筹备
《立项建议书》
《立项调查报告书》
《立项可行性分析报告》
《立项评审报告》
结项管理
SPP-PROC-PCM
结项管理
《结项申请书》
《结项评审报告》
项目规划
SPP-PROC-PP
项目估计
制定项目计划
审批项目计划
项目计划变更控制
《项目估计表》
《项目计划》
《项目计划变更控制报告》
项目监控
SPP-PROC-PMC
项目计划跟踪
偏差控制
项目进展总结
《项目监控数据表》
《项目偏差控制报告》
《项目进展报告》
风险管理
SPP-PROC-PM
风险管理
《风险检查表》
《风险管理报告》
需求管理
SPP-PROC-RM
需求确认
需求跟踪
需求变更控制
《需求跟踪报告》
《需求变更控制报告》
项目研发过程域
主要规程
文档模板
需求开发
SPP-PROC-RD
需求调查
需求分析
需求定义
《用户需求说明书》
《产品需求规格说明书》
技术预研
SPP-PROC-TPR
技术预研
《技术预研计划》
《技术预研报告》
系统设计
SPP-PROC-SD
体系结构设计
用户界面设计
数据库设计
模块设计
《体系结构设计报告》
《用户界面设计报告》
《数据库设计报告》
《模块设计报告》
实现与测试
SPP-PROC-IT
实现与测试
《实现与测试计划》
《编程文档》
系统测试
SPP-PROC-ST
系统测试
《系统测试计划》
《测试用例》
《测试报告》
Beta测试
SPP-PROC-BETA
Beta测试
《Beta测试协议》
《Beta测试报告》
客户验收
SPP-PROC-CA
客户验收
《客户验收计划》
《客户验收报告》
技术评审
SPP-PROC-TR
正式技术评审
非正式技术评审
《技术评审计划》
《技术评审报告》
《技术评审检查表》
机构支撑过程域
规程与关键活动
文档模板
质量保证
SPP-PROC-QA
制定质量保证计划
过程与产品质量检查
问题跟踪与质量改进
《质量保证计划》
《质量保证检查表》
《质量保证报告》
《质量问题跟踪表》
配置管理
SPP-PROC-CM
制定配置管理计划
配置库管理
版本控制
变更控制
《配置管理计划》
《配置库管理报告》
《配置项变更控制报告》
外包与采购管理
SPP-PROC-OPM
外包管理
《外包开发竞标邀请书》
《承包商评估报告》
《外包开发合同》
《外包开发过程监控报告》
《外包开发成果验收报告》
采购管理
《采购竞标邀请书》
《供应商评估报告》
《采购合同》
《采购物品验收报告》
培训管理
SPP-PROC-TM
机构培训管理
项目培训管理
《培训计划》
《培训评估报告》
服务与维护
SPP-PROC-SM
客户服务
《客户服务计划》
《客户服务报告》
产品维护
《产品维护计划》
《产品维护报告》
表2-3SPP规范细分
2.5SPP角色与职责表
SPP的主要角色及其职责如表2-4所示(详见各个过程域对角色与职责的描述)。
企业在应用SPP时,可以将SPP的各个角色映射到企业原有的岗位上,也可以依据SPP角色建立新的岗位。
一个人可以被赋予多个角色,视具体情况而定。
常设角色
职责简述
机构过程改进角色
软件工程过程组
(SEPG)
(1)制定适合于本机构的过程规范。
(2)在机构范围内推广该规范(如培训、考核),评估机构过程能力等。
质量保证小组
(QAG)
(1)监督规范的实施,确保所有项目以及相关部门准照规范开展工作。
(2)分析并解决机构内存在的共性质量问题,协组SEPG完善规范。
项目
管理
过程角色
机构领导
(1)是机构内所有项目的主管,对立项管理和结项管理有最终决策权。
(2)监督项目经理的工作,审批项目经理的各种申请。
项目经理
(1)向机构领导汇报工作。
(2)是项目规划、项目监控、风险管理和需求管理过程域的负责人。
(3)监督项目成员的工作,审批项目成员的各种申请。
项目研发
过程
角色
需求分析员
调查、分析并定义需求,撰写相应的需求文档,尽最大努力使需求文档能够正确无误地反映用户的真实意愿。
系统设计师
根据需求文档设计软件系统的体系结构、用户界面、数据库、模块等,并撰写相应的设计文档。
程序员
(1)根据系统设计文档,编写软件系统的代码。
(2)随时测试和检查自己的代码,及时消除代码中的缺陷。
测试员
从事单元测试、集成测试和系统测试,主要工作包括制定测试计划、设计测试用例、执行测试和撰写测试报告。
机构
支撑
过程
角色
配置管理员
(1)为项目制定《配置管理计划》。
(2)创建并维护配置库,如分配权限、清除垃圾文件、备份配置库等。
质量保证员
(即QAG成员)
(1)为项目制定《质量保证计划》。
(2)周期性的开展“过程与产品质量检查”。
(3)跟踪质量问题,给出质量改进措施。
外包管理员
(1)挑选最合适的承包商,签订外包开发合同。
(2)监控外包开发过程,验收外包开发成果。
采购管理员
(1)挑选最合适的供应商,签订采购合同。
(2)验收采购物品。
培训管理员
制定机构(或项目)的《培训计划》,监督该计划的实施,撰写《培训评估报告》。
客户服务人员
为客户提供与产品相关的服务(如技术咨询),快速响应客户的要求,给客户一个满意的解答。
产品维护人员
(1)纠错性维护:
及时解决用户遇到的技术故障和消除产品中的缺陷。
(2)完善性维护:
在资源允许的情况下,不断改善产品功能与质量。
临时角色
职责说明
立项建议小组
(1)开展立项调查、产品构思和可行性分析,撰写相应文档。
(2)申请立项,并在立项评审会议上答辩。
立项评审委员会
由机构领导、各级经理、市场人员、技术专家、财务人员等组成,委员会按少数服从多数原则投票决定是否同意立项。
结项评审委员会
对项目的有形资产和无形资产进行清算,对项目进行综合评估,总结经验教训等。
结项委员会的人员组成与立项评审委员会的类似。
技术评审委员会
对工作成果进行正式技术评审,尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷。
该委员会由项目内外的技术专家组成。
配置控制委员会
对配置管理各项活动拥有决策权(例如审批计划,审批变更请求等)。
表2-4SPP的角色与职责简表
2.6机构软件过程改进的政策
2.6.1目标
●持续改进机构的软件过程能力,不断地提高产品质量、提高生产率并且降低开发成本。
●在一年之内,初步建立适合于本机构的软件过程规范,并使机构内的所有项目和相关部门执行该规范。
本年度机构内部对过程能力的评估成绩达到:
合格率为100%,良好率为50%以上,优秀率为25%以上。
●在两年之内,完善适合于本机构的软件过程规范,并使机构内的所有项目和相关部门执行改进后的规范。
第二年度机构内部对过程能力的评估成绩达到:
合格率为100%,良好率为75%以上,优秀率为50%以上。
或者通过CMMI3级评估。
补充说明:
评估成绩在100~85之间为“优秀”,85~70之间为“良好”,70~60之间为“合格”,分数低于60为“不合格”。
2.6.2机构领导的支持
●机构领导批准用于软件过程改进的必要经费,例如支付咨询费,购买相关软件工具等。
●机构领导组建SEPG和QAG,专门从事软件过程改进工作。
SEPG的主要职责是建立适合于机构的过程规范,QAG的主要职责是监督该规范的实施。
建议让SEPG和QAG的大部分人员重叠,这些人既是SEPG成员又是质量保证员,扮演两种角色。
这样不仅节约人力资源,并且提高了工作效果(由制定规范的人去监督规范的实施最合适不过)。
一般地,SEPG成员和质量保证员共占机构总人数的5%左右。
●机构领导不仅要口头支持,还要亲自参与软件过程改进的实践。
例如参加培训和考试,准照过程规范执行立项管理和结项管理等。
2.6.3质量管理的政策
质量管理口号:
“在开发过程之中内建质量而非修补质量”。
质量管理有种基本措施:
“质量保证”、“技术评审”和“测试”。
一、质量保证
机构的质量保证员周期性地检查项目成员的“工作过程以及工作成果”是否符合既定的规范,来监控和改进“过程质量以及产品质量”。
机构的质量保证员独立于任何项目,并赋予他一定的权利,对质量不合格的工作成果作出处理。
二、技术评审
在工作成果刚产生之际,对其进行技术评审(分正式或非正式两种),目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而提高产品的质量。
如果时间允许的话,应当尽可能多地对产品的重要工作成果进行技术评审。
技术评审活动由项目开发团队组织。
三、测试
测试是指通过运行测试用例(testcase)来找出软件中的缺陷。
测试与技术评审的主要区别是前者要运行软件而后者不必运行软件。
一般地,产品开发过程中有四个测试阶段:
单元测试、集成测试、系统测试和验收测试(或Beta测试)。
其中单元测试和集成测试可以由项目开发团队组织。
系统测试阶段必须有项目外的人员参与,以保证系统测试的客观性。
验收测试(或Beta测试)由客户组织。
如果有条件的话,建议机构成立专门的测试小组从事单元测试、集成测试和系统测试工作。
2.6.4软件工程过程小组的政策
机构领导任命一位熟悉软件工程、项目管理、CMM/CMMI并且有丰富工作经验的人担任SEPG的负责人。
在机构领导的许可下,该负责人组建SEPG(成员可以是全职的也可以是兼职的)。
●第一年度的任务与目标
✧SEPG约用2~3个月的时间,了解机构过程能力的现状,通过裁剪或扩充SPP,初步建立适合于本机构的过程规范。
✧SEPG约用1~2个月的时间,对机构全员进行培训和考试,确保全员了解本规范,并懂得如何应用。
✧之后SEPG协助QAG监督本规范在所有项目和相关部门的实施,并不断收集员工们反映的过程改进问题和建议,逐步改进过程规范(允许有小幅度的升级)。
✧本年度最后一个月,SEPG对机构的过程能力进行评估,并向领导和员工们通报“本年度过程改进工作报告”。
✧在SEPG、QAG和全体项目人员的共同努力下,争取使本年度过程能力的评估成绩达到:
合格率为100%,良好率为50%以上,优秀率为25%以上。
●第二年度的任务与目标
✧根据上年度的过程能力评估状况,以及员工们反映的问题和建议,SEPG查找机构过程能力的薄弱环节,研究出解决措施。
SEPG用1~2个月的时间,建立比较完备的过程规范新版本(允许有大幅度的升级)。
如果机构资金充足的话,可以邀请CMMI评估师作正式评估前的指导。
✧SEPG约用1~2个月的时间,就规范的更新内容对机构全员进行培训和考试,确保全员了解新版本规范,并懂得如何应用。
✧之后SEPG协助QAG监督本规范在所有项目和相关部门的实施,并不断地完善过程规范。
✧本年度最后一个月,SEPG对机构的过程能力进行评估,并向领导和员工们通报“本年度过程改进工作报告”。
如果机构资金充足的话,可以邀请CMMI评估师对机构过程能力进行正式评估。
✧在SEPG、QAG和全体项目人员的共同努力下,争取使本年度过程能力的评估成绩达到:
合格率为100%,良好率为75%以上,优秀率为50%以上。
或者通过CMMI3级评估。
2.6.5质量保证小组的政策
机构领导任命一位熟悉过程规范并且有丰富的质量管理经验的人担任QAG的负责人(或称为质量经理)。
在机构领导的许可下,该负责人组建QAG(成员可以是全职的也可以是兼职的)。
QAG在行政上独立于任何项目。
这种独立性有助于质量保证员客观地检查和监控“过程以及产品的质量”。
QAG准照SEPG制定的“质量保证规范”开展工作。
机构领导赋予QAG一定的权利,可以对质量不合格的工作成果做出处理。
这种权利使得QAG的工作不会被轻视,并有助于加强全员的质量意识。
对于QAG与项目之间出现的难以调和的争议,由机构领导处理。
2.6.7项目团队的政策
项目中的任何管理人员、开发人员、测试人员等,必须学习与本职工作相关的过程规范,每个人都必须明白自己“应当在什么时候依据什么规范做什么事情”。
项目经理应当树立榜样,并且督促项目成员们按规范做事。
允许项目经理根据本项目的特征,在SEPG和QAG的指导下,适当地裁剪或扩充机构的过程规范,从而快速建立本项目的过程规范。
这项工作应当在“项目规划过程域”中完成,并在《项目计划》中体现出来。
如果项目对机构过程规范的裁剪幅度比较大,遭到QAG的反对,如果双方不能达成共识,则由机构领导处理该争议。
SEPG对项目过程能力的评估成绩将作为评定项目人员工作业绩的重要因素,具体比重由机构领导决定,建议占30%以上的比重。
2.7SPP裁剪与扩充的指导方针
●不要迷信或者死搬硬套他人推崇的过程标准和规范(例如CMM/CMMI,ISO,RUP,SPP等等)。
SEPG一定要根据机构的实际情况(如发展战略、研发实力等)来制定机构过程规范,要充分考虑过程改进的成本和效益。
能够以比较低的代价有效地改进机构过程能力的规范才是好规范。
●SEPG要有计划地、逐步地完善机构的过程规范,切忌盲目追求“大而全”,否则“欲速则不达”。
软件过程改进不是一次性买卖,不能靠“革命”,只能靠持续地改良,不进则退。
●SEPG应当具备一定的软件工程和项目管理知识,再通读CMMI和SPP(或接受培训),才能结合机构实际情况裁剪或扩充SPP,形成机构自己的过程规范。
●SPP对其19个