一个项目的制约条件包括范围、时间、成本。 在一个项目中这三个条件是相互影响、相互制约的,而且往往是由于范围影响了时间和成本。项目一开始确定的范围小,那么它需要完成的时间以及耗费的成本必然也小,反之亦然。所谓项目范围,包括项目的最终产品或者服务,以及实现该产品或者服务所需要执行的全部工作。明确规定项目的范畴,即确定了项目的哪些方面是应该做的,哪些是不应该做的,也可以说是产生项目产品所包括的所有工作及产生这些产品所用的过程。
项目进度管理则是指在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理,包括两大部分的内容,即项目进度计划的制定和项目进度计划的控制。那么,为了保证项目顺利实施,如何进行项目范围和进度的制定呢?
1、项目目标和范围
开始一个新项目或版本时候,首先是和用户一起确认需求,进行项目的范围规划。项目是范围,进度,质量和资源四要素的平衡,用户对项目进度要求和优先级高的时候,我们往往要缩小项目范围,对用户需求进行优先级排序,排除优先级低的需求。另外我们做项目范围规划的一个重要依据就是我们的历史经验数据,对项目特征的清楚认识,项目范围规划初期需求你进行一个较宏观的估算,否则你很难判断清楚或给用户承诺在现有资源情况下,你3个月时间里面是否可以完成20个或更多用户功能。
正规过程好像是先确认项目范围,然后根据WBS->进度计划确认实际的项目周期,但实际情况往往很难如此,用户往往对进度的关注度大于对范围的关注度,一个项目半年或一年都看不到具体的产品出来用户肯定是无法接受的,所以我们的软件项目一般也是按版本增量迭代进行开发。
这里需要强调下项目目标的确定,项目的目标不能简单理解为在某个时间点完成所有功能。项目另外一个重要目标就是项目的质量目标,你完成的这个项目需要达到那个等级的质量标准,交出的产品BUG泄漏率要控制在什么范围内等内容。项目的质量目标不会影响到我们的范围,但会影响到我们后续评审,测试等时间的安排,直接影响到项目的进度。
PMBOK里已经明确提到项目范围定义的另一个重要目的就是项目的绩效测量和验收准则,你交付项目的时候用户会根据用户需求说明书内容对项目进行验收,所有我们项目的范围的定义必须是明确,量化,可验证和可测试的,这样才能够避免后期无谓的纠纷。
另外在概述阶段需要分析项目的假设和约束,假设和约束又分为技术方面和非技术方面,在这里我们分析的所有假设都可能成为项目的风险。
2、项目进度的确定
项目的目标和范围确定后,需要开始确定项目的过程,项目整个过程中采用何种生命周期模型?项目过程是否需要对组织级定义的标准过程进行裁剪等相关内容。项目过程定义是进行WBS分解前必须确定的一个环节,你采用瀑布模型和增量迭代模型对WBS分解和进度计划安排显然是完全不同的。
项目过程确认清楚后开始进行项目的WBS分解,WBS分解一般是项目组的核心成员参加,但项目经理应该是起主导和协调作用。WBS分解方法一般有基于过程和基于成功两种方式,但两种方式可以混合使用,比如在高层分解的时候先分解出子系统和工作包,在底层的时候再按照需求,设计,编码和测试各个过程进行分解。WBS的最底层工作单元需要是可以独立核实的产