Agile Или Lean: Да, Да, Какая Разница?

Похож ли Agile на Lean? Когда люди говорят «Agile», действительно ли они имеют в виду Scrum? Или люди все еще используют разные типы Agile и почему? Получив в прошлом много вопросов, я решил расставить все точки над i.

Agile или Lean: да, да, какая разница?

НАКЛОНЯТЬ Бережливое производство происходит от бережливого производства, оно имеет набор принципов, связанных с качеством, скоростью и ориентацией на клиента (то же самое мы пытаемся сделать в гибкой разработке, верно?) Мэри и Том Поппендик адаптировали принципы бережливого производства для разработки программного обеспечения, и я считаю, что эти идеи являются основой и причинами того, почему Agile работает:

1. Устранение потерь.

2. Улучшение качества.

3. Создание знаний.

4. Отложенные обязательства.

5. Быстрая доставка.

6. Уважение к людям.

7. Полная оптимизация.

Вкратце, Лин говорит: безжалостно избавьтесь от всего, что не добавляет дополнительной ценности, и делайте только то, что вы точно знаете, необходимо сделать в настоящий момент. Устранение отходов означает устранение ненужных встреч, задач и документации.

Но это также означает исключение потерь времени на любые известные задачи, которые необходимо будет выполнить в будущем (все постоянно меняется и часто оказывается ненужным.

Если бы мы что-то сделали заранее, то нам пришлось бы тратить время на переделывание, потому что условия или наше понимание впоследствии уже изменились).

Это также означает, что мы должны избавиться от неэффективных способов работы, таких как многозадачность, чтобы мы могли быстрее выполнять поставленные задачи.

Lean также уделяет большое внимание тому, что называется «системой», то есть тому, что команда работает как единое целое.

Мы всегда должны смотреть на нашу работу сверху, чтобы гарантировать, что мы улучшаемся в целом.

Например, многие менеджеры хотят, чтобы каждый разработчик был занят на 100%, но в большинстве случаев это контрпродуктивно.

Давайте не будем заставлять людей кодировать что-то ненужное (или совершенно неопределенное) только ради того, чтобы они кодировали, потому что это создаст для нас еще больше работы в будущем.

Подводя итог, Лин говорит: уважайте людей.

Это значит давать людям работу, которую они умеют делать лучше всего.

Дайте им то, что им нужно для эффективности, а затем доверьте им это.

Сущность разработки программного обеспечения — постоянное обучение; Поэтому нам необходимо организовать свою работу таким образом, чтобы мы постоянно учились.

И поэтому нам нужно отложить принятие решения до последнего момента (ведь в этот момент мы будем знать больше).

В конечном счете, разработка заключается в создании качественного продукта, потому что нет другого способа стабильно быстро доставлять продукт, если нам придется возвращаться и наводить порядок.

«Организации, которые действительно придерживаются бережливого производства, имеют сильное конкурентное преимущество, поскольку они очень быстро и дисциплинированно реагируют на рыночный спрос, а не пытаются предсказать будущее», — Мэри Поппендик.

Гибкий Agile основан на наборе ценностей и принципов, изложенных в Манифесте Agile. Манифест был ответом на громоздкие методологии, которые были популярны до тех пор, пока вялые проекты по разработке программного обеспечения в конце концов не начали делать то, что им действительно нужно: создавать программное обеспечение, которое помогало клиентам.

Я считаю, что ценности и принципы Agile работают, потому что наука следует за Lean, и вы увидите множество заимствований, повторяющихся в Agile.

Ценностями Agile являются:

Люди и взаимодействие важнее, чем процессы и инструменты.

Рабочий продукт важнее, чем исчерпывающая документация.

Сотрудничество с заказчиком важнее, чем согласование условий контракта.

Реагирование на изменения важнее, чем следовать первоначальному плану.



Гибкие принципы:

1. Высшим приоритетом является удовлетворенность пользователей.

2. Изменения требований приветствуются.

3. Работающий продукт должен выпускаться как можно чаще.

4. Представители бизнеса и развития должны ежедневно работать вместе.

5. Над проектом должны работать мотивированные профессионалы.

6. Прямое общение наиболее практично и эффективно.

7. Работающий продукт — главный показатель прогресса.

8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм в течение неопределенного времени.

9. Постоянное внимание к техническому совершенствованию и качеству проектирования повышает гибкость проекта.

10. Простота – искусство минимизировать ненужную работу – имеет важное значение.

11. Лучшие требования, архитектурные и технические решения исходят от самоорганизующихся команд. 12. Команда должна систематически анализировать возможные пути повышения эффективности и соответствующим образом корректировать свой стиль работы.

Любой проект, который следует этим ценностям и принципам, по праву может считаться гибким.

Тем не менее, среди agile-команд существуют общие методы достижения гибкости.

Наиболее распространенными являются: Scrum или Kanban (или их гибрид) для «практик управления».

«Экстремальное программирование (XP) для технических практик (новые методы становятся популярными, в основном благодаря Lean Statup, например, непрерывное развертывание и производственное тестирование).

Хорошие agile-команды выбирают сочетание управленческих и технических практик, которое им лучше всего подходит. (Плохой пример — когда берут всего пару практик, ошибочно полагая, что «их делает Agile») Благодарности: Благодарим Юрия Прокудина и Екатерину Кивелёву за помощь в подготовке текста.

Теги: #agile #lean #Управление разработкой #Управление проектами #agile #Управление продуктом

Вместе с данным постом часто просматривают: