摘要:本文主要对软件开发项目计划书的格式及主要内容的编写要点进行说明,对一些内容进行了举例说明。关键词:项目、计划书、格式、编写说明一、项目计划书格式根据《GB8567-88计算机软件产品开发文件编制指南》中项目开发计划的要求,结合实际情况调整后的《项目计划书》内容索引如下:1引言1.1编写目的1.2背景1.3定义1.4参考资料1.5标准、条约和约定2项目概述2.1项目目标2.2产品目标与范围2.3假设与约束2.4项目工作范围2.5应交付成果2.5.1需完成的软件2.5.2需提交用户的文档2.5.3须提交内部的文档2.5.4应当提供的服务2.6项目开发环境2.7项目验收方式与依据3项目团队组织3.1组织结构3.2人员分工3.3协作与沟通3.3.1内部协作3.3.2外部沟通4实施计划4.1风险评估及对策4.2工作流程4.3总体进度计划4.4项目监控4.4.1质量控制计划4.4.2进度监控计划4.4.3预算监控计划4.4.4配置管理计划5支持条件5.1内部支持(可选)5.2客户支持(对项目而言)5.3外包(可选)6预算(可选)6.1人员成本6.2设备成本6.3其它经费预算6.4项目合计经费预算7关键问题8专题计划要点二、项目计划书的编写说明1引言1.1编写目的说明编写这份项目计划的目的,并指出预期的读者。作用:本节是为了说明编制“项目计划书”亦即本文档的意图和希望达到的效果。注意这里的“目的”不是“项目目标”,而是为了说明本文档的目的与作用。“项目目标”在2.1中说明。意义:使项目成员和项目干系人了解项目开发计划书的作用、希望达到的效果。开发计划书的作用一般都是“项目成员以及项目干系人之间的共识与约定,项目生命周期所有活动的行动基础,以便项目团队根据本计划书开展和检查项目工作。”例如可以这么写:为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,因此以文件化的形式,把对于在项目生命周期内的工作任务范围、各项工作的任务分解、项目团队组织结构、各团队成员的工作责任、团队内外沟通协作方式、开发进度、经费预算、项目内外环境条件、风险对策等内容做出的安排以书面的方式,作为项目团队成员以及项目干系人之间的共识与约定,项目生命周期内的所有项目活动的行动基础,项目团队开展和检查项目工作的依据。常见的问题:把项目本身的“项目目标”误作编制项目开发计划的目的。1.2背景主要说明项目的来历,一些需要项目团队成员知道的相关情况。主要有以下内容:项目的名称:经过与客户商定或经过立项手续统一确定的项目名称,一般与所待开发的软件系统名称有较大的关系,如针对“XX系统”开发的项目名称是“XX系统开发”。项目的委托单位:如果是根据合同进行的软件开发项目,项目的委托单位就是合同中的甲方;如果是自行研发的软件产品,项目的委托单位就是本企业。项目的用户(单位):软件或网络的使用单位,可以泛指某个用户群。注意项目的用户或单位有时与项目的委托单位是同一个,有时是不一样的。如海关的报关软件、税务的报税软件,委托单位是海关或税务机关,但使用的用户或单位不仅有海关或税务机关,还包括需要报关、报税的企业单位。项目的任务提出者:本企业内部提出需要完成此项目的人员,一般是领导或商务人员;注意项目的任务提出者一般不同于项目的委托单位,前者一般是企业内部的人员。如果是内部开发项目,则两者的区别在于前者指人,后者指单位。项目的主要承担部门:有些企业根据行业方向或工作性质的不同把软件开发分成不同的部门(也有的分为不同事业部)。项目的特点就是其矩阵式组织,一般一个项目的项目成员可能由不同的部门组成,甚至可能由研发部门、开发部门、测试部门、集成部门、服务部门等等其中几个组成。需要根据项目所涉及的范围确定本项目的主要承担部门。例句:根据《某部关于某建设工作的实施意见》精神,为了保障某建设工作的正常实施,必须加强监督考核,建立督查通报制度,某市某建设工作小组办公室把此项建设工作实施列入督查的重要内容,及时掌握进度,相关部门建立市某建设工作简报制度,及时反映全市某建设工作动态。目前对于某建设工作的工作主要采用计划部门手工编制年度计划、建设工作主管部门和建设工作实施单位联合手动编制进度计划,某建设工作单位手工上报建设工作进度情况的方式,而全市的建设工作有数百个,加上前期建设工作的数量和今后某市建设发展的趋势,建设工作的数量将越来越多,原来的工作模式已经越来越无法适应市委市政府的要求。因此,充分利用现代信息化、因特网的优势,建立“某市某建设工作信息报送反馈系统”,提高某建设工作信息报送反馈工作效率,提高信息的及时性、减轻各级相关工作人员的劳动强度是非常有必要和紧迫的任务。软件系统与其他系统的关系:说明与本系统有关的其他系统,说明它们之间的相互依赖关系。这些系统可以是这个系统的基础性系统(一些数据、环境等必须依靠这个系统才能运行),也可以是以这个系统为基础的系统,或者是两者兼而有之的关系、互相依赖的系统。例句:本系统中对外部办公部分如需要各个建设单位报送材料的子系统应当挂在市政府网站。软件系统与机构的关系:说明软件系统除了委托单位和使用单位,还与哪些机构组织有关系。例如一些系统需要遵守那些组织的标准、需要通过那些组织机构的测试才能使用等等、是否需要外包或与那些组织机构合作。1.3定义列出为正确理解本计划书所用到的专门术语的定义、外文缩写词的原词及中文解释。注意尽量不要对一些业界使用的通用术语进行另外的定义,使它的含义和通用术语的惯用含义不一致。1.4参考资料列出本计划书中所引用的及相关的文件资料和标准的作者、标题、编号、发表日期和出版单位,必要时说明得到这些文件资料和标准的途径。本节与下一节的“标准、条约和约定”互为补充,注意“参考资料”未必作为“标准、条约和约定”,因为“参考”的不一定是“必须遵守”的。常用资料如:本项目的合同、标书、上级机关有关通知、经过审批的项目任务书;属于本项目的其他已经发表的文件;本文档中各处引用的文件、资料,包括所要用到的软件开发标准。1.5标准、条约和约定列出在本项目开发过程中必须遵守的标准、条约和约定。例如:相应的《立项建议书》、《项目任务书》、合同、国家标准、行业标准、上级机关有关通知和实施方案、相应的技术规范等。“参考资料”一般具有“物质”特性,一般要说明参照了什么,要说明在哪里可以获得;“标准、条约和约定”一般具有“精神”特性,一般是必须遵守的,不说明在哪里可以获得。参考资料的内容应该涵盖“标准、条约和约定”。2项目概述2.1项目目标设定项目目标就是把项目要完成的工作用清晰的语言描述出来,让项目团队每一个成员都有明确的概念。注意,不要简单地说成在什么什么时间完成开发什么什么软件系统或完成什么什么软件安装集成任务。注意“要完成一个系统”只是一个模糊的目标,它还不够具体和明确。明确的项目目标应该指出了服务对象,所开发软件系统最主要的功能和系统本身的比较深层次的社会目的或系统使用后所起到的社会效果。项目目标应当符合SMART原则:lSSpecific明确的陈述lMMeasurable可以衡量的结果lAAttainable可以达成的目标lRRealistic合理的,现实的或者说是能和实际工作相结合lTTrackable可以跟踪的项目目标可以进行横向的分解也可以进行纵向的分解。横向分解一般按照系统的功能或按照建设单位的不同业务要求,如分解为第一目标、第二目标等等;纵向的分解一般是指按照阶段,如分解为第一阶段目标、第二阶段目标等等,或近期目标、中期目标、远期目标等等。阶段目标一般应当说明目标实现的较为明确的时间。一般要在说明了总目标的基础上再说明分解目标,可加上“为实现项目的总目标,必须实现以下三个阶段目标······”2.2产品目标与范围根据项目输入(如合同、立项建议书、项目技术方案、标书等)说明此项目要实现的软件系统产品的目的与目标及简要的软件功能需求。对项目成果(软件系统)范围进行准确清晰的界定与说明是软件开发项目活动开展的基础和依据。软件系统产品目标应当从用户的角度说明开发这一软件系统是为了解决用户的那些问题。产品目标如“提高工作信息报送反馈工作效率,更好地进行工作信息报送的检查监督,提高信息的及时性、汇总统计信息的准确性,减轻各级相关工作人员的劳动强度。”2.3假设与约束对于项目必须遵守的各种约束(时间、人员、预算、设备等)进行说明。这些内容将限制你实现什么、怎样实现、什么时候实现、成本范围等种种制约条件。假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成。如:“系统分析员必须在3天内到位”或“用户必须在8月8日前确定对需求文档进行确认”约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如人力资源的约束限制,就必须牺牲进度或质量等等。假设与约束是针对比较明确会出现的情况,如果问题的出现具有不确定性,则应该在风险分析中列出,分析其出现的可能性(概率)、造成的影响、应当采取的相应措施。2.4项目工作范围说明为实现项目的目标需要进行那些工作。在必要时,可描述与合作单位和用户的工作分工。注意产品范围与项目工作范围的不同含义。产品范围界定:软件系统产品本身范围的特征和功能范围。工作范围界定:为了能够按时保质交付一个有特殊的特征和功能的软件系统产品所要完成的那些工作任务。产品范围的完成情况是参照客户的需求来衡量的,而项目范围的完成情况则是参照计划来检验的。这两个范围管理模型间必须要有较好的统一性,以确保项目的具体工作成果,能按特定的产品要求准时交付。2.5应交付成果2.5.1需完成的软件列出需要完成的程序的名称、所用的编程语言及存储程序的媒体形式。其中软件对象可能包括:源程序、数据库对象创建语句、可执行程序、支撑系统的数据库数据、配置文件、第三方模块、界面文件、界面原稿文件、声音文件、安装软件、安装软件源程序文件等等。2.5.2需提交用户的文档列出需要移交给用户的每种文档的名称、内容要点及存储形式,如需求规格说明书、帮助手册等。此处需要移交用户的文档可参考合同中的规定。2.5.3须提交内部的文档可根据《GB8567-88计算机软件产品开发文件编制指南》附录O:“文件编制实施规定的实例(参考件)”结合各企业实际情况调整制定《软件开发文档编制裁减衡量因素表》。根据《因素表》确定项目对应的项目衡量因素取值,以确定本项目应完成的阶段成果。将不适用于本项目的内容裁减,以减少不必要的项目任务和资源。根据因素取值列出本项目应完成的阶段成果,说明本项目取值所在的区间,将其他因素值区间删除。2.5.4应当提供的服务根据合同或某重点建设工作需要,列出将向用户或委托单位提供的各种服务,例如培训、安装、维护和运行支持等。具体的工作计划如需要编制现场安装作业指导书、培训计划等,应当在本计划“4.3总体进度计划”中条列出。2.6项目开发环境说明开发本软件项目所需要的软硬件环境和版本、如操作系统、开发工具、数据库系统、配置管理工具、网络环境。环境可能不止一种,如开发工具可能需要针对Java的,也需要针对C++的。有些环境可能无法确定,需要在需求分析完成或设计完成后才能确定所需要的环境。2.7项目验收方式与依据说明项目内部验收和用户验收的方式,如验收包括交付前验收、交付后验收、试运行(初步)验收、最终验收、第三方验收、专家参与验收等等。项目验收依据主要有标书、合同、相关标准、项目文档(最主要是需求规格说明书)。3项目团队组织3.1组织结构说明项目团队的组织结构。项目的组织结构可以从所需角色和项目成员两个方面描述。所需角色主要说明为了完成本项目任务,项目团队需要哪些角色构成,如项目经理、计划经理、系统分析员(或小组)、构架设计师、设计组、程序组、测试组等等。组织结构可以用图形来表示,可以采用树形图,也可以采用矩阵式图形,同时说明团队成员来自于哪个部门。除了图形外,可以用文字简要说明各个角色应有的技术水平。注意虽然有一些通用的结构可以套用,但各种不同规模、不同形式的项目组织结构是不一样的。如产品研发项目可能