XXXX系统研发
一、引言
目的
说明编写这份项目计划的目的,并指出预期的读者。
作用:本节是为了说明编制“项目计划书”亦即本文档的意图和希望达到的效果。注意这里的“目的”不是“项目目标”,而是为了说明本文档的目的与作用。
定义
列出为正确理解本计划书所用到的专门术语的定义、外文缩写词的原词及中文解释。注意尽量不要对一些业界使用的通用术语进行另外的定义,使它的含义和通用术语的惯用含义不一致。
二、项目概述
项目目标
把项目要完成的工作用清晰的语言描述出来,让项目团队每一个成员都有明确的概念。明确的项目目标应该指出了服务对象,所开发软件系统最主要 的功能和系统本身的比较深层次的社会目的或系统使用后所起到的社会效果。
原则:
- 明确的陈述
- 可以衡量的结果
- 可以达成的目标
- 合理的,现实的或者说是能和实际工作相结合
- 可以跟踪的
项 目目标可以进行横向的分解也可以进行纵向的分解。
横向分解:一般按照系统的功能或按照建设单位的不同业务要求拆分。如分解为第一目标、第二目标等等;
纵向的分解: 一般是指按照阶段,阶段目标一般应当说明目标实现的较为明确的时间。一般 要在说明了总目标的基础上再说明分解目标,可加上“为实现项目的总目标,必须实现以下三个阶段目标······”
项目工作范围
说明为实现项目的目标需要进行那些工作。在必要时,可描述与合作单位和用户的工作分工。
产品范围界定:
- 用户偏好标签收集,整理和清洗。
- 商品标签整理和清洗。
- 用户偏好商品推荐。
软件系统产品本身范围的特征和功能范围。
工作范围界定:
- 产品原型设计。
- 项目架构设计。
- 项目数据库设计。
- 项目功能编码,测试。
为了能够按时保质交付一个有特殊的特征和功能的软件系统产品所要完成的那些工作任务。
交付成果
项目名:推荐系统(基于内容推荐)
编程语言:Golang
调用方式:http、https、grpc
数据库:mysql8.0、 redis、redisSearch(扩展)
列出需要完成的程序的名称、所用的编程语言及存储程序的媒体形式。其中软件对象可能包括:源程序、数据库对象创建语句、可执行程序、支撑系统的数据库数据、配置文件、第三方模块、界面文件、界面原稿文件、声音文件、安装软件、安装软件源程序文件等等。
三、实施计划
实施风险
识别或预估项目进行过程中 可能出现的风险。
实施工作流程
说明项目采用什么样的工作流程进行。如瀑布法工作流程,原型法工作流程、螺旋型工作流程、迭代法工作流程,也可以是自己创建的工作流程。不同的流程将影响后面的工作计划的制定。必要时画出本项目采用的工作流程图及适当的文字说明。
采用敏捷开发工作流程快速响应变化的软件。
产品设计
- 产品方案设计:产品根据需求设计功能,然后与开发、测试一起进行评审。
- UI设计:UI设计交互页面,然后与前端一起评审。
- 技术方案设计:项目功能拆分后,对具体的功能进行技术方案设计与评审。
敏捷迭代
-
迭代: 层会、codeReview、测试评审。
-
交付: 测试完成、产品验收。
-
发布:持续迭代发布。
-
回顾:总结好的与不好的。
总体计划
这里所说的总体进度计划为高层计划。作为补充,应当分阶段制定项目的阶段计划,这些阶段计划不在这份文档中,当要以这份总体计划为依据。
总体进度计划要依据确定的项目规模,列表项目阶段划分、阶段进度安排及每阶段应提交的阶段成果,在阶段时间安排中要考虑项目阶段成果完成、提交评审、修改的时间。
总周期1个月
产品方案设计 40 人/时
技术方案设计 16 人/时
数据库设计 16 人/时
用户偏好收集、整理: 24 人/时
商品标签整理: 24 人/时
商品推荐: 16 人/时
功能测试: 24 人/时
发布上线: 8 人/时
备注:因为产品需求尚未确认,部分开发功能会有出入,具体以实际为准。
进度控制
将所有任务记录至Coding ,按照排期完成。 如果出现预料之外的情况,周末进行加班处理。
五、要点
逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目成败的影响。