作者:CppExplore 网址:http://www.cppblog.com/CppExplore/
一个项目从开始到结束会经历一系列的阶段。有效划分这些阶段,对进度控制、成本控制、质量管理、功能控制至关重要。一般的大中型软件开发公司,都有自己的阶段划分方法,定义的各阶段要完成的任务也不尽相同。本文就个人从研发角度理解到的,简单叙述一下开发的各个流程。
(1)phase0:由市场人员反馈提出项目开发阶段。该阶段没有明显的时间周期,是项目的发起阶段。由相关人员提供产品的主要feature、市场前景的说明文档。公司管理层、市场部、产品部召开p0会议,决议通过,指定该产品的全权负责人:产品经理。项目进入正式启动阶段。
(2)phase1:计划阶段。产品经理制定产品各个阶段的时间段、成本、产品功能范围
输出:进度、成本报告
完成:召集系统部人员、研发部负责人召开pr1(phase review)会议。会议通过,指定系统部人员,分配时间,通知研发部、测试部准备人员在计划时间进入该项目。
(3)phase2:需求设计阶段。系统设计人员完成需求设计
输出:需求文档 各子系统需求 各子系统间的交互接口 须明确指出需要完成的功能点
完成:召集系统设计人员、研发人员、测试人员召开pr2会议。会议通过进入phase3阶段
(4)phase3:开发阶段。产品经理为研发人员分配时间。系统开发阶段(包含3个子阶段:设计阶段d1、编码阶段d2、内部测试阶段d3)
d1阶段:
输出:自己负责模块的系统设计。
完成:研发负责人召集相关人员召开dr1(development review)会议
d2阶段:
输出:代码
完成:无明显事件
d3阶段:
输入:单元测试报告(须包含明确的功能点,明确的输入、输出,测试的确切结果)
完成:设计文档、源码、安装文件/打包文件、测试文档、安装说明、relase notes等文档递交到指定的版本管理工具并且将相关文档发送给相关人员。
产品经理召集相关人员召开pr3会议,确认功能点完成情况、代码量统计、开发阶段模拟工具、公有模块等额外的开发成果,通知it部门标记当前版本。
(5)phase4:测试阶段。产品经理为测试人员分配时间。测试人员根据系统设计人员的需求文档对当前版本进行功能点测试、稳定性测试、性能测试。某些情况下可能将该阶段细分为:实验室测试阶段、现场测试阶段。
输出:测试报告,bug存入bug管理系统
完成:通知it部门为当前版本标记,作为正式发布版本。
(6)phase5:维护阶段。产品经理为相关技术支持、研发人员安排适量的灵活时间。正式版本交现场实施部门。
(7)phase6:结束阶段。产品已被市场淘汰,维护终止,所有相关人员撤出,所有文档、代码进入冻结,一定时间后销毁
常使用的工具有clearcase/svn/cvs/sourcesafe clearquest,开源的bug管理工具不再列举