软件开发流程管理制度
(讨论稿)
为加强对定制软件开发工作管理,缩短开发周期,提高软件开发质量,降低开发成本,提高定开发效率和效益,特制定软件开发流程管理制度。
第一章、总则
为保证日常工作正常有序的进行,让开发中各个环境更紧凑,更可控,需要尽可能实现项目管理的正规化,工作过程的流程化,以便提高软件质量,按期交付。
1、软件开发总体遵循项目管理和软件工程的基本原则。
2、项目管理涉及项目立项、项目计划和监控、配置管理。
3、软件工程涉及需求分析、系统设计、软件实现、系统测试、用户测试、试运行、系统验收、系统上线和数据迁移、产品维护。
第二章、阶段成果
根据软件工程的过程,制定以下工作流程,并规定了各个重要环节需要提交的交付物。各阶段需提交的文档:
1、立项:项目申请表,软件需求报告或设计方案。
2、需求分析:项目研发主计划、需求规格说明书
3、总体设计:概要设计说明书或功能模块描述
4、详细设计:详细设计说明书,包括软件接口说明、单元测试计划。
5、软件实现:软件功能说明、源代码说明或者注释
6、产品测试:测试报告
7、产品发布:产品说明书、使用手册
8、产品维护:问题反馈记录
9、项目总结:提交客户方的项目总结和公司项目汇报的PPT。
软件过程成果表:
阶段
形成文档
职责及文档成果描述
负责人
涉及范围
备注
需求阶段
项目立项报告(Word)
明确甲乙双方责任及义务,需双方签字确认
项目经理
验收报告
大部分业务建模和需求,少部分分析设计
业务需求说明书(Word)
需求定义,阐述业务范围及内容,开发组负责制定最优技术设计方案
项目经理/分析员
验收报告
项目开发计划(Project)
用户、领导、项目组都了解项目进度
项目经理
验收报告
设计阶段
业务流程总体设计书、详细设计说明书(Word/Visio)
项目组成员分配任务,并召开讨论会议,讨论项目的技术架构和可能存在的技术难点,梳理业务流程,统一开发规则和风格等
项目经理/分析员
验收报告
大部分分析设计,部分实施编程及测试,开始考虑部署
数据库关系设计图、流程图(PowerDesigner)
便于项目开发
分析员
验收报告
任务分配文档(Word)
明确每个组员的开发任务及职责
项目经理
过程报告
问题说明报告(Word)
让用户、领导及组员及时了解和发现问题
项目经理
过程报告
业务变更文档(Word)
记录开发过程中用户提出的业务需求变更情况
分析员
过程报告
测试阶段
项目测试方案及报告(Word)
记录项目测试的方法,验证系统功能与性能的记录
测试员
验收报告
反复测试直至系统稳定
用户使用手册(Word)
方便用户使用软件而提供的使用说明书
测试员
验收报告
上线及运行
系统切换报告
系统部署后的操作记录
项目经理
过程报告
部署及维护
用户培训报告
用户培训文档
项目经理
过程报告
项目验收报告(Word)
记录甲乙双方签订项目验收报告
项目经理
验收报告
项目总结性报告
项目组通过此项目总结经验及不足
项目经理
总结报告
第三章、岗位设置
根据公司目前的开发过程主要分为分析、开发、测试三个阶段。分析阶段完成用户需求文档的编写,系统总体设计的编写;开发阶段完成设计文档的编写,代码的编写、代码的维护。测试阶段完成系统的测试,测试文档及其他材料。通过逐渐的调整岗位,明确工作职责,逐步实现项目经理,软件设计师,程序员,测试工程师的岗位设置。
岗位
工作内容
责任
项目经理
1、选定项目组成员,成立项目组,安排任务分工
2、与客户进行沟通和协调(业务需求或非业务需求方面),以及需求调研工作。
3、制定开发主计划,包括需求,设计,编码,测试这几个阶段的计划。
4、估计项目开发费用
5、制定小组开发进度表, 对组内人员工作进度监控。
6、和客户进行沟通,进行需求调研,汇总需求分析文档,并编写系统总体设计方案
7、对文档的质量进行检查、把关
8、对组内成员的工作进行指导
1、对客户的沟通协调工作负责;
2、对软件的开发效率、质量、费用负责
3、对用户的需求分析的质量负责;
4、对系统总体设计、详细设计文档质量负责
软件设计师
1、负责系统的模块设计,详细设计文档
2、绘制界面原型demo等,设计功能使用的具体描述、行为者、前置条件、后置条件、UI描述、业务流程/子流程/分支流程,界面说明等,完成大部分的前端设计,小部分的后端设计。
3、负责技术难度大的模块的代码或者公用模块代码的编写、维护
4、对自己负责模块的详细设计、代码编写。
5、对小组内人员进行技术指导
1、对组内人员的开发效率负责;
2、对产品整体风格负责
3、对项目整体设计流程负责;
4、对自己模块的开发效率和质量负责。
程序员
1、与项目经理沟通和确认某个模块的需求和实现方法
2、负责某个模块的代码编写、维护
3、对其他模块的代码的维护
4、负责与测试人员的交互,处理测试人员的问题
1、对自己模块的开发效率和质量负责。
测试工程师
1、根据用户需求分析和系统总体设计,编写测试文档和测试用例。
2、对系统的功能、性能、异常进行测试。
3、编写测试文档和操作指导手册。
1、对测试的质量负责
2、对测试文档和操作手册的质量负责。
第四章、项目立项
1、分析人员进行应用调查与分析,确认软件的应用需求。
2、成立项目评审会,开发总监、部门经理和指定人员必须参加。对项目进行可行性研究,编写项目建议书,评估项目的难度和工作量,形成可行性研究报告。
3、根据项目配置的优劣成立项目开发组,制定软件开发计划,确定项目经理,由部门和项目经理共同来确定具体项目配置,知识技能要求,团队成员及团队的角色。
第五章、项目计划与监控
1、以项目为单位,项目经理负责整个项目的计划、组织和控制。
2、在整个项目过程中,项目经理定期检查项目进度和完成情况,调整人员分工和安排。
3、项目计划需要变更时,需要明确变更内容并及时汇报。项目经理需要说明客户变更原因并将变更说明提交公司领导审核,以便根据变更内容及时调整计划。。
第六章、需求分析
1、对用户提出的需求进行分析汇总,梳理用户的业务流程和详细的功能定义。
2、做出简单的界面原型,与客户进行有效的沟通, 编写需求详细说明书。
3、根据现有条件进行估计,制定项目进度,制定详细的软件开发计划。
第七章、总体设计
1、在该阶段确定总体结构和软件开发架构,文件命名规范,编码规范。可按软件需求划分成子系统,也可直接定义目标系统的功能模块及各个功能模块的关系。
3、确定软件模块结构,给出每个功能模块的功能描述、数据接口描述,并完成系统概要设计说明书。
4、完成数据库的设计,并编写数据库设计说明书。
5、完成的文档需提交公司进行归档管理。
第八章、详细设计
1、调整前一步设计的不足,确认各模块之间的详细接口信息。
2、设计功能使用的具体描述、行为者、前置条件、后置条件、UI描述、业务流程/子流程/分支流程,界面说明等。
3、确定模块内的数据流或控制流,对每个程序模块必须确定所有输入、输出和处理功能。
4、汇总并提交所有相关文档,审核确认质量和进度。
第九章、软件实现
1、项目组根据概要设计说明书、详细设计说明书制定系统实现计划
2、有条件