公司从去年年底开始实施CMMI3,记得当初上培训课的时候,听着老师介绍过程管理,项目管理,工程过程,支持过程这四大类过程域的时候,全部门上下听得稀里糊涂,从未想到这个鬼东西还这么复杂,这么麻烦。
公司之所以要实施CMMI3,一来是想规范一下项目开发流程,二来是拉更多的外包项目,因为有些项目投标时,有些客户一定要求要通过了CMMI。全部门上下都没有实施过CMMI的经验,有些同事在以前上班的公司早已实施过CMMI,有些也轮不到他们去参与。所以实施CMMI3感觉有点像摸着石头过河。实施七八个月,过程虽然痛苦,但收获彼多。
CMMI分为五个等级:CMMI1.初始级 2. 已管理级 3. 已定义级4. 量化管理级 5. 优化管理级,公司可以直接评CMMI3级,但要评CMMI4级,要通过CMMI3级才可以实施,CMMI5级则要先通过CMMI4级。
CMMI3的体系文件主要分为四大类过程域:过程管理,项目管理,工程过程,支持过程,每个过程域下面都有相应的模板文件。
财富库:财富库里面包括六个子库
库名: | 存放内容 | 责任部门 |
标准过程库 | **公司CMMI标准过程集合(含过程、指南与文档模板) | EPG |
培训库 | 公司级培训教材与相关资料 培训工作资料保存 | 办公室 |
开发研发类经验 | 存放公司产品开发类、产品研发类、维护开发类项目在实施中的好的记录与资料、经验教训,以供其它项目参考 | **部门 |
过程改进经验库 | 存放公司过程改进中的优秀过程记录,包括改进计划、改进报告、改进经验、案例、评估记录等资料 | EPG |
测量库 | 存放组织各部门的测量数据及测量分析报告 | EPG、各测量责任部门 |
软件构件库 | 可供组织项目组复用的公用软件、代码 | **部门 |
软件项目开发活动中主要的几个步骤 :项目立项->初步策划(包括编写项目总体计划初稿,编写项目进度计划初稿等)->需求调研(编写用户需求规格说明书和需求规格说明书)->总体策划(在初步策划的基础上编写计划书)->设计(概要设计和详细设计)->编码(根据详细设计与编码规范进行编码)->单元测试->测试(集成,系统)->试运用->验收交付->结项,开发过程中还有很多评审,比如需求规格说明书评审,概要设计说明书评审,详细设计说明书等,每次评审时都有评审检查单和评审报告或是评审会议纪要,这些都将
成为CMMI评审的直接证据或间接证据。
配置管理的工具:公司是用VSS版本控制器来进行配置管理,其他的版本控制 器也行,这是没有特殊规定的。
PIID表:PIID表是用来记录CMMI实施的直接证据,间接证据,访谈证据的Excel表,这个表相当重要,评审的时候要检查这个表,然后去配置库找相应的文档。
角色: 在CMMI参与人员中,可分为很多角色,不同的角色各司其职。
PM:项目经理; DEV:开发人员; EGP:过程改进组; QA:质量保证员
CM:配置管理人员 SEPG 软件工程过程组 SAM(部门经理) Tester 测试人员
GM:副总,副总经理,高层领导
不同的级别,在CMMI3实施中担任不同的角色,访谈的时候也会对不同的角色分类访谈,各个角色人员必须熟悉自己任务与自己写的文档,对相关的其他工作与流程也要了解,因为评估师有可能会问及其他角色的问题.
访谈答案的准备:在访谈问题准备前,一般培训老师会给出一些针对不同角色的访谈问题,然后由我们自己整理答案。在评估前,会有几次的模拟访谈。
项目经理模拟访谈问题:
1. 项目介绍,自我介绍
2. 如何作项目估算
3. 如何作项目定义,裁减?
4. 怎么编写项目计划?
5. 怎么做项目监控
6. 项目执行中出现偏差,如何处理?
7. 如何管理风险?
8. 测量分析活动如何做?
9. 何时做决策分析?针对什么问题,怎么做?
10. 项目如何做需求调研?
11. 如何分析需求?
12. 如何确认需求?
13. 如何管理需求变更?
14. 如何跟踪需求?
开发人员设计人员模拟访谈问题:
1. 自我介绍,职责
2. 工作由谁分配?项目计划,进度计划,周例会;
3. 怎么根据需求做概要设计的?
4. 概要设计详细设计如何评审?
5. 是否参与评审?发现了哪些问题?
6. 如何做详细设计?
7. 如何判断详细设计够了?足可以指导开发的工作。
8. 编码是否有编码规范?
9. 如何做单元测试?
10. 单元测试发现的缺陷如何处理?
11. 单元测试结束后,如何产品集成?
12. 手工如何做集成?
13. 集成环境是怎样的?
14. 集成顺序是如何?为何要这么做?
15. 开发人员如何修改BUG?
16. 是否存在开发人员觉得不是BUG,测试人员觉得是的情况。怎么解决?
17. 开发人员如何对配置库进行使用?
18. 设计开发人员的职责是什么?
19. 接受过哪些跟设计开发相关的培训?
20. QA有无检查你们的工作?
EPG(过程改进小组)模拟访谈问题:
1. 如何策划公司过程改进工作的?策划过程?
2. 怎么确定改进的目标的?
3. 过程改进过程中收集了哪些过程改进的建议?
4. 如何对周期性的问题改进?
5. 改进计划 ?
6. 如何实施改进?
7. 改进效果的监控如何进行?
8. 财富库如何管理?
9. 职责,培训,工作产物放在哪里,如何监控,QA如何检查工作。
QA(质量保证)模拟访谈问题:
1. 如何做项目质量的保证?
2. 如何对策划的过程进行检查?
3. 如何检查需求规格说明书?(对工作产品德检查)
4. 对项目的检查,发现最主要的问题是什么?
5. 造成这些问题的原因?
6. 发现的问题如何沟通解决的?
7. 谁来检查你的工作? 第三方QA
8. 问题长时间没有解决如何做?
9. 质量保证过程的方针?
10. 对EPG提出了哪些建议?是否接受?
测试人员模拟访谈问题:
1. 项目测试目的?
发现问题,确保产品达到需求的要求。
2. 如何对测试计划?
对象,进度,开始准则
3. 如何写用例?
根据需求规格说明书,覆盖测试需求;项目特别的流程分析,异常情况,用例发现缺陷的能力。
4. 测试和开发之间衔接。
开发人员集成完成后,给安装包,进入测试环境进行测试,测试完后发现的缺陷提交到MANTIS,(缺陷管理过程的流程:分派,解决,验证,分版本解决)
5. 对于测试结果的地分析?(怎么通过结果分析,是否达到要求可通过测试,测试用力的覆盖和缺陷解决率,稳定性,是否达到结束要求准则)
6. 测试报告的内容?
7. 职责,资源,培训,
8. 其他角色的关系,人员怎么安排,如何分配,怎么确认,怎么做汇报。与PM,QA的关系。
9. 测试环境,软硬件?怎么组建这些测试环境,工具….测试用例的数据准备,考虑特例。等价类,边界值。如何判断测试解释结束,通过的方法。
10. 打开关闭趋势,产品是否稳定。测试轮数太少。
对于CMMI3的一个很大的感触就是文档太多,成本太高,小项目根本不可能嫌钱。CMMI3历时七八个月,加了无次班,但受益匪浅。