软件开发项目计划书编写说明与模板.docx
《软件开发项目计划书编写说明与模板.docx》由会员分享,可在线阅读,更多相关《软件开发项目计划书编写说明与模板.docx(18页珍藏版)》请在冰豆网上搜索。
软件开发项目计划书编写说明与模板
软件开发项目计划书编写说明与模板
本文主要对软件开发项目计划书的格式及主要内容的编写要点进行说明,对一些内容进行了举例说明。
一、项目计划书格式
根据《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组织结构
说明项目团队的组织结构。
项目的组织结构可以从所需角色和项目成员两个方面描述。
所需角色主要说明为了完成本项目任务,项目团队需要哪些角色构成,如项目经理、计划经理、系统分析员(或小组)、构架设计师、设计组、程序组、测试组等等。
组织结构可以用图形来表示,可以采用树形图,也可以采用矩阵式图形,同时说明团队成员来自于哪个部门。
除了图形外,可以用文字简要说明各个角色应有的技术水平。
注意虽然有一些通用的结构可以套用,但各种不同规模、不同形式的项目组织结构是不一样的。
如产品研发项目可能就不需要实施人员(小组),但需要知识转移方面的人员(小组)。
而软件编码外包的项目则不需要程序员,测试人员也可以适当地减少。
3.2人员分工
确定项目团队的的每个成员属于组织结构中的什么角色,他们的技术水平、项目中的分工与配置,可以用列表方式说明,具体编制时按照项目实际组织结构编写。
以下是一个示例。
3.3协作与沟通
项目的沟通与协作首先应当确定协作与沟通的对象,就是与谁协作、沟通。
沟通对象应该包括所有项目干系人,而项目干系人包括了所有项目团队成员、项目接口人员、项目团队外部相关人员等等。
其次应当确定协作模式与沟通方式。
沟通方式如会议、使用电话、QQ、内部邮件、外部邮件、QuickPlace、聊天室等等。
其中邮件沟通应当说明主送人、抄送人,聊天室沟通方式应当约定时间周期。
而协作模式主要说明在出现什么状况的时候各个角色应当(主动)采取什么措施,包括沟通,如何互相配合来共同完成某项任务。
定期的沟通一般要包括项目阶段报告、项目阶段计划、阶段会议等。
3.3.1项目团队内部协作
本节说明在项目开发过程中项目团队内部的协作模式和沟通方式、频次、沟通成果记录办法等内容。
3.3.2项目接口人员
应当说明接口工作的人员即他们的职责、联系方式、沟通方式、协作模式,包括:
a、负责本项目同用户的接口人员;
b、负责本项目同本企业各管理机构,如计划管理部门、合同管理部门、采购部门、质量管理部门、财务部门等的接口人员;
c、负责本项目同分包方的接口人员。
3.3.3项目团队外部沟通与协作模式
项目团队外部包括企业内部管理协助部门、项目委托单位、客户等等。
本节说明在项目开发过程中项目团队内部与接口人员、客户沟通的方式、频次、沟通成果记录办法等内容。
明确最终用户、直接用户及其所在本企业/部门名称和联系电话。
明确协作开发的有关部门的名称、经理姓名、承担的工作内容以及工作实施责任人的姓名、联系电话。
确定有关的合作单位的名称、负责人姓名、承担的工作内容以及实施人的姓名、联系电话。
4实施计划
4.1风险评估及对策
识别或预估项目进行过程中可能出现的风险。
应该分析风险出现的可能性(概率)、造成的影响、根据影响应该采取的对策,采取的措施。
风险识别包括识别内在风险及外在风险。
内在风险是指项目工作组能加以控制和影响的风险,如人事任免和成本估计等。
外在风险指超出项目工作组等控制力和影响力之外的风险,如市场转向或政府行为等
风险的对策包括:
避免:
排除特定危胁往往靠排除危险起源;减缓:
减少风险事件的预期资金投入来减低风险发生的概率,以及减少风险事件的风险系数;吸纳:
接受一切后果,可以是积极的(如制定预防性计划来防备风险事件的发生),也可以是消极的(如某些费用超支则接受低于预期的利润)。
对于软件开发项目而言,在分析、识别和管理风险上投入足够的时间和人力可以使项目进展过程更加平稳,提高项目跟踪和控制的能力,由于在问题发生之前已经做了周密计划,因而对项目的成功产生更加充分的信心。
软件开发项目常见预估的风险:
1)工程/规模/进度上的风险
规模大,规模估算不精确甚至误差很大;就规模而言,用户要求交付期、费用很紧;预料外的工作(测试未完时的现场对应等);
2)技术上的风险
使用新的开发技术、新设备等,或是新的应用组合,没有经验;是新的行业或业务,没有经验;性能上的要求很严;
3)用户体制上的问题
用户管理不严,恐怕功能决定、验收不能顺利地完成(或者出现了延迟);或者恐怕功能会多次变更;与用户分担开发,恐怕工程会拖延(或者出现了延迟);用户或其他相关单位承担的工作有可能延误;
4)其它:
应该包含此处没有、但据推测有风险的项目。
4.2工作流程
说明项目采用什么样的工作流程进行。
如瀑布法工作流程,原型法工作流程、螺旋型工作流程、迭代法工作流程,也可以是自己创建的工作流程。
不同的流程将影响后面的工作计划的制定。
必要时画出本项目采用的工作流程图及适当的文字说明。
4.3总体进度计划
这里所说的总体进度计划为高层计划。
作为补充,应当分阶段制定项目的阶段计划,这些阶段计划不在这份文档中,当要以这份总体计划为依据。
总体进度计划要依据确定的项目规模,列表项目阶段划分、阶段进度安排及每阶段应提交的阶段成果,在阶段时间安排中要考虑项目阶段成果完成、提交评审、修改的时间。
对于项目计划、项目准备、需求调研、需求分析、构架设计或概要设计、编码实现、测试、移交、内部培训、用户培训、安装部署、试运行、验收等工作,给出每项工作任务的预定开始日期、完成日期及所需的资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(里程碑)。
例如:
表格中检查点/里程碑等阶段划分为举例,实际作业阶段划分、阶段成果等请根据项目需要确定。
制定软件项目进度计划可以使用一些专门的工具,最常用的是Microsoft的Project作为辅助工具,功能比较强大,比较适合于规模较大的项目,但无法完全代替项目计划书,特别是一些主要由文字来说明的部分。
小规模的项目可简便地使用EXCEL作为辅助工具。
关于如何使用这些工具不在此作详细说明。
制定软件项目进度计划应当考虑以下一些因素:
1)对于系统需求和项目目标的掌握程度。
如开始时对于系统需求和项目目标只有比较数的了解,就只能制定出比较粗的进度计划,等到需求阶段或设计阶段结束,就应该进一步细化进度计划。
2)软件系统规模和项目规模,这两个不是一个概念。
软件系统规模往往是从功能点的估算或其他估算方式得来的,而项目规模还要考虑对文档数量与质量的要求,使用的开发工具、新技术、多少复用、沟通的方便程度、客户方的情况、需要遵守的标准规范等等等等。
例如,完成一个大型的系统,在一定的时间内一个人或几个人的智力和体力是承受不了的。
由于软件是逻辑、智力产品,盲目增加软件开发人员并不能成比例地提高软件开发能力。
相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理方面的问题将更为严重。
3)软件系统复杂程度和项目复杂程度:
和软件系统规模和项目规模一样,软件系统的复杂程度主要是考虑软件系统本身的功能、架构的复杂程度,而项目的复杂程度主要是指项目团队成员的构成、项目任务的复杂程度、项目干系人的复杂程度、需求调研的难易程度,多项目情况下资源保障的情况,等等等等。
软件系统的规模与软件系统的复杂程度未必是成比例的关系;同样项目的规模与项目的复杂程度未必是成比例的关系。
4)项目的工期要求,就是项目的紧急程度。
有些项目规模大,却因为与顾客签订了合同,或者为了抢先占领市场,工期压缩得很紧,这时就要考虑如何更好地合理安排进度,多增加人选多采用加班的方式是一种万不得已的选择。
增加人选除了增加人的成本外必定会增加沟通的成本(熟悉项目任务所需要的时间);加班如果处理不好会造成情绪上的问题,也可能会因为过于忙碌而无法顾及质量,造成质量的下滑。
5)项目成员的能力。
这些能力包括项目经理的管理能力,系统分析员的分析能力、系统设计人员的设计能力、程序员的编码能力、测试人员的测试能力,以及企业或项目团队激发出这些能力的能力。
从另外一个角度看还有总体上对客户行业业务的熟悉程度;对于建模工具、开发工具、测试工具等技术的掌握程度;企业内部对行业业务知识和主要技术的知识积累。
4.4项目控制计划
4.4.1质量保证计划
执行质量评审活动,对过程质量进行控制。
规模较大的项目应当单独编写《软件开发项目质量计划》。
根据GB/T12504计算机软件质量保证计划规范,内容包括:
l引言(本章节包括质量计划的目的、定义、参考资料)
l管理(描述负责软件质量管理的机构、任务及其相关的职责)
l文档(列出在该软件的开发、验证与确认以及使用与维护等阶段中需要编制的文档,并描述对文档进行评审与检查的准则)
l标准、条例和约定(列出软件开发过程中要用到的标准、条例和约定,并列出监督和保证执行的措施)
l评审和检查(规定所要进行的技术和管理两个方面的评审和检查工作,并编制或引用有关的评审和检查规程,以及通过与否的技术准则。
至少要进行软件需求评审、概要设计评审、软件验证与确认评审、软件系统功能检查、程序和文档物理检查)
l软件配置管理(编制有关配置管理条款,或在“4.4.4配置管理计划”中说明,或引用按照《GB/T12505计算机软件配置管理计划规范》单独制定的文档)
l工具、技术和方法(指明用于支持特定软件项目质量管理工作的工具、技术和方法,指出它们的目的和用途)
l媒体控制(说明保护计算机程序物理媒体的方法和设施,以免非法存取、意外损坏或自然老化)
l对供货单位的控制(供货单位包括项目承办单位、软件销售单位、软件开发单位。
规定对这些供货单位进行控制的规程,从而保证项目承办单位从软件销售单位购买的、其他开发单位开发的或从开发单位现存软件库中选用的软件能满足规定的需求。
)
l记录的收集、维护和保存(指明需要保存的软件质量保证活动的记录,并指出用于汇总、保护和维护这些记录的方法和设施,并指明要保存的期限)
4.4.2进度控制计划
(可直接引用以下描述或根据项目情况制定本节内容)
本项目的进度监控执行本企业《项目管理规范》,由本企业过程控制部门如质量管理部统一进行监控,并保留在监控过程中产生的日常检查记录。
4.4.3预算监控计划
说明如何检查项目预算的使用情况。
根据项目情况需要制定。
4.4.4配置管理计划
编制有关软件配置管理的条款,或引用按照GB/T12505单独制订《配置管理计划》文档。
在这些条款或文档中,必须规定用于标识软件产品、控制和实现软件的修改、记录和报告修改实现的状态以及评审和检查配置管理工作等四方面的活动。
还必须规定用以维护和存储软件受控版本的方法和设施;必须规定对所发现的软件问题进行报告、追踪和解决的步骤,并指出实现报告、追踪和解决软件问题的机构及其职责。
根据《GB/T12505计算机软件配置管理计划规范》,软件配置管理计划内容如下:
l引言(本章节包括质量计划的目的、定义、参考资料)
l管理(描述负责软件配置管理的机构、任务、职责及其有关的接口控制。
)
l软件配置管理活动(描述配置标识、配置控制、配置状态记录与报告以及配置检查与评审等到四方面的软件配置管理活动的需求。
)
l工具、技术和方法(指明为支持特定项目的软件配置管理所使用的软件工具、技术和方法,指明它们的目的,并在开发者所有权的范围内描述其用法)
l对供货单位的控制(供货单位是指软件销售单位、软件开发单位或软件子开发单位。
必须规定对这些供货单位进行控制的管理规程,从而使从软件销售单位购买的、其他开发单位开发的或从开发单位现存软件库中选用的软件能满足规定的软件配置管理需求)
l记录的收集、维护和保存(指明要保存的软件配置管理文档,指明用于汇总、保护和维护这些文档的方法和设施,并指明要保存的期限)
5支持条件
说明为了支持本项目的完成所需要的各种条件和设施。
5.1内部