Без названия и без подзаголовка

Agile и Lean похожи, но все-таки разные

В конце прошлого года мне посчастливилось послушать выступление Дэна Джонса (Dan Jones) на XP Day 2008. Дэн, в качестве одного из отцов-основателей Lean, является одним из авторов The Machine that Changed the World. Или, по крайней мере, отцом понятия Lean, потому что я уверен в том что Дэн будет настаивать на том что его (и соавторов) заслуги заключаются не в изобретении Lean, а в популяризации этой технологии.

Дэн начал свою речь с рассказа о различиях между Agile и Lean. По его видению разницы нет. Возможно кто-то, кто был там поможет мне с более точными цитатами, а пока я приведу то как я запомнил его высказывания:

Я рад тому, что услышал как Дэн сказал это, поскольку мое понимание Agile давно находилось под влиянием Lean — даже да превосходной книги Тома и Мэари Поппендик «Lean Software Development». Сейчас я как никогда чувствую что могу говорить об обоих методиках как об одном целом.

При это я думаю что есть тонкое различие, которое, как это ни странно, может быть полезным в некоторых обстоятельствах. Эта тонкость помогает понять почему Agile не XP в то время XP является Agile-подходом и почему это больше Agile чем Scrum.

Это поможет взглянуть на диаграмму. Если вы видели ее раньше то должны заметить мои недавние дополнения.

Agile triangle

Вверху специфичные для Agile методы, такие как XP, Scrum, Crystal и т.д. В этом пути больше перспективности чем в остальных. Каждый из методов является частью Agile, но никто из них не образует полноценный Agile-подход.

Agile — это набор инструментальных средств, а эти методы — элементы этого набора. Agile является более общим понятием, Agile — это скорее система ценностей, философия.

По своей сути Agile — это Lean, но более перспективный чем Lean. Например, некоторые Agile-команды не практикуют разработку через тестирование (Test Driven Development). Поэтому Agile более общее понятие чем XP или Scrum, и менее общее чем Lean.

Lean по своей сути более философский и подразумевает меньше конкретных методик. Вы должны применять Lean-философию в собственном контексте. Lean — это маршрут.

Ниже мы видим Организационное Обучение (Organizational Learning). Все эти методы основаны на непрерывном обучении — системный подход должен быть включен в систему именно здесь. Но организационное обучение имеет главную важность, философия и академические исследования почти лишены четких инструкций. (Я мог бы вступить в обсуждение управления знаниями, но не сегодня).

Недавно я добавил RUP и Kanban в эту диаграмму.

RUP разделяет много общих с Agile методов, но в очень разных местах. Это идет от традиционной разработки ПО, от унификации ООП и от комерциализации мира. RUP может (это я утверждаю) выглядеть и восприниматься как Agile, но это не меняет того откуда он взялся.

Дальше идет Kanban. Kanban — это потомок Agile блока, но вытекает он непосредственно от Lean-идеологии. Так что для меня он не занимает вершину пирамиды, он опирается на Agile и Lean. И это то место где точка Дэна Джонса очень подходящая: не важно, на этом уровне Agile и Lean сливаются. Так что если вы хотите утверждать что он должен быть уровнем выше, с XP и Scrum, то я не буду возражать.

Оригинал статьи: Allan Kelly — Agile and Lean — the same but different