前言
本节课简单介绍了开发流程的起因、阶段和做法,让我们更好的理解如何与他人进行协作。
1.为什么要有流程
1.团队规模与流程的关系
- 团队需要流程,人们之间协作才能更好
- 没有流程导致的问题
- 需求阶段:每个人都有自己的想法,团队决策需要有一个过程
- 开发阶段:多人/多端协作开发,每个人有自己的安排,相互配合需要有一个流程
- 测试阶段:产物怎样交付,测试如何开展,BUG怎么修都需要流程
- 发布阶段:怎样确保发布过程平稳丝滑,版本和流量如何控制,需要有规范
- 运维阶段:线上问题如何应急响应,处理用户反馈和线上问题需要有流程
2.瀑布模型
- 最直观的流程模型
- 需求->开发->测试->发布->运维
- 特点
- 工作流程的直观表达
- 定义了标准的研发阶段
- 以流程为本,理想化模型
3.敏捷开发
- 更现代的流程模型
- 特点
- 以小团队快速迭代
- 团队成员之间的合作更加紧密
- 以人为本,和用户沟通
4.SAFe
- 一套管理框架
- 特点
- 精益产品开发
- 敏捷软件开发
- 系统思考
2.流程阶段
1.需求阶段
- MVP思想(最小化可行产品):站在用户角度思考,收集用户反馈,快速迭代
- 事件划分
2.开发阶段
- 云原生下的开发(传统虚拟机、容器、单体架构、微服务架构)
- 团队分支策略
- 代码规范、自测(单元测试、功能环境测试、测试数据构造)和开发文档
3.测试阶段
- 测试金字塔(单元测试-集成测试-系统测试-UI测试)
- 区别
- 功能环境
- 需要一个能模拟线上的环境进行开发和测试
- 环境和环境之间能够隔离,不影响其他功能的开发和测试
- 集成环境
- 不同人开发的功能合并在一起测试,相互之间的影响可能产生缺陷
- 迭代发布的所有功能合并在一起测试,确保发布的所有功能之间的影响不产生缺陷
- 回归环境
- 确保新的功能不对老的功能产生影响
- 回归测试一般会借助自动化测试脚本
- 功能环境