[ 从需求到上线全流程 | 青训营笔记 ]

52 阅读2分钟

前言

本节课简单介绍了开发流程的起因、阶段和做法,让我们更好的理解如何与他人进行协作。

1.为什么要有流程

1.团队规模与流程的关系

  • 团队需要流程,人们之间协作才能更好
  • 没有流程导致的问题
    • 需求阶段:每个人都有自己的想法,团队决策需要有一个过程
    • 开发阶段:多人/多端协作开发,每个人有自己的安排,相互配合需要有一个流程
    • 测试阶段:产物怎样交付,测试如何开展,BUG怎么修都需要流程
    • 发布阶段:怎样确保发布过程平稳丝滑,版本和流量如何控制,需要有规范
    • 运维阶段:线上问题如何应急响应,处理用户反馈和线上问题需要有流程

2.瀑布模型

  • 最直观的流程模型
  • 需求->开发->测试->发布->运维
  • 特点
    • 工作流程的直观表达
    • 定义了标准的研发阶段
    • 以流程为本,理想化模型

3.敏捷开发

  • 更现代的流程模型
  • 特点
    • 以小团队快速迭代
    • 团队成员之间的合作更加紧密
    • 以人为本,和用户沟通

4.SAFe

  • 一套管理框架
  • 特点
    • 精益产品开发
    • 敏捷软件开发
    • 系统思考

2.流程阶段

1.需求阶段

  • MVP思想(最小化可行产品):站在用户角度思考,收集用户反馈,快速迭代
  • 事件划分 image.png

2.开发阶段

  • 云原生下的开发(传统虚拟机、容器、单体架构、微服务架构)
  • 团队分支策略
  • 代码规范、自测(单元测试、功能环境测试、测试数据构造)和开发文档

3.测试阶段

  • 测试金字塔(单元测试-集成测试-系统测试-UI测试)
  • 区别
    • 功能环境
      • 需要一个能模拟线上的环境进行开发和测试
      • 环境和环境之间能够隔离,不影响其他功能的开发和测试
    • 集成环境
      • 不同人开发的功能合并在一起测试,相互之间的影响可能产生缺陷
      • 迭代发布的所有功能合并在一起测试,确保发布的所有功能之间的影响不产生缺陷
    • 回归环境
      • 确保新的功能不对老的功能产生影响
      • 回归测试一般会借助自动化测试脚本

4.发布阶段