# 极限编程和看板

在Scrum和各种和Scrum相关的大规模敏捷框架之外,有两个比较实用的敏捷方法,一个是极限编程,另一个是看板。极限编程偏重软件的工程实践,看板致力于利用可视化的方式有效地避免浪费。

# 极限编程

极限编程(eXtreme Programming,简称“XP”)是Kent Beck在1990年代提出的软件开发方法。2001年,极限编程的领导者们与其他践行轻量级软件开发方法的先行者一起,签署了《敏捷软件开发宣言》,自此诞生了“敏捷”(Agile)这一概念。

极限编程是第一批敏捷开发方法中的一种,也是最具实效的一种。在各种敏捷方法中,极限编程最为重视工程实践,将敏捷宣言的第二条发挥到了极致:可工作的软件 重于 详尽的文档

极限编程核心的测试驱动开发、持续集成、用户故事等具体落地的实践,给IT研发团队提供了明确有效的指导,使他们得以随时保持软件处于可工作、可交付的状态,使迭代交付高质量软件成为可能。

近年来,有越来越多的IT组织,尽管引入了某些敏捷的流程、方法和工具,号称已经“敏捷”,却发现自己仍然深陷代码质量差、软件缺陷多、测试跟不上、返工严重、进度缓慢的焦油坑,被迫大量加班。员工和老板甚至产生出对敏捷的怀疑情绪。

这些组织已经步入了敏捷的误区。他们把流程和工具当作了敏捷,却忘记了敏捷宣言的第一条:个体与互动 重于 流程和工具

在外界变化愈发剧烈、软件交付周期日益缩短的大背景下,IT团队各个角色的能力要求、各个角色之间的交互方式必须改变,变得更加适宜拥抱变化。极限编程给有志于实施敏捷的团队提供了明确有效的实操指南,使他们能够切实地提升个体能力和团队能力,真正以敏捷的方式开发软件。

# Kanban

Kanban方法是一种在组织中创建渐进变革的方法。Kanban系统来自一系列称为拉动系统的实践方法,其一方面是寻找一种系统性的使团队咋工作中实现可持续步调的途径。另一方面是寻找能够以最小阻力引入过程变革的方法。

看板源于丰田生产系统和精益生产,看板这个概念也源于丰田,在丰田生产系统(TPS)中,看板的发明解决了准时制生产方式(just-in-time)的调度问题。

遵循Kanban方法的团队,往往会展现出5项核心特性:

  1. 可视化工作流程。
  2. 限制进行中的工作(work-in-progress,也被称作在制品)。
  3. 度量和管理流动。
  4. 明确过程策略,建立反馈闭环。
  5. 使用模型来识别改进机会。

Kanban方法通过将知识工作中本不可见的信号可视化,将团队从混沌状态中解脱出来,教导团队学会用“拉动”的方式工作,即在收到信号时迅速做出恰当的反应,而不是无序的“推动”。看板方法另一个提升效率的思路是通过限制在制品数量,让工作者不再同时开始许多新的工作,进而追求快速完成已经开始的内容,当工作遇到问题时,专注的尽快将其解决。Kanban方法可以帮助工作者保持目标的专注和清晰,并提供快速及时的反馈,从而提高工作质量和效率。

另外,看板方法要求团队将组织处理信息的规则可视化,利用精益度量体系对系统及时进行分析回顾,从而不断优化信息的处理模式,形成一个完整高效的反馈闭环。