Skip to content
难度重点
建议时长45分钟

7.3.7 敏捷方法

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

敏捷为什么出现

前面的很多模型都担心需求变化:瀑布尤其怕变化,V 模型虽然提前考虑测试,但本质仍偏线性。现实项目中,需求变化、客户反馈、市场节奏和技术不确定性都很常见。敏捷方法用“小步快跑”的方式应对变化:短周期交付、客户直接参与、团队快速沟通、计划随变化调整。

课堂也指出:敏捷在有些教材中归为开发方法,有些归为开发模型;在软件设计师这门课中,把它放在开发模型部分复习即可。

敏捷的统一思想

思想解释
小步快跑以短周期迭代交付可运行版本
客户参与谁使用系统,谁配合开发反馈
合作为重团队内部、团队与客户都要沟通合作
适应性计划一旦需求变化,快速调整计划
自动化测试用自动化提高反馈速度和回归效率
持续集成小版本按日甚至按小时集成和交付

敏捷不是“没有计划”,而是计划要能随着反馈不断调整。

XP:软考常考的敏捷方法

XP 是 Extreme Programming,极限编程,不是 Windows XP。课堂强调软件设计师中常考 XP,它有四大价值观、五大原则和十二项最佳实践。

四大价值观

价值观含义
沟通团队内部、团队与客户持续沟通
简单尽可能用简单设计满足当前需求
反馈有问题尽早反馈,快速调整
勇气有勇气面对变化、重构和修改

五大原则

原则含义
快速反馈尽早发现问题
简单性假设不为未确认的未来复杂性过度设计
逐步修改小步调整,而不是一次性大爆炸修改
提倡更改把变化看作正常输入
优质工作保持质量和可持续节奏

十二项最佳实践

实践解释
计划游戏快速制定和调整计划,应对变化
小型发布尽早向用户交付可运行版本
隐喻用共同理解的比喻帮助沟通
简单设计只处理当前需求,保持设计简单
测试先行先写测试,再写程序
重构重新审视并改进设计和代码结构
结对编程两人协作,一人写一人看,快速发现问题并降低人员流失风险
集体代码所有制团队成员都可以理解和修改代码
持续集成频繁集成,按日甚至按小时提供可运行版本
每周 40 小时工作制保持优质工作和可持续效率
现场客户用户代表全程配合开发团队
编码标准统一代码风格,降低沟通和维护成本

敏捷实践为什么替代旧做法的一部分

传统痛点敏捷实践的回应
需求变更反馈慢,等几天才确认现场客户和客户协作
缺陷发现晚测试先行、自动化测试、持续集成
一个人离职导致代码没人懂结对编程、集体代码所有制
版本交付周期太长小型发布、短迭代
设计越来越乱重构、简单设计、编码标准

敏捷不是银弹。它更适合小团队、变化快、客户能持续参与的项目;如果项目必须严格强文档审批、客户无法参与、监管流程极重,就需要结合传统过程管理。

例题

单选
敏捷方法的典型思想是:
单选
软件开发模型中的 XP 指:
单选
先写测试代码,再编写具体程序,属于 XP 的:

自查要点

  1. 敏捷为什么能更好适应需求变化?
  2. XP 的四大价值观是什么?
  3. 结对编程除了发现问题,还能降低什么风险?
  4. 测试先行和持续集成分别解决什么问题?
  5. 敏捷适合什么样的团队和项目?