Chapter / Methodology

软件工程方法学

From Craftsmanship to Engineering

核心思维:从「编程」到「工程」

软件工程方法学的出现,标志着软件开发从个人手工业团队协作工程的演进。

Goal 01应对复杂性
Goal 02降低风险
Goal 03提高可预测性
Goal 04保障质量
01

演进历程

1970s

瀑布模型

线性、顺序、文档驱动。

2001

敏捷宣言

敏捷运动起点,价值观重塑。

2000s

Scrum/XP

迭代增量开发,工程实践卓越。

2010s

DevOps

开发运维融合,自动化流水线。

02

敏捷开发

敏捷不是一种具体的方法,而是一套价值观和原则,是所有现代方法学的基石。

核心宣言

个体与交互

高于 流程和工具

可用的软件

高于 详尽的文档

客户合作

高于 合同谈判

响应变化

高于 遵循计划

核心原则

迭代式开发、早期交付、欢迎需求变化、业务人员与开发人员每日协作。 它赋予了团队快速响应变化、持续交付价值的能力。

03

Scrum 框架

Scrum 是一个实现 Agile 思想的轻量级框架,用于管理产品开发。

Core Roles

Product Owner

定义需求,管理Backlog,代表客户利益。

Scrum Master

服务式领导,确保流程执行,移除障碍。

Dev Team

跨职能自组织团队,负责交付增量。

Ceremonies

Sprint Planning

规划当前迭代要完成的任务。

Daily Stand-up

15分钟同步会:做了什么?做什么?有什么困难?

Sprint Review

演示成果,获取反馈。

Artifacts

Product Backlog

所有需求的有序列表。

Sprint Backlog

当前 Sprint 要完成的任务。

Increment

可交付的产品功能总和。

04

看板 Kanban

侧重于可视化工作流限制在制品 (WIP),以实现持续、平滑的交付。

核心实践

  • 01 可视化工作流
  • 02 限制在制品
  • 03 管理流动

与 Scrum 区别

Scrum是基于时间盒的迭代,而看板是持续流动的,没有固定的迭代周期,变化可以随时发生。

Backlog
Todo
In Progress (WIP:2)
Done
05

DevOps

DevOps 是 Agile 的自然延伸和文化扩展。它强调开发与运维团队之间的协作与自动化。

核心文化

打破开发(负责创造)和运维(负责稳定)之间的传统壁垒,建立共享责任的文化。

核心实践

  • CI (持续集成): 频繁集成代码,自动运行测试。
  • CD (持续交付): 自动化流水线部署到生产环境。
  • IaC (基础设施即代码): 代码化管理基础设施。
ToolchainGit → Jenkins → Docker → Kubernetes → Prometheus
06

如何选择与应用?

新产品

Scrum

需求多变的项目,提供结构化的迭代和快速反馈。

维护型

Kanban

突发任务多,灵活处理不可预测的工单流。

追求速度

DevOps

在敏捷基础上引入自动化,保障交付速度与稳定性。

「你不再只是一个孤立的编码者,而是一个懂得如何在团队中高效协作的成员。」

Practice Recommendations

  • → 在课程项目中尝试使用 Scrum 流程
  • → 使用 Jira/Trello 管理个人任务
  • → 为个人项目搭建 CI 流水线

END OF CHAPTER