软件产品开发周期一般由:规划,设计,实施,稳定和发布五个阶段组成, 每个阶段又都是重复的相互迭代的过程,
这个过程需要多方的合作找出最佳的实践过程.
第一阶段:规划(Plan)
目标:规划软件的整体架构
各部门完成标准:
1.市场开发人员
衡量市场机会提供市场机会文件(MOD)
定义用户需求提供市场需求文件(MRD)
认定主要用户案例User Scenarios
2.项目经理
确定产品的视觉提供产品视觉文件
确定查品功能定义,定义项目和产品的深广度
定义小组的组建计划,用户协助计划
3.产品设计和用户研究人员
概念性设计,用户界面图形化(Visualize UI)
4.开发/测试人员:调查将可使用的流程,技术和工具
5.服务人员
评估潜在的用户流量
评估推行和维护此产品的可行性
第二阶段:设计(Design)
目标:确定如何开发
各部门完成标准
1.市场开发人员:对新功能设计提供反馈意见,完成品牌战略推荐文件
2.项目经理:
完成功能规范(functional specs)提供功能规范设计
完成由下至上的日成表
3.产品设计和用户研究人员:用户界面模型设计
4.发人员:完成开发体系的机构设计
5.测试人员:完成总体测试计划(细化)
里程碑:规划和设计的完成是软件开发的第一个里程碑
规划和设计的迭代过程:规划的形成是经过“设计”确认,重新定位和校正,
在设计过程中重新估价可能改变规划时的决定
第三个阶段:实施(Implement)
主要里程碑,多个小产品周期
完成标准:
1.市场开发人员:推广计划文件,完成市场定位和咨询策略框架 完成市场推广计划蓝图
2.项目经理:修正功能规范,管理进度,风险,相关性及关系
3.产品设计和用户研究人员:冻结用户界面模型设计上的改变
4.开发人员:编写代码和修理bugs
单元测试
完成编写代码(Code Complete)
5.测试人员:编写测试功能规范,完成测试工具和流程的准备工作
第四阶段:稳定
完成标准:发布市场测试(bata)版
发布技术测试(Bata)版
继续bug Triage
达到零个bug,测试版本被内部采用
部门责任:
1.市场开发人员:完成包装。推广公关,广告计划,产品演示
2.项目经理:组织Triage会议,消除程序bug
3.开发人员:修理Bugs ,只在设计改变的情况下写新的代码
4.测试人员:发现bugs ,记录bugs 最后整体测试
5.服务人员:安装测试版本
第五个阶段:发布
完成标准:产品发布推广,产品售后服务,技术支持开始运作
部门责任:
1.市场人员:执行产片市场的推广计划
2.项目经理:收尾工作,筹备下一个产品
3.开发人员:修理bugs
4.测试人员:记录bugs ,做最后的测试修改
5.为用户提供售后服务,技术支持
开发过程实践关键:
1.利用工作流程和相应模板书写相应的文档文件(需求文档,设计文档,测试文档)
2.评估开发周期指定详细的进度管理
3.风险无处不在不要忽略各种危险信号,不要担心失败而隐瞒实况
4.工具管理:着中重复性工作的工具开发(例如测试工具),提高开发效率
5.沟通管理:各个部门协调工作,及时通过email 会议沟通
6.Bug 管理:开发测试阶段bugs 和用户实际使用过程中碰到的bugs 都要及时采集记录和处理
7.源代码管理 :使用vss 或者css 等源代码管理软件 管理软件版本
参加了去年在北京举办的TechED2003会议 感觉受益匪浅,终于有时间整理了一下资料,本文是根据微软软件测试工程李丹老师讲的软件开发后整理所得