一个处于"无序化"生产的软件公司,要进行过程改进,首要是改进什么呢?
[转]简述CMMI 2级的7个PA
原文出处----http://www.umlonline.cn/school/thread-85-1-1.html
做任何事情都需要计划,做软件开发这样复杂的工作更加需要计划,所以2级中有项目计划(PP)以及项目计划跟踪与控制(PMC)两个PA,分别对指定计划以及计划的执行给出了详细的标准。
人是会死的,需求是会变的。需求变更是每个软件公司最头疼的问题,需求变更也是导致项目进度拖延、成本高涨的主要原因。如何管理好需求呢?需求管理(RM)给出了详细的指引。
软件生产越来越复杂,有时候我们需要采购一些组件,用于项目中。另外一个方面,纯软件的项目比例也慢慢缩小,很多软件是基于一定的硬件的,而不少硬件也是需要采购的。如何采购到合适的软硬件,如何保证采购工作不影响项目成功呢?供应商协议管理(SAM)会给你一个解答。
软件是比较难进行量化管理的,但作为公司的管理者,总会想知道成本、进度、缺陷方面的一些数据,以了解项目的情况。CMMI2级,已经对度量提出了要求,详细情况见度量(MA)这个PA。
如何保证软件生产过程中各类工作产品协调一致,配置管理(CM)会给出指导。
如何保证每个工作产品以及生产工作产品的过程是遵照规定执行的呢?产品与过程质量保证(PPQA)有明确的指引。
2级一共有以下PA:
1)项目计划(PP)
2)项目计划跟踪与控制(PMC)
3)需求管理(RM)
4)供应商协议管理(SAM)
5)度量(MA)
6)配置管理(CM)
7)产品与过程质量保证(PPQA)
1 项目计划(Project Planning)
大家都明白这样的一个道理:做事情要有计划,有一个不成熟的计划总比没有计划要好,软件开发这么复杂的活动,更加需要计划。那么应该怎样做好一个计划呢?
如果对项目的范围、规模、性质、任务、工作量、费用等都不了解的情况下,是不可能做出计划的,所以做好计划的第一步就是要把这些东西搞清楚。
PP这个PA的第一个Specific Goals,中文大意是:建立和维护用于项目计划的各类参数的估算,英文原文是:Estimates of project planning parameters are established and maintained.
下面我们再详细看看,到底做计划之前,需要搞清楚什么东西?
SP1.1:Estimate the Scope of the Project. 估计项目的范围,如项目的目标、任务、工作产品等。这里通常就是指WBS(top-level work breakdown structure),试想一下,我们做计划之前不是常常要先对任务进行分解吗?
SP1.2: Establish Estimates of Work Product and Task Atrributes. 估计工作产品及任务的属性。做计划的时,我们会先列出这个项目要产生的工作产品,以及这个项目要完成的任务等,然后我们需要分析这些任务、工作产品的规模、工作量、复杂度、代码行数等所谓的属性。CMMI并没有规定一定要分析什么属性,具体由企业自己来选择适合自己需要分析的属性。在CMM模型的时候,项目计划这个PA硬性规定了需要分析的几大属性,CMMI模型中已经改进,不再强制要求。分析这些属性的目的是对任务、工作产品等更加了解,以便于做好计划。
SP1.3 Define the project life-cycle phases upon which to scope the planning effort. 定义项目生命周期。写计划的其中一个步骤是要考虑用什么生命周期模型,是瀑布型?螺旋?还是别的?选择怎样的模型,CMMI并没有规定,企业可以选择常见的生命周期模型,也可以自己定义自己的模型。
SP1.4 Estimate the project effort and cost for the work products and task based on estimation rationale. 可以把SP1.4看作是SP1.2的延续,要根据工作产品及任务的属性估算出项目的规模和成本。
SG1说的是如何准备估算的问题,为做计划打好基础,而SG2说的就是要建立计划了。
SG2:A project plan is established and maintained as the basis for managing the project. 中文大意是:建立和维护项目计划,这个计划要作为项目管理的基础。那么项目计划要包含什么内容呢?
SP2.1 Establish and maintain the project's budget and schedule. 建立和维护项目的预算和进度。
SP2.2 Identify and analyze project riskes. 识别和分析项目风险。
SP2.3 Plan then managemanet of project data. 计划对项目数据的管理。
什么是"项目数据"呢?在项目开发过程中,会产生各类文档、代码等,我们再写项目计划的时候,要考虑好如何管理开发过程中产生的工作产品、数据等,例如存放的位置、访问权限控制。通常我们需要文档分类存放,设定一些个人工作区、项目组共享区等,计划好这些东西的管理,目的就是为了让工作更加有条理。
细心的人可能会发现,这个SP怎么有点象CM这个PA呢?没错,CM也讲的也是管理工作产品,与这个SP是有相似之处的,CM是从配置管理的角度来讲述的,而这个SP就从项目管理的角度来讲述的。详细情况,我们再论述CM的时候再谈。
SP 2.4 Plan for necessary resources to perform the project . 计划必要的资源来执行计划。
资源包括:人、计算机、设备、工具、办公室等。
SP 2.5 Plan for knowledge and skills needed to perform the project. 计划需要的知识和技能来执行计划。
这点经常是做计划的时候被遗忘的,项目经理应该根据项目组成员情况和项目的特点,找出项目组还没有掌握的知识和技能,安排需要的培训,让项目组成员掌握相应的技能。
SP 2.6 Plan the involvement of indentified stakeholders. 识别干系人并计划他们的参与。
计划要考虑客户、高层领导、与本项目相关的第三方等相关人员可能的参与,规划他们参与的时间点,参与的工作产品等。例如:要计划客户什么时候参与需求调研,计划客户什么时候需要准备好软硬件环境,以便安装系统等。
SP 2.7 Establish and maintain the overall project plan content. 建立和维护全面的项目计划内容。就是就是要把上面提到的SP2.1到SP2.6的内容全部要写下来,要文档化。
到现在为止,似乎项目计划就完成了,是这样吗?项目计划只由一个人制定的吗?只跟一个人有关系吗?
SG3:Commitments to the project plan are established and maintained. 建立和维护对项目计划的承诺。项目计划要被相关的人评审和认可。
SP 3.1 Review all plans that affect the project to understand project commitments. 项目计划可能会有好多个子计划,如开发计划、测试计划、培训计划等,这些计划都应该被相关人员复查,保证大家理解一致。
SP 3.2 Reconcile the project plan to reflect available and estimated resources. 调整计划,使计划在有限的资源内是可行的。计划要受到资源的限制,通过评审要发现不协调的地方,适当调整计划,保证计划可行。
SP 3.3 Obtain commitment from relevant stakeholders responsible for performing and supporting plan excecution. 得到相关人员的承诺,保证执行和支持计划。计划通过评审,就以为这所有参加评审的人承诺按照计划的要求完成自己的任务,同时他也会支持他人按计划完成任务。
PP有三个SG,分别是建立估算、建立计划、取得承诺,大家如果仔细阅读每个SP,大家会发现做好一个计划是不容易的,要考虑的东西很多。另外,还必须用这个计划来管理项目,更详细的内容我们看计划跟踪与控制这个PA吧。
2 项目跟踪和控制(Project Monitoring and Control)
计划不是用来看的,是用来执行的。PP讲述了如何做计划,PMC讲述的就是如何跟踪计划的执行并在实际情况偏离计划时采取纠正行动。
我们先看看SG1,SG1讲述的是如何根据计划来跟踪计划的执行问题。
SG1: Actual performance and progress of the project are monitored against the project plan.
中文大意是:根据计划,跟踪项目的实际性能和过程。
那么我们要跟踪计划什么内容呢?简单的说,计划里面写了什么东西,就要跟踪什么东西。我们回顾一下PP是怎样说项目计划有什么内容的?计划要有估算、进度、数据包的管理、技能准备、干系人的参与等内容,所以项目跟踪也需要踪以上内容。
SP 1.1 Monitor the actual values of the project planning parameters against the project plan. 项目计划的参数就是指项目的范围、规模、性质、任务、工作量、费用等,每个企业都可以根据实际需要确定这些参数。在项目进行过程中,要密切关注这些参数的实际情况与计划估计的情况是否一致。
SP 1.2 Monitor commitments against those identified in the project plan. 简单地说就是要跟踪项目成员承诺的任务是否按时间按要求完成,跟踪干系人是否能完成承诺的事情,如:第三方是否能如期交付软件、硬件、接口等。
SP 1.3 Monitor risk against those identified in the project plan. 跟踪项目计划中已经识别出来的风险,要考虑风险是否发生了变化,同时也要考虑有没有新的风险产生。
SP 1.4 Monitor the management of project data against the project plan. 项目计划中计划了数据包的管理,实际项目进展中,要落实这些工作。什么是数据包,请参考"项目计划"这个帖的说明。
SP 1.5 Monitor stakeholder involvement against the project plan. 跟踪项目干系人的参与。如计划了什么时候要开始什么任务,什么时候客户要开始准备系统环境等,需要依据计划去跟踪。
SP 1.6 Periodicall review the project's progress,performance,and issues. 定期检查项目的进度、性能和问题。定期并不是指按照一定周期,只有有计划去检查,在某些时间点去做检查,就叫定期。另外什么是项目性能?简单的说就是项目按计划执行的实际能力,如任务完成能力、项目组成员的实际水平、文档的质量、代码的质量等。那什么是"issues(问题)"呢?凡是影响项目不能按计划进行的情况,都是问题。
SP 1.7 Review the accomplishments and results of the project at selected project milestones. 在项目选定的里程碑检查项目情况。项目里程碑一般会是:需求确定、架构设计完成、软件发布等关键路径上的关键节点。SP1.6强调的是定期去检查项目状况,SP1.7强调的是要在关键节点检查项目状况,两个SP是有某种程度的重叠的。
SG1讲述的是如何跟踪计划执行的,而SG2讲述的是当实际情况明显偏离计划的时候,要采取纠正行动。
SG2: Corrective actions are managed to closure when the project 's performance or results deviate significantly from the plan.
中文大意是:项目的性能或者结果明显偏离计划时,要采取纠正措施保证按计划进行。
SP 2.1 Collect and analyze the issues and determine the corrective actions necessary to address the issues. 收集和分析问题,并确定必要的纠正措施来解决这些问题。
SP 2.2 Take corrective action on identified issues. 针对识别出来的问题实施纠正行动。
SP 2.3 Manage corrective actions to closure. 管理纠正行动保证问题被解决。
实际情况与计划情况有偏差是正常的,原因可能是计划本身做得不太好,也可能是实际工作没有到位。SG2强调的是要分析原因,找出问题根源,采取适当的行动,解决问题,使项目按照计划进行。
通常情况下,偏离计划的情况大多数是进度推迟、预算变大等超出计划估计的情况,作为项目管理者不应该轻易改变计划,而使计划与实际一致,而是应该努力改善实际情况,否则计划的意义就丧失了。但凡事也有例外,确实有可能做计划的时候定了一个"不可能完成"的计划,这是就确实需要变更计划。但凡是涉及到预算变更、关键节点推迟等关键变化,公司应该制定严格的变更控制制度,公司高层应该参与这些关键变更的评审,以保证计划的严肃性。
在3级的IPM还有4级的QPM,做项目计划的时候合理性会越来越得到保障,另外用于管理项目的参数也会越来越多,并且会有量化的管理目标。详细的内容以后再论述。
3 需求管理(Requirements Management)
人是会死的,需求是会变的。相信大家都经历了很多需求变更的痛苦,项目被拖延,成本高涨,十有七八是需求管理没有做好导致的。有哪一些需求管理方面的常见问题呢,这里列举一下: 4 供应商协议(Supplier Agreement Management) |