软件需求生命周期
为了规范软件开发周期中各个阶段相关人员以及资料的控制,在此进行软件需求生命周期说明。
术语定义
- 产品:产品经理、产品专员、项目经理等
- 设计:UI 设计师、交互设计师等
- 前端:包含但不限于 WEB 前端、iOS 开发、Android 开发、桌面开发工程师等
- 后端:包含但不限于 Java 后端开发、C/C++ 后端开发、Python 后端开发工程师等
- 开发:前端开发、后端开发等
- 测试:功能测试、性能测试、安全测试、自动化测试工程师等
需求阶段
提出需求
相关方:需求方、对接人
产出:相关资料文件或资源
内容:通常由产品、项目经理、部门经理、老板、客户等作为需求方提出需求。通常由产品或项目经理作为需求对接人接收需求。需求复杂时,可能涉及需求方提供相关资料文件或者对接人自行查找。
需求调研
相关方:产品
产出:可行性报告或者预案
内容:由产品进行立项准备,向相关方说明或备注。如果涉及专业领域,可能涉及输出可行性报告或者预案;譬如比特币交易等。
技术调研
相关方:技术负责人
产出:可行性报告或者风险报告
内容:产品下发需求后,相关技术实施部门负责人进行可行性调研,复杂点可能涉及技术预演,最后将调研结果给到产品。有技术风险需要输出可行性报告或者风险报告。
需求立项
相关方:产品
产出:解决方案,通常是需求文档、线框图、业务流程图等
内容:完成需求调研和技术调研后,如无问题,对接人可向需求方提供解决方案。当解决方案得到需求方肯定后,产品可进行立项;整理相关文档,准备相关资源;如第三方服务,云服务,客户资料等。需求整理完成进行下一步。
需求评审
相关方:产品、设计、开发、测试
产出:设计图
内容:产品组织相关人员参加需求评审会,发现需求实施问题进行收集,并对相关资料文件进行调整,如遇大改可能会涉及多次评审会。需求评审完后设计产出设计图。
设计图评审
相关方:产品、设计、开发、测试
产出:会议记录
内容:产品组织相关人员参加设计图评审会,发现设计图实现问题进行收集,并对相关资料文件进行调整,如遇大改可能会涉及多次评审会。设计图评审也可和需求评审一起组织。
交互评审
相关方:产品、设计、开发、测试
产出:交互文档
内容:产品组织相关人员参加交互评审会,发现交互实现问题进行收集,并对相关资料文件进行调整,如遇大改可能会涉及多次评审会。交互评审也可和设计图评审、需求评审一起组织。
开发阶段
排期
相关方:产品、开发、测试
产出:排期表
内容:需求具体实施人对需求按功能点或页面等进行任务拆分,然后参考任务进行排期。排期需包含开发、自测、联调等时间,即达到提测的时间。开发当中不确定因素较多,相关开发人员应当给自己开发留有缓冲时间。排期完成后,产品应该留有排期表。
开发
相关方:开发
产出:技术文档、项目文档(Readme)、接口文档、代码
内容:开发前涉及技术选型,则需要创建或更新技术文档;若涉及项目搭建,则需要创建或更新项目文档;涉及接口改动,则需要前后端协同完成接口定义,并创建或更新接口文档。开发中开发人员需要按模块和功能定进行任务拆分,然后跟进开发规范按任务点进行开发。
自测
相关方:开发
产出:暂无
内容:开发完成后需要自己在本地进行自测,主要是单元测试和性能测试。对于前端,可根据接口文档自行进行接口模拟。
联调
相关方:前端、后端
产出:暂无
内容:前后端完成开发和自测后,需要进行接口联调。同时对接口涉及部分进行二度自测。
提测
相关方:前端、后端
产出:提测申请
内容:前后端完成联调后,将代码部署到测试环境,然后提请测试人员安排测试。
测试阶段
测试环境测试
相关方:测试、开发
产出:测试报告
内容:测试人员按照测试文档对测试环境进行测试,输出测试报告给到开发人员。开发人员根据测试报告修复问题,问题集中修复后重新提测。直到没有问题产出后开发人员将代码部署到预发布环境,并提测。
预发布环境测试
相关方:测试、开发
产出:测试报告
内容:测试人员按照测试文档预发布环境进行测试,输出测试报告给到开发人员。开发人员根据测试报告修复问题,问题集中修复后重新提测。直到没有问题产出后开发人员可以提请正式环境部署,进入交付阶段。
交付阶段
制定发布计划
相关方:开发
产出:发布计划
内容:开发人员被授权部署上线后,开始指定发布计划。比如多个需求同时发布,或者发布时间较长,需要提前关闭服务并告知用户提示服务升级中,又或者发布波及广,需要检查对其他服务的影响是否可控,是否需要夜间发布等。
发布
相关方:开发
产出:无
内容:开发人员按照发布计划,决定灰度发布或全量发布,然后部署正式环境代码。部署完成后,开发人员需要检查下功能是否运行正常,如有异常立即进行研究决定打补丁还是版本回退,如无异常则通知产品验收。
验收
相关方:产品
产出:无
内容:产品收到验收申请后,对线上功能进行体验,产品确定没有问题后可再通知需求方验收。
跟踪阶段
日志监控
相关方:开发
产出:无
内容:在发布上线后,开发需要对系统中的前后端日志进行收集,确保没有遗漏问题,如发现问题,及时反馈到产品和技术负责人,然后根据问题类型和严重程度安排打补丁或者整合到后续需求中。
反馈收集
相关方:产品
产出:无
内容:在发布上线后,产品需要收集用户体验反馈,决定后续需求调整。比如用户反馈体验差,产品需要决定是否对该功能进行下架重新设计等。
备注
- 产品可在开发测试和交付阶段对功能进行先行体验。
- 一般不建议直接把开发环境作为测试环境。
- 有些项目可能存在无预发布环境问题。
- 其中测试部分比较粗略,需完善部分较多。
- 该文档属于项目文档一部分。