# 介绍

# 什么是敏捷?

敏捷是一种通过创造变化和响应变化在不确定和混乱的环境中取得成功的能力。

# 什么是敏捷软件开发?

敏捷软件开发是基于敏捷宣言定义的价值观和原则的一系列方法和实践的总称。

# 敏捷一些优势

# 减少无用的工作量

传统的预测模型(瀑布流模型): 花很长时间做调研,然后用甘特图来做计划,按照计划实行,项目完成后,才会做集成,做测试,然后给客户验收。一般项目都会延期。问题:

  • 客户只有在项目开发结束后,才能见到产品。客户验收时,可能会发现与期望有很大的偏差。
  • 对于项目开发周期很长的项目,一般前期开发宽松,邻近截至时间,发现很多没有完成。
  • 低估项目做集成的工作量。

敏捷的做法:

  • 基于迭代的开发
    • 将项目分成一个个冲刺(比如2周),每个冲刺实现一些客户价值。当周期结束,都会给客户演示。 => 越早发现客户对期望与实际的需求偏差,浪费的工作量越少,修改越容易。
    • 产品负责人决定在每个迭代周期要实现的客户价值的功能。先实现对客户来说最有价值的。 => 让客户尽早能使用软件。
    • 每个迭代结束,做总结,看哪些部分可以在下个迭代中优化。 => 提升效率。
    • Scrum 主管: 负责提高团队的效率。 => 提升效率。

# 团队的效率越来越高

每次迭代结束,都会开冲刺回顾会议。会议中,团队回顾之前冲刺中的不足点,确定一个最值得改善的地方,将其设定为下一个冲刺阶段的首要任务。改善的结果应该是可量化的,在下次回顾会议时,看这改善是否成功。

以此来不断提升团队的效率。

拓展阅读

任何类型的“精益生产”,或是Scrum式的产品开发流程,之所以能不断改进,依据的都是PDCA循环。

PDCA循环是美国的生产质量大师戴明最知名的成就。PDCA四个英文字母分别代表计划(Plan)、执行(Do)、检查(Check)与行动(Action)。几乎做任何一件事情时,你都可以运用这个循环,包括制造汽车、开发视频游戏,甚至制作纸飞机。