互联网传统的开发流程:需求->方案->开发->测试->交付。
这算是一种标准流程,但是不够细致。每一个团队都有适合自己的一种开发流程。
总结一下我们的基于敏捷开发的工作流程,以供参考。
工作流程
总体的过程包括:接收需求,规划,项目启动会,阶段实施,项目总体交付,项目结束会。
规划包括:阶段划分,项目里程碑,完成标准,实施流程。
阶段实施包括:阶段需求分析,阶段数据库设计,阶段接口设计,阶段实施开发,阶段测试,阶段交付。
流程分为:主流程和分支流程
需求按影响程度分为:影响主干逻辑的核心需求,和对主干流程进行补充和添枝加叶的补充需求。
阶段需求分析分为4个步骤:
- 整理需求(这个步骤主要是对原始需求进行梳理,暴露出主干流程的问题)
- 跟需求方确认核心需求,画出一个主干流程图
- 整理补充需求
- 确定补充需求,画出详细流程图
这样划分的目的是因为主干流程大多数时候是比较明确的,也是很容易确定出来的,而补充需求涉及到很多细节,确认出来耗时比较长;而对于技术人员来说主流程需求是耗费精力最多的,在主干流程确定下来之后,技术人员就可以设计数据表和接口。
没有一开始就能确定完美的需求,等所有需求都确认下来太消耗时间了,技术人员在实施过程中也能更加理解需求。
流程:
- 产品经理接收总体需求
- 项目经理需要对需求进行规划,规划的工作包括任务拆解、阶段规划、项目里程碑、制定工作流程及完成标准。
- 项目经理召集项目成员召开项目启动会。明确项目愿景和目标,同步项目阶段,里程碑等。
- 项目背景
- 项目目标
- 项目范围
- 里程碑计划
- 主要风险
- 组织架构
- 责任分工
- 流程机制
- 沟通方式
- 支持工具
- 阶段实施
4.1 产品经理要先对阶段主干流程进行梳理,制定主流程图并跟项目经理确认。
4.2 阶段数据表方案设计,进行方案评审。
4.3 阶段接口方案设计,进行方案评审。
4.4 实施开发
4.5 产品经理确定详细需求,制定详细流程图并跟项目经理确认。
4.6 技术人员开发
4.7 内部测试
4.8 交付 - 项目整体交付
- 项目结束会(归档,复盘)
分工
项目经理:
核心:保目标,助决策,提效能,促协作。
具体事项:
项目启动会,确定整体目标和重要里程碑。
干系人管理,向上向下沟通。
制定工作制度和流程,建立沟通和协作机制。
规划项目阶段,明确各阶段完成时间点。
任务拆解划分到人,遇到问题帮助解决问题。
确定各个环节的工作成果及时汇报。
监控各个环节的进度,质量,范围,发现有偏差时及时纠正。
发现团队的问题,针对性的解决团队遇到的问题,尽力帮助组员提升能力。
项目经理需要定期每周向上进行一次项目汇报(推进状态,遇到问题,解决方案,需要支持),每周向下进行一次本周的项目进度报告。
产品经理:
核心:需求,需求,需求。
具体事项:
先完成需求的主干流程确认(大概占总需求的70%,占总需求确认时间的50%)
制定主干流程图
再确定详细需求(剩余的30%的细节需求,占50%需求确认时间)
制定详细流程图
后端工程师:
核心:后端落地
具体事项:
先根据产品经理提供的主干流程图制定主干的数据表和接口,并进行开发。
根据详细需求进行调整。
接口设计
实施开发
前端工程师
核心:前端落地
具体事项:
实施开发
接口联调
完成标准
- 主流程需求确认完成
- 主流程逻辑梳理完成
- 主流程图
- 原型图
- 主流程需求评审会
- 详细需求确认完成
- 所有需求确认完成
- 详细功能流程图
- 前端UI完成
- 按原型完成UI开发
- 后端接口完成
- 后端接口开发完成
- 接口文档完成
- 注释完成
- 接口自测通过
- 按原型要求完成接口
- 接口清单
- 方案评审
- 前后端联调完成
- 所有功能接口联调完成
- 开发完成
- 前端ui开发完成
- 后端接口开发完成
- 前后端联调完成
- 主流程跑通
- 按需求完成功能
- 自测通过达到提交内部测试标准
- 内部测试完成
- 主流程跑通
- 边缘规则测试通过
- 回归测试通过