четверг, января 31, 2008

Lean - agile в кубе, или 7 серебряных пуль в тело вашего проекта

Вот интересная вещь: никто не учит, как завалить проект, но все учат, как добиться успеха в разработке софта, методологии, XP, TDD, Agile, НЛП и т.д. и т.п. Тем не менее проекты заваливаются гораздо чаще, чем заканчиваются успехом.

Вот новое поветрие в организации разработки - Lean development. Слыхали? Я слышал это словосочетание довольно давно, однако сегодня мне попался на глаза текст, который буквально вогнал меня в ступор:

«Lean Software Development – это не методология управления разработкой проекта, как может показаться на первый взгляд. Это набор принципов, применяемых в различных проектах для улучшения процесса разработки и повышения его эффективности.

Цели Lean – сделать возможной разработку проекта за треть времени, с использованием только трети бюджета и с уровнем дефектов, уменьшенным до одной третьей. Как этого достичь?

Lean предлагает 7 ключевых принципов…»


Вот на целях меня и заклинило.
Знаете, я читал Брукса. Очень давно, мы тогда еще исходники на сетевой папке хранили, и не знали что такое тесты. Потом много думал. Потом было много проектов, и я усвоил много интересных вещей, которые сейчас кажутся мне простыми, а тогда были как откровение. Среди них «треугольник компромиссов», который постулирует принцип: ресурсы, сроки и фичи составляют жесткую конструкцию, в которой при фиксированной величине одного плеча, два другие связаны обратной зависимостью. Например, при фиксированных сроках больше фич можно сделать только большими ресурсами.

И вот читаю я про Lean и привычный миропорядок зашатался у меня под ногами. Все можно сделать в три раза быстрее, и при этом в три раза меньшими силами и в три раза качественнее! Дьявол, где были эти парни раньше?

Читаю дальше, что это за 7 серебряных пуль, которые дадут двадцати-семикратное общее ускорение моим захиревшим проектам? Так, первое «не заниматься ерундой», понятно. Второе, «учиться, учиться и учиться», это еще старик Крупский говорил… «Принимайте решения как можно позже», ну до этого каждый доходит после пары грандиозных рефакторингов на излете проекта :). Четвертое, «выкладывайте результаты как можно раньше», этому нас старина Кент Бек уже давно научил . Что там дальше, - команда нужна хорошая…, за качество боремся…, зрим в корень… Все.

Все? Это все?
По принципам, так вроде как agile получается, а по результатам, так настоящий agile в кубе.
Есть еще 22 практики, но чтоб про них прочитать надо книжку покупать. Но, если честно, как-то не тянет.
Книга, может и хорошая, но вот такие проповеди Lean в стиле гербалайфа и средств для увеличения размера мужского достоинства, отбивают всякую охоту читать что либо дальше.

Читайте лучше "Мифический человеко-месяц" или хотя бы "Серебрянной пули нет" дедушки Брукса. Либо, на худой конец "Путь камикадзе, или Как разработчику программного обеспечения выжить в безнадежном проекте" Йордона, если попадете на Lean проект.

4 комментария:

Асхат Уразбаев комментирует...

Серег, несолидно!

Коммент в стиле "не читал, но осуждаю". Хотя я тебя понимаю. пару лет назад мне тоже рассказали про Lean и мне показалось все это абсолютной фигней. И Scrum и XP намного конкретней. Там понятно КАК делать...

Теперь я пользуюсь Lean при работе с заказчиками. Lean дает более общий подход, и работает там, где не работает Agile.

Sergey Rozovik комментирует...

Асхат, я ведь не против Lean выступаю, а против конкретных безответственных заявлений.
Конечно, есть определенные best practice, хороший менеджмент, и наконец благоприятные внешние факторы, и когда все это складывается вместе, проект летит как на крыльях.
Да в "хорошем" и "плохом" проектах эффективность может отличаться в разы, но эта разница не из-за того, что хороший проект очень хорош, а скорее плохой ужасно плох.
Конечно лучшие практики надо изучать и продвигать, но не такими заявлениями: "мы выкинем две трети команды, и сделаем все в три раза быстрее и в три раза качественнее".
На людей, не сильно сведущих в програмной инженерии, это может и производит впечатление, но профессионалов это пустословие просто отталкивает.
Серебряной пули нет, Асхат.

Fedyashev Nikita комментирует...

>>>«Принимайте решения как можно позже», ну до этого каждый доходит после пары грандиозных рефакторингов на излете проекта

Или вы написали это сильно утрируя, либо вы не до конца понимаете смысл этой практики, "Decide, as late as possible".

Sergey Rozovik комментирует...

to Fedyashev Nikita
> Или вы написали это сильно утрируя,

:)) ну, там весь абзац, одна сплошная гипербола.
Что касается стиля принятия решений при проектировании, то я как-то писал про это довольно большой, серьезный и скучный пост. Ссылку бы найти, но поздно уже, спать охота.