|
1. 为什么一个软件公司需要基于CMM的软件工作过程?
建立及遵循基于CMM的软件工作过程可以为软件公司带来两个I: 保证(Insurance)和投资(Investment)。
保证是指公司能够保质,保量并按期交付给客户令其满意的产品, 即为当前工作带来保证。投资是指在做当前的软件工作的同时,一个项目或整个公司所建立起来的各项工作过程(各类文档/资料),可以为将来的相关工作提供参考,甚至可以被直接采用。
2. 我认为有关CMM的工作是公司管理层需要做的,与软件工程师没有太大关系。
如今的软件项目趋向于大规模和高复杂度。一个项目一般需要涉及多个阶段来完成:项目提议,需求分析,项目计划,系统设计,编制程序,各类测试,产品交付以及维护支持。在某些阶段可能需要一个队伍的共同参与。一个软件工程师应该参与多个阶段并与其他项目相关人员密切合作,这些工作的具体方针和实践都可以得益于CMM。
3. 我们已经处于编程阶段,可是我们的客户还是不断更改/增加软件需求,我们应该怎么办?
这是软件开发项目中经常发生的情况。一个软件公司不可能要求它的客户具备CMM的知识或实践。但在这种情况发生时,项目负责人(Project Leader)或技术经理(Technical Manager)应该遵循CMM建议相关的工作过程,组织项目人员讨论及评审这些变化,如果影响到产品设计,编程,测试以及交付日期时,项目负责人或技术经理应该及时与客户沟通,向他们出示相关文档,协商解决方案。
4. 我们为项目所建立起的各类工作过程,是否适用于公司里的其它项目?我们是否需要借鉴或实施其它项目所建立起的各类工作过程?
一个项目建立起的各类工作过程(各类文档/资料)可以适用于其它项目。这要看公司的目标是CMM的哪个级别。CMM第2级要求各个项目建立并遵循适当的工作过程;CMM第3级要求整个公司建立适当的工作过程,各个项目可以根据实际情况在得到批准后剪裁或调整某些工作过程。
5. XSSC的公司标准软件过程(OSSP)与CMM之间的关系是什么?
这个问题其实是在问 ”XSSC的OSSP是如何具体体现CMM的?”。
CMM规范了在各个关键工作过程领域中应该进行的各种工作,但是并没有将这些工作系统地联系起来。在某些方面,CMM只列举出软件公司或项目应该具有的工作过程,文档或度量数据,但是并没有建议如何实际运作,如何建立文档,如何获取数据。 XSSC的OSSP根据公司的不同种类的软件项目(开发类项目,产品本地化类项目,和维护类项目),将CMM规范的各种工作按照实际发生的先后顺序贯穿于各类项目的整个生命周期中。同时,XSSC的OSSP也包括了XSSC在十多年的软件工作中累积和提炼出来的工作过程,文档样板,过程控制与数据收集的工具等内容,是XSSC达到CMM第3级的重要依据。
6. CMM第4级和第5级为什么比第2级和第3级涉及到的关键工作过程领域(KPA)来的少?
当一个公司向CMM高级别迈进时,所有低级别包括的KPA都要被考虑。另一方面,在进行CMM高级别的评审时,所有低级别的KPA都要被评审。因此, CMM第2级有6个KPA, CMM第3级有(6+7=13)个KPA, CMM第4级有(13+2=15)个KPA, CMM第5级有(15+3=18)个KPA。
7. 一个达到一定CMM水准或者已获得CMM级别的公司如何与CMM程度较低的公司进行项目交往或合作?
CMM水准较高的公司不能放弃自己的任何软件工作过程,也不能降低程度地实施公司的各项方针政策,而应该清楚地识别和定义与CMM水准较低的公司之间的工作接口,并建立相关协议。
8. 通过软件测试(Testing)可以保证软件产品质量,为什么还需要同行评审(Peer Review)?
一般来说, 软件测试有以下缺点:
只有等到软件编码完成后才能进行。
所耗费的成本是整个项目生命周期中最高的阶段。在此期间,软件工程人员等待测试结果,即使被分配其它工作,也不能全力投入;软件测试人员需要做大量重复性的工作。
所以软件测试阶段应该被尽量缩短,否则项目的整体表现将受消极影响。那么,怎样才能减少软件测试工作量呢? 同行评审对此可以提供很大的帮助,可以及早地有效地从软件工作产品中消除错误,弥补缺陷,纠正误解和设防隐患,从而减少软件测试的工作量。
9. 遇到很主观一类的问题如何解决? 如SQA人员应该怎样选择参加项目的那些评审?
遇到类似问题,相关人员应该将问题提交给公司的SEPG小组,由SEPG小组制订出相应的解决方案,经过检讨或评审后,将方案提升为公司的文档化规程,即使主观问题根据客观依据得到解决。
10. 小项目如何实施CMM?
何谓小项目在学术界或工业界并没有明确的定义。一般来说,规模在3-5名人员、为期6个月以下的项目,是小项目。小项目不可避免地会剪裁一些CMM的过程。下面是一些小项目为达到CMM 3级必要的过程:
将客户需求文档化。
定义任务分解构架(WBS),做出工作计划。
跟踪重要工作的完成情况或保证至少在3周内做一次进度跟踪检查。
采用灵活的SQA和同行评审过程,例如,配备兼职的SQA人员,只在项目开始和项目结束时进行评审,或者在一次评审中评审多个文档或代码。
建立系统配置管理系统。
建立负责改进项目软件过程的职责。 |
|