Chapter / Methodology
软件工程方法学
From Craftsmanship to Engineering
核心思维:从「编程」到「工程」
软件工程方法学的出现,标志着软件开发从个人手工业向团队协作工程的演进。
演进历程
瀑布模型
线性、顺序、文档驱动。
敏捷宣言
敏捷运动起点,价值观重塑。
Scrum/XP
迭代增量开发,工程实践卓越。
DevOps
开发运维融合,自动化流水线。
敏捷开发
敏捷不是一种具体的方法,而是一套价值观和原则,是所有现代方法学的基石。
核心宣言
个体与交互
高于 流程和工具
可用的软件
高于 详尽的文档
客户合作
高于 合同谈判
响应变化
高于 遵循计划
核心原则
迭代式开发、早期交付、欢迎需求变化、业务人员与开发人员每日协作。 它赋予了团队快速响应变化、持续交付价值的能力。
Scrum 框架
Scrum 是一个实现 Agile 思想的轻量级框架,用于管理产品开发。
Product Owner
定义需求,管理Backlog,代表客户利益。
Scrum Master
服务式领导,确保流程执行,移除障碍。
Dev Team
跨职能自组织团队,负责交付增量。
Sprint Planning
规划当前迭代要完成的任务。
Daily Stand-up
15分钟同步会:做了什么?做什么?有什么困难?
Sprint Review
演示成果,获取反馈。
Product Backlog
所有需求的有序列表。
Sprint Backlog
当前 Sprint 要完成的任务。
Increment
可交付的产品功能总和。
看板 Kanban
侧重于可视化工作流和限制在制品 (WIP),以实现持续、平滑的交付。
核心实践
- 01 可视化工作流
- 02 限制在制品
- 03 管理流动
与 Scrum 区别
Scrum是基于时间盒的迭代,而看板是持续流动的,没有固定的迭代周期,变化可以随时发生。
DevOps
DevOps 是 Agile 的自然延伸和文化扩展。它强调开发与运维团队之间的协作与自动化。
核心文化
打破开发(负责创造)和运维(负责稳定)之间的传统壁垒,建立共享责任的文化。
核心实践
- CI (持续集成): 频繁集成代码,自动运行测试。
- CD (持续交付): 自动化流水线部署到生产环境。
- IaC (基础设施即代码): 代码化管理基础设施。
如何选择与应用?
Scrum
需求多变的项目,提供结构化的迭代和快速反馈。
Kanban
突发任务多,灵活处理不可预测的工单流。
DevOps
在敏捷基础上引入自动化,保障交付速度与稳定性。
「你不再只是一个孤立的编码者,而是一个懂得如何在团队中高效协作的成员。」