互联网产品研发流程
最近一个其他行业的朋友想要了解一下互联网的研发流程,本文以程序员的视角来简单介绍一下。
互联网公司的产品形态一般都是 app/网页/小程序,因此涉及的工作角色也比较多。
- 产品经理最开始会想出一个 idea 并将其细化为产品需求文档
- 产品经理就产品需求文档与设计师、程序员、DS(数据分析)、QA(测试) 讨论相关细节、时间排期
- 设计师设计相关的 UI、UX;程序员写技术架构文档
- 程序员开发、测试、联调
- 提交 QA 进行测试,与产品经理、设计师一同测试,没问题之后上线
- DS 查询相关数据,并与产品经理讨论是否达到预期
下面详细介绍一下
产品需求
产品经理会通过多种方式来确定一个新的需求,比如竞品调研、市场调研、头脑风暴。
之后会写产品需求文档,涵盖一下内容
- 需求的目标,如何评估是否达到预期
- 对产品的改动,比如 UI 上的改动,功能的改动
- 时间排期(需要与多方角色协商)
产品经理部门内部会对需求文档进行评审,来确定是否真的实施
产品需求细化
接下来产品经理会与相关角色(设计师、程序员、DS、QA)进行评审,确定排期
- 设计师会就 UX、UI 方面进行讨论,比如新功能的入口,需要多少个页面,页面的基本布局,用户交互是否简单
- 程序员会关心实现是否可行,哪些功能优先级较高,一些小的但却难实现的功能是否可以之后迭代再做
- DS 会确定如何评估是否达到预期,是否做实验(bing 的例子)并于程序员讨论技术上如何实现
- QA 会讨论如何测试该需求,并写测试文档
工具:asana(任务管理)
1. 设计
设计师会画出新功能的入口,以及每一个页面的设计图,标注样式,尺寸,以及相关的交互
工具:figma(设计)
2. 技术设计
程序员会撰写技术设计文档,比如前后端之间的 API,数据库的改动,是否需要其他中间件比如数据队列、缓存
3. DS
DS 与程序员讨论如何添加监控、埋点方便评估效果
4. QA
QA 会写一份测试用例,用以测试需求实现是否达到预期
需求开发
这部分主要是程序员的工作,按照技术设计文档与设计图,完成相关的代码开发工作。
一个简单的开发流程是这样
- 本地新建开发分支,开发,测试
- 部署到测试服务器测试
- 找相关同事 code review
- merge 代码到主分支
所有功能开发完成之后,前后端联调,修复相关问题
工具:github(code review)CI/CD(持续集成、持续部署)
测试
通过配置,将新功能向相关角色开放。向 QA 提测。QA 核查每一个测试用例是否正常,如果有问题的话告知程序员进行修复。
没问题之后与产品经理,设计师再一同过一遍测试用例。之后上线
上线
上线之后程序员监控是否正常运行,运行一段时间之后,产品经理与 DS 查看相关数据,看看该需求是否与最开始的预期一致。(不一致的话应该如何改进、迭代)
评论