3.2 软件项目开发计划内容

一些人将进度简单地当作开发计划,其实时间进度表只是开发计划的一小部分。为了确保项目有效执行,开发计划内容包括项目目标与范围介绍、技术方案概述、过程计划、测试计划、组织计划、资源计划、进度计划、软件估计与预算、质量计划、风险鉴别与估计计划、变更管理计划、文档计划、培训计划、发布与实施计划等。

1.项目介绍

介绍项目与客户的情况,概括整个计划。首先需要了解该软件及相关客户的情况,明确项目的目标与范围、所要做的工作及性能限制,对要进行的工作有一个明确的陈述。具体包括:

(1)项目目标:让项目团队每个成员都明确项目目标,包括项目的高层目标及产品目标。高层目标应指出服务对象、系统本身的比较深层次的社会目的或系统应用后能达到的社会效益等。产品目标应从用户的角度说明开发这一系统是为了解决用户的哪些问题。

(2)项目范围:包括项目成果范围和项目工作范围,也称作产品范围。产品范围界定软件系统产品本身范围的特征和功能范围。对产品范围进行准确清晰的界定与说明是软件项目活动开展的基础和依据。项目工作范围说明实现项目的目标需要进行哪些活动、任务。必要时,需描述合作单位和用户的工作分工。

(3)假设与约束:对于项目必须遵守的各种约束(时间、人员、预算、设备等)应予以说明,这些内容将限制实现什么、怎么实现、什么时候实现、成本范围等种种约束条件。假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成。约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如人工的约束,需要牺牲进度或质量等。假设与约束是比较明确会出现的情况,如果问题的出现具有不确定性,则应该在风险分析中列出,分析其出现的概率、后果影响及合理的应对措施。

(4)应交付成果:包括需要完成的软件、交给用户的文档、交给内部的文档、应当提供的服务。

①需要完成的软件:列出需要完成的程序名称、所用的编程语言及存储程序的媒体形式。其中软件对象可能包括:源程序、数据库对象创建语句、可执行程序、支撑系统的数据库数据、配置文件、第三方模块、界面文件、界面原稿文件、声音文件、安装软件、安装软件源程序文件等。

②提交用户的文档:列出需要移交给用户的每种文档的名称、内容要点及存储形式,如需求规格说明书、帮助手册等。此处需要移交用户的文档可参考合同中规定。

③提交内部的文档:列出内部提交技术文档、管理文档等的名称、内容要点、存储形式、提交对象、提交时间等。

④应当提供的服务:根据合同或商业计划等,列出将要向用户提供的各种服务,例如培训、安装、维护和运行支持等。

(5)项目验收方式与依据:项目用户验收与内部验收的方式,如验收包括交付前验收、交付后的验收、试运行验收、最终验收、第三方验收、专家参与验收等。验收依据主要有标书、合同、相关标准、项目文档(如需求规格说明书)。

(6)其他:定义术语,列出参考文献,如市场计划、商业计划、需求说明书及其他资料。

2.技术方案概述

描述需求概要,给出系统要实现的主要功能的描述,说明与之相关的关键问题;给出系统需要达到的主要技术指标,对影响进度、技术难点等问题进行描述;说明与外部系统的接口要求;说明特殊要求,如客户对开发工具的要求等。

概述系统设计,在早期制订高级计划时还没有正式的设计,但在项目立项时,已经做过技术可行性分析、总体方案和关键技术方案的论证。

定义技术基线,确定需求、设计、实现等的基线。描述软件硬件环境,说明开发所需的软硬件环境和版本(操作系统、开发工具、数据库系统、配置管理工具、网络环境)。环境不止一种,如开发工具可能需要针对Java的,也需要针对VC++的,有些环境可能难以确定,需要在需求分析完成或设计方案完成后才能确定所需要的环境。

描述软件系统结构设计、高低层技术方案。

3.过程计划

确定项目生命周期模型、开发过程,详细定义开发活动的目标、任务、成果等,确保项目开发过程中定义一致。制订过程计划首先要根据项目目标和范围、假设和约束,选择项目的生命周期模型。其次,需要明确过程中要完成哪些工作活动,如市场调研、系统设计、编码、测试等。活动定义后,需要进行活动排序,排序过程需要明确活动内容的优先级、前后完成的顺序及工作内容之间的依赖关系。

4.测试计划

测试的目的是及早发现错误以使修改成本最低。为达到这一目的,测试计划应定义测试过程,如单元测试、集成测试、系统测试等,定义每个测试的内容等。

5.组织计划

组织计划以过程计划及其他计划为基础,针对开发过程与所涉及的各种任务定义组织及其责任,可以通过组织机构图表描述。

项目组织结构主要描述项目团队需要哪些角色、小组及项目成员的构成,如设计组、程序组、测试组、项目经理、系统分析员、配置管理员等。组织机构可以用图形来表示,可以采用树形图或矩阵式图形,同时说明团队成员来自于哪个部门。除了图形外,可以用文字简要说明角色应具有的技术水平。

责任分工确定对每个角色的技术水平、项目中的职责分工与配置,可用列表方式说明,具体编制时按照项目实际组织结构编写。

协作与沟通确定项目团队成员、项目接口人员、项目团队外部相关人员及他们之间的协作、沟通方式,包括隶属关系。例如:说明负责本项目同本企业计划管理部门、合同管理部门、采购部门、质量管理部门、财务部门等的接口人员的职责、联系方式、沟通方式、协作模式等。

沟通方式包括会议、电话、网上聊天、邮件等。协作方式主要说明在出现某种状况的时候各个角色应当采取什么措施,如何互相配合来共同完成某项任务。隶属关系主要说明某个角色、某类事情向谁汇报。

6.资源计划

所有资源的准备计划,如人力资源计划、设备资源技术、技术资源计划。确定资源计划首先要明确所有关键的成功因素(可参考其他案例),然后制订计划,具体内容包括:

(1)识别所需要的关键资源。

(2)确定项目所需要的所有设备与工具资源,包括硬件与软件、其他公司准备发行而项目要用到的产品,同时要列出这些资源到位的时间。

(3)列出项目所需要的技术要求,确定哪些资源不具备,需要通过哪种方式获得(如培训等)。

(4)确定人员资源,列出项目所需要的所有技能的员工,并确定哪些需要招聘、培训等。

(5)确定内部/外部协作要求、交付日程及标准。

(6)确定偶发事件备用计划。

7.时间进度计划

在过程计划、测试计划、组织计划、资源计划的基础上,确定进度表。制订进度表要考虑任务间的优先约束,还要考虑当前项目的资源约束,如人员水平,应该按照实际情况制订现实可行的进度安排。包括:

(1)确定每个过程、任务的起始结束时间、依赖关系、相关约束、交付成果。

(2)确定关键里程碑。里程碑通常是在关键路径上的一项活动。它不必是一个可交付的有形产品,但可以是用户对工作成果的肯定。

(3)安排关键的检查日期。

(4)定义关键路径。

8.质量计划

质量计划要定义产品的质量要求,如功能、性能及其他特性;设定接收标准;定义审查的时间、目标、标准,如内部审查、外部审查、正式审查;定义报告的类型、频率、发送对象、格式、范围等。

9.成本计划

软件项目成本估算是在工作量估算、资源计划的基础上对项目资金投入进行估算。

10.风险计划

风险管理是界定、评估风险,及早发现风险,采取措施,降低风险对项目的影响。风险计划应与其他计划配合。风险计划确定如何按照潜在影响分析风险并确定优先级,如何定位每个风险因素,这些风险因素的管理如何与整个开发计划融为一体,包括风险管理活动的日程安排、人员分配、资源分配等。

11.文档计划

文档计划定义文档书写规范,确保在团队中理解一致;确定必需的文档,提交的阶段;确定文档管理机制,如存储、查阅、交流的管理与权限等。