项目计划在整个软件开发过程中至关重要。这是因为软件项目活动繁多,且活动之间相互影响,需要采用项目管理的方式进行管理,而项目管理的基础就是项目计划。
项目计划的内容:
通常来说,项目组在软件开发合同签订以后开始制订项目计划(也有做完需求分析以后制订项目计划的情况)。《工作说明书》经常会作为项目计划一个主要的输入条件(当然不是所有的项目都有《工作说明书》,但应该有相应的文件提供类似的内容),项目计划的制订需要同时满足《工作说明书》给定的工作范围、进度、资源等方面的要求。
项目计划通常包括以下内容:
项目组织结构、职责描述与说明。说明项目组的组织结构、报告渠道、隶属关系、职位描述、人员与职位的对应关系等。
资源计划。描述项目所需要的资源,包括硬件资源、软件资源、人力资源等,注明资源的到位时间与释放日期。如果是人力资源,还需补充其他信息,例如所属部门、兼职或全职等。
项目质量保证计划。从质量保证的角度描述项目中所执行的质量保证活动,例如设定的质量目标、审计活动、日常活动等内容。
测试计划。测试方法、测试阶段、测试的入口与出口条件等。
配置管理计划。配置项标识、命名规范、变更流程等。
培训计划。包含培训课程、时间、人员、费用、考核标准等信息。
风险管理计划。风险标识、分类、严重度估计、发生概率估计等。
制订WBS计划:
项目计划是如何体现工作范围的呢?常用的方式是通过工作分解的方式,将工作范围细分为活动,然后对每项活动分配时间和资源,而活动结果的总和就是工作范围,我们将这种分解的计划称为WBS(Work Breakdown Structure,工作分解)计划。制定WBS计划是制定项目计划最主要的活动。
制订WBS计划主要分为以下三个步骤:
第一,分解工作任务。将一个总的工作范围(软件项目XXX)逐渐细分到合适的粒度,以便对任务计划、执行和控制。对于软件项目来说,分解工作任务不是一项单纯的计划活动,而是要根据项目的特点决定工作任务的分解结构。实际工作中更多地会考虑技术因素来确定工作分解结构的形式。
第二,定义活动依赖关系。确定了项目中要完成哪些活动以后,需要对这些活动之间的依赖关系做出定义。活动之间的依赖关系取决于实际工作的要求,不同活动之间的依赖关系决定了活动的优先顺序及其重要性。活动依赖关系是确定项目关键路径和活动浮动时间的必要条件,定义活动间依赖关系的目的是确定每一项活动所需的输入、输出关系。
第三,分配时间和资源。完成工作任务分解并定义了活动的依赖关系后,应该为每项活动分配相应的时间和资源。通常活动都会产生自己的交付物。为活动分配时间可以采用自下而上和自上而下两种不同的方法。自下而上是先估计最小粒度的活动所需要的时间,项目所需的时间则取决于所有项目活动的关键路径时间;自上而下则是确定完成项目所需要的总的时间,然后将时间分配给不同的活动。这两种方法在实际中都有应用,对于客户项目,很多情况下只能采取自上而下的方式,因为大多数项目都事先确定好了项目的交付时间。在软件项目计划中,资源分配主要指人员的分配,指定了时间资源以后,应该指定人力资源。一项工作任务是否能够完成,所需要的时间和人员是两个最主要的变量。在一定的范围内,时间和人员是可以互换的。即增加人员会缩短工作时间;延长时间会降低对人员的需求量(但这种观点的害处在于管理者往往会认为所有的活动都可以互换时间和人力资源)。如果已经确定了活动的完成时间,则指定相应的人员作为完成活动的责任人。