如何进行项目策划-流程和步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何进行项目策划-流程和步骤
一、概述
项目策划的目的建立并维护用以定义项目活动的计划。
项目策划阶段的主要活动包括:确定项目目标和范围;定义项目阶段、里程碑;估算项目规模、成本、时间、资源;建立项目组织结构;项目工作结构分解;识别项目风险;制定项目综合计划。项目计划是提供执行及控制项目活动的基础,以完成对项目客户的承诺。
项目策划一般是在需求明确后制定的,项目策划是对项目进行全面的策划它的输出就是“项目综合计划”。
在笔者经历或者监管的很多项目中,发现一个规律掌握项目计划的项目经理在项目过程中管理会比较到位,而不掌握项目计划或者项目计划不到位的项目中我们的项目往往出现很多故事,项目管理往往是越管越乱。项目计划是帮组我们项目经理去理清项目的过程和各组织活动之间的关系,只有搞清楚这些,我们的项目才能被管理起来,否则我们不能谈项目管理,只能说我们在管着项目,但是还没有理清楚,结果则是什么也没有管到位。
二、确定项目范围
项目范围包括项目需求范围和项目工作范围,项目工作范围是为实现项目目标并使客户满意(有效地完成项目目标)而必须做的所有工作,它包括项目的最终产品或服务以及实现该产品或服务所需要做的各项具体工作;在《软件需求开发》中我已经说过了项目目标和需求范围的确认,本节内容是确认项目的工作范围。
项目工作范围的确定是为了有效地完成项目目标而界定的主要工作内容的活动,会将项目的可交付成果划分为可控的、易于管理的单元模块。
1、确定客户提供的工作产品
在确定项目范围的前,我们要与客户确认由客户提供的工作产品或资源,以及这些工作产品或资源的标准、提供时间、方式等信息。通过确认客户提供的工作产品我们可以界定项目中的哪部分工作是由客户完成,哪部分工作将要由项目组去实现。
2、确定交付给客户的工作产品
在确定项目范围的同时我们也要确认交付给客户的工作产品及资源,以及这些工作产品或资源的标准、交付时间、方式等信息。以确定该项目是否有额外的工作任务。
3、确定项目的工作范围
在项目中工作范围与软件生存阶段是基本对应的,项目工作范围可以理解为我们承担的主要开发阶段,一般的开发阶段有:概要设计、详细设计、编码、单元测试、产品集成、系统测试、验收交付、维护。
4、确定项目的质量目标
与客户确定我们软件需要达到的质量目标,在客户提出的质量目标中往往只有一些非功能需求的目标,大多与技术相关,而在项目开发过程中的质量目标可能客户不是很关心,涉及过程的质量目标大多也只有交付后的缺陷率。这个时候我们要结合公司的过程能力以及客户可能提出的质量目标进行能力匹配,并制定出项目的质量目标。过程能力匹配与分析以后单独进行说明。
过程能力即项目组执行项目活动的子过程能力。如,代码生产率(单位:KSL/人月),单元测试bug检出率(个/KSL)等,这些过程能力都有一个中线,3σ上线以及3σ下线,过程能力是根据公司历史项目的数据依据“过程标准差”的方法统计分析得出。
5、建立WBS工作包
依据项目需求范围和项目工作范围,把需求作为横坐标工作阶段作为纵坐标,我们可以得到一个项目的基本任务的工作包,我们一般把这类工作包作为WBS工作包。在WBS中我们也要包含任务返工、项目管理类和项目支持类的工作包。
三、定义项目阶段、里程碑
我们定义了项目的目标和范围,并建立了WBS的工作包。那么我们如何实现项目的目标,首先我们应该是分解项目目标,一般我们把它分解为里程碑目标或阶段目标。
1、确定项目的生命周期模型
项目生命周期各阶段的定义,依赖于需求的范围,项目资源的估计,以及项目的本质。项目一般都包含多个阶段。软件项目阶段的决定,通常包含软体开发模式的选择与改进,以说明项目活动间的相互关系与适当次序。生命周期模型的一般有瀑布、原型+瀑布、迭代、增量模型。
2、选择生命周期模型的准则
A)瀑布模型
适用于新的有较多用户的产品、平台/中间件开发项目,或者是用户对开发过程有严格要求的工程定制项目。
充分理解用户需求,且需求是确定不变的。
用户有一定的能力,对需求的表述是确切的。
所有过程工作产品的控制基线,需要有可见度和可靠性。
B)原型+瀑布模型
新领域的应用项目的开发:如企业应用系统开发项目等。
项目包含一种新技术,例:新硬件、新的系统架构等。
需求不很清楚。
存在关于性能、可靠性和可行性的主要的、未解决的问题。
用户界面对系统成功是很关键的,但不很清楚。
C)迭代模型
新领域、新技术的研发项目。
规模较大的项目或产品。
需求的清晰度低,且需要进一步的调查。
技术或体系结构方面的知识匮乏。
3、定义项目的阶段
我们依据以确定的生命周期模型定义项目阶段,在定义阶段的时候需要明确每个阶段的输入、输入、目标及主要工作。
定义项目阶段主要是对输入、输出以及工作量、规模、质量目标偏差控制范围的定义,我们一般定义输入工作产品的标准、要达到的质量目标,输出工作产品的标准,要达到的质量目标。阶段工作产品的工作量、规模以及质量目标的偏差控制范围,每个步骤的细节执行方式及这些细节活动的检查方法。如果阶段和里程碑时间点一致,可以与里程碑一起判断阶段目标的达成。
4、定义项目的里程碑
在瀑布模型和增量模型的阶段就是我们说的需求开发、概要设计、详细设计、编码、单元测试、产品集成、系统测试、验收交付、维护这些阶段。一般瀑布模型的里程碑设立根据项目规模和特点为需求、设计、编码+单元测试、产品集成+系统测试、交付;增量模型一般里程碑是每次可交付产品为一个里程碑,如果规模很大可以按照瀑布模型设立子里程碑。
迭代模型的里程碑一般是每次迭代就是一个里程碑。
我们上面说了里程碑定义的准则,简单理解里程碑可以作为是项目的一个可交付并能给项目工作承上启下的点,所以里程的目标、准入和准出的定义,是在项目实施中对项目能否达成项目目标的检查依据。
里程碑的准入准则,就是输入里程碑的工作产品、资源是否满足该里程碑的要求。我们就要定义输入工作产品标准、要达到的质量目标。而里程碑的准出不仅仅是工作产品的标准和达到的质量目标。还要判断这个里程的进度、成本、工作量、规模的偏差以及项目的变更是否在控制范围内。
5、定义项目的过程
确定项目执行过程中的子活动级活动的顺序,并给出这些活动的输出。在大部分公司都有一个项目执行过程的全集,项目在开始的时候依据项目的工作范围缺确定项目要执行的子过程以及输出的工作产品,在CMMI中把这个活动叫做裁剪项目过程定义,在这里我们要说明的是“裁剪”不是“裁减”,在对项目过程裁剪的时候我们不是简单地考虑做或者不做,应该在不做的时候考虑是合并还是用其他的替代方法来执行。
四、估算项目规模、成本、时间、资源
对于已确定的项目范围,定义了阶段和里程碑,那么我们每个阶段的输出的工作产品的工作量、成本、质量如何估算就十分重要,这些也是判断阶段目标和里程碑是否达成的重要判断依据,而要估算工作量、成本等工作产品属,我们就必须先估算出工程阶段每个工作包的工作产品规模。
1、估算的顺序
在整个估算中,规模的估算是基础,大部分的估算都是基于项目规模的估算而来的。在规模时,对于采用的类是技术、开发语言、架构的项目,他们的工作产品规模与需求规模的比例是基本稳定的。如:1个简单的数据库录入功能,用Java编写的代码一般是20行,概要设计是1页,详细设计是1.5页,需要20个单元测试用例等……。这个比例关系的变化是很少的,但是工作量和公司