Найти в Дзене
Папа в деле

AGILE Глава 2 Основы

На создаваемые продукты влияет зависимость от Важно понимать разницу между моделями, методологиями и парадигмами а именно: Существует три типа методологии: Возьму для примера CMM/CMMi - это 5-ти уровневые модели зрелости для больших организаций. Там много документации. Это "тяжелые" всеохватывающие методологии. Работа в них идет "по стандартам" Пару слов о RUP/MSF/... Каждая из больших компаний разрабатывает методологию под свои нужды. В ней стараются соединить лучшие из имеющихся методологий. Внимание акцентируют на том, что важно для конкретно этой компании. Поэтому, если получилось удачно, то это получает широкое распространение и вне компании. По факту - это толстая книга. где содержатся указания о том, в каких случаях какие элементы других методологий применять. Например, RUP отталкивается от продукта: А MSF концентрируется на процессе: Я уверен, что образное понимание методологий у вас сложилось, а теперь я разберу AGILE и LEAN. Эти два понятия часто идут рядом, вплоть до смеше

На создаваемые продукты влияет зависимость от

  • Модели
  • Методологии
  • Парадигмы
  • Языка (терминология)
  • Используемых приемов и шаблонов

Важно понимать разницу между моделями, методологиями и парадигмами а именно:

  • Их применимость в данных условиях
  • Зрелость и готовность
  • Достоинства и недостатки тех или иных моделей
  • ...

Существует три типа методологии:

  • Прогнозирующие (традиционные) - ISO, PMP, Prince2, OPM, CMM, ...

Возьму для примера CMM/CMMi - это 5-ти уровневые модели зрелости для больших организаций. Там много документации. Это "тяжелые" всеохватывающие методологии. Работа в них идет "по стандартам"

5-ти уровневая модель зрелости
5-ти уровневая модель зрелости
  • Эмпирические, адаптивные (гибкие, бережливые) - Agile, Lean, SCRUM, Kanban, ...
  • Смешанные (совмещающие традиционные и гибкие подходы) - свои собственные, PMP, RUP, MSF, ...

Пару слов о RUP/MSF/...

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

Например, RUP отталкивается от продукта:

  • Итеративная разработка
  • Управление требованиями
  • Управление изменениями
  • Компонентно-ориентированная разработка
  • Использование средств визуального моделирования (UML)
  • Контроль качества ПО

А MSF концентрируется на процессе:

  • Ролевая модель и зоны ответственности
  • Бизнес-процессы
  • Управление проектом

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

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

Lean- это бережливое производство. Это набор принципов, относящихся к ориентированности на клиента, на качество, на скорость, на постоянное стремление к устранению всех видов потерь.

Другими словами

Agile - более революционный подход, который дает возможность получать дополнительную ценность (added value).
Lean - более эволюционный подход. который дает возможность сокращать издержки (reduced debt).

Agile - это образ мышления. Чтобы это понять нужно ознакомиться с двумя документами:

1. Основополагающие принципы Agile-манифеста ссылка здесь 2. Agile-манифест разработки ПО ссылка здесь

-3

Подробней остановлюсь на Agile-манифест (2001 г.)

Мы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим. Благодаря проделанной работе мы смогли осознать, что:

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

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

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

Готовность к изменениям важнее следования первоначальному плану

То есть, не отрицая важности того, что справа, мы всё-таки больше ценим то, что слева.

Перечислю основные принципы Agile

  1. Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения.
  2. Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества.
  3. Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев.
  4. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.
  5. Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им.
  6. Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.
  7. Работающий продукт — основной показатель прогресса.
  8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.
  9. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.
  10. Простота — искусство минимизации лишней работы — крайне необходима.
  11. Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд.
  12. Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.

Это НЕ Agile, если мы говорим о процессах, документах, встречах, организационных моментах, то это НЕ Agile. Но если мы говорим о людях, о фильтрах информации на вход и выход, об «информационном радиаторе», о «тихой гавани», о заказчике, то это Agile.