后端开发流程
课程目标:
职业规划:
-
后端开发的日常工作
-
可能遇到的协作方式
个人成长:
-
敏捷理念
-
研发流程规范
专业知识:
-
Scrum Team
-
DevOps
课程结构:

01. 为什么要有流程
1.1 团队规模和流程的关系
为什么要有流程?
-
个人开发者是不需要流程的
-
超过一个人的团队就需要协作
-
随着团队规模上升,会出现全新的问题
想法 -> 产品

1.2 传统的瀑布模型
-
工作流程的直观表达
-
定义了标准的研发阶段
-
以流程为本,理想化模型
最直观的流程模型
需求
|__ 开发
|__ 测试
|__ 发布
|__ 运维
1.3 敏捷开发
敏捷软件开发宣言:
-
个体和互动高于流程和工具
-
工作的软件高于详尽的文档
-
客户合作高于合同谈判
-
响应变化高于遵循计划

1.4 The Scaled Agile Framework (SAFs)简介
SAFe 是一套管理框架
-
精益产品开发
-
敏捷软件开发
-
系统思考
现代的 Scrum
-
敏捷教练 Scrum Master
-
产品负责人 Product Owner
-
敏捷团队 Scrum Team
-
敏捷发布火车 Agile Release Train
1.5 字节团队的流程

02. 有哪些流程
2.1 需求阶段
不用浪费时间讨论不应该存在的问题。
例如马斯克举例,之前工程师在一个零件自动化流程浪费大量时间精力,但是最后证明根本不需要这个零件。
MVP(minimun viable product,最小化可行产品)思想
-
站在用户的角度思考
-
收集用户反馈,快速迭代


另外一个评估需求的方法,也是我们日常工作中安排自己任务的一个方法,就是四象限法:
当你很多任务的时候,可以按照这个坐标,把他们按照重要性和紧急程度分类
有些事情既重要又紧急,那么我们就应该先去做,不重要又不紧急的可以最后做
而有些事情虽然重要但是不紧急他们的优先级应该比那些紧急但是不重要的事情高,因为如果我们不去处理,后面他们就会变得又重要又紧急
这个理论的原则是先判断事情的重要性,再判断紧急程度。
一个高效的占比,应该是大多数时间在处理重要但不紧急的事情,因为一旦一件事情变成了紧急,那我们就容易犯错误,因此如果每天大部分时间都在处理重要且紧急的事情,那么其实是不健康的
2.2 开发阶段
云原生的发展,深刻改变了后端开发的工作。
2.2 云原生下的开发

- 传统虚拟机
-
需要物理机虚拟出多个虚拟机,每个虚拟机有自己的操作系统
-
运维人员负责维护和交付虚拟机
-
每个虚拟机中都要安装对应的依赖环境
- 容器化
