Сравнение Agile, Lean и Continuous Delivery
6 декабря 2022 г.Поскольку DevOps и непрерывная поставка набирают обороты, можно задаться вопросом, актуальны ли все еще принципы, лежащие в основе Lean и Agile. Как они соотносятся с пятью принципами непрерывной доставки и что означают любые различия для команд разработчиков программного обеспечения?
Начало облегченной доставки программного обеспечения
На протяжении 1990-х годов в индустрии разработки программного обеспечения назревала революция. Ранние поэтапные модели делили процесс доставки на этапы, основанные на навыках, а проекты и документы использовались для запуска процессов утверждения для контроля над проектом.
Процесс доставки программного обеспечения был трудоемким и медленным, мало что указывало на то, что накладные расходы уменьшали риски, которые они пытались снизить.
Появился набор облегченных методов, предназначенных для получения быстрой обратной связи и итеративной адаптации плана на основе новой информации. Вместо контроля и утверждений разработчики использовали небольшие партии для управления рисками и предоставления частых возможностей изменить направление.
Agile Manifesto появился в 2001 году благодаря этому сообществу адаптивных и облегченных методов, а через пару лет появилась концепция Lean Software Development.
Agile и Lean обеспечили подход к разработке программного обеспечения, основанный на ценностях и принципах. Вы можете проверить, является ли подход гибким или бережливым, сравнив его с набором основных утверждений, определяющих философию каждого метода.
Непрерывная поставка возникла из сообществ Lean и Agile, предоставляя наиболее конкретные методы и возможности для обеспечения частой и безопасной доставки программного обеспечения. Помимо экстремального программирования, большинство методов разработки программного обеспечения связаны с управлением требованиями и коммуникационными структурами. Непрерывная доставка берет на себя остальную часть потока создания ценности и обеспечивает путь к эффективному и надежному конвейеру доставки.
InfoQ публикует ежегодный отчет о культуре и методах разработки программного обеспечения. Они оформляют отчет в соответствии с концепцией Преодоление пропасти Джеффри Мура. Известно, что Мур визуализирует жизненный цикл внедрения технологии в виде кривой нормального распределения, распределенной по трем стандартным отклонениям.
Диаграмма разделена на 5 групп с разным отношением к новым технологиям:
* Новаторы (-3) * Первые последователи (-2) * Раннее большинство (-1) * Позднее большинство (+1) * Отстающие (+3)
Раннее большинство и позднее большинство составляют две трети жизненного цикла внедрения. Тем не менее, чтобы новая технология (или, в случае с InfoQ, новая идея) стала популярной, она должна преодолеть пропасть между ранними пользователями и основным большинством.
Несмотря на то, что адаптивные режимы доставки программного обеспечения используются в последнее время, возможности, необходимые для непрерывных режимов доставки, все еще пробиваются сквозь пропасть. Некоторые практики (такие как DevSecOps) совершили скачок, в то время как другие ключевые элементы, такие как топология команд и наделенные полномочиями группы, остаются на этапе раннего внедрения.
Итак, поскольку DevOps и непрерывная доставка набирают обороты, самое время сравнить 5 принципов непрерывной доставки с 12 принципами Agile и 7 принципами Lean.
Сравнение принципов Agile, Lean и Continuous Delivery
Аджайл, Бережливое производство и Непрерывная поставка основываются на наборе принципов. Это помогает нам сравнить их основные структуры.
В Lean и Continuous Delivery есть другие методы и возможности, которые не имеют сопоставимых элементов в Agile. Agile-манифест был задуман как лакмусовая бумажка для проверки гибкости других конкретных методов, таких как экстремальное программирование, Scrum и Disciplineed Agile, поэтому в нем не содержались дополнительные детали.
Бережливое производство расширяет свои принципы, описывая методы, охватывающие весь процесс разработки программного обеспечения, с рекомендациями по планированию, проектированию, тестированию и обслуживанию.
Непрерывная доставка использует конвейер развертывания, чтобы сосредоточить усилия на улучшении потока изменений, от фиксации кода до запуска программного обеспечения в рабочей среде. Подробно описаны конкретные технические возможности, позволяющие заблаговременно и непрерывно поставлять ценное программное обеспечение.
Принципы являются единственными непосредственно сопоставимыми элементами этих трех подходов.
Принципы непрерывной доставки
Существует 5 принципов непрерывной доставки:
- Построить качество
- Работайте небольшими партиями
- Компьютеры выполняют повторяющиеся задачи, а люди решают проблемы
- Неустанно стремиться к постоянному совершенствованию
- Все несут ответственность
Принципы могут быть объединены в усиливающие отношения, где первые 3 принципа действуют как движущие силы постоянного улучшения, за которое несут ответственность все участники.
Сравнение принципов Agile
В целом принципы непрерывной доставки соответствуют манифесту Agile.
Например, широко известно, что работа небольшими партиями помогает реализовать несколько принципов Agile:
* Нашим наивысшим приоритетом является удовлетворение потребностей клиентов за счет своевременной и непрерывной поставки ценного программного обеспечения. * Приветствуйте меняющиеся требования, даже на поздних стадиях разработки. Гибкие процессы используют изменения для конкурентного преимущества клиента. * Доставляйте работающее программное обеспечение часто, от пары недель до пары месяцев, предпочитая более короткие сроки. * Работающее программное обеспечение является основным мерилом прогресса. * Гибкие процессы способствуют устойчивому развитию. Спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок. * Простота – искусство максимизировать объем незавершенной работы – очень важно.
Фразировка принципа "работа небольшими партиями" лаконична и проста для применения на практике. Этот принцип Continuous Delivery способствует достижению половины принципов Agile.
Существует также эффект усиления, когда вы комбинируете 5 принципов. Чтобы «поставлять работающее программное обеспечение часто», вам нужно работать небольшими партиями, повышать уровень автоматизации и повышать качество.
Непрерывная поставка не охватывает два принципа Agile:
- Деловые люди и разработчики должны ежедневно работать вместе над проектом.
- Самый действенный и действенный метод передачи информации команде разработчиков и внутри нее — беседа лицом к лицу.
Непрерывная доставка сосредоточена на конвейере доставки, что означает, что процесс идентификации, создания и инициирования не является прямой задачей непрерывной доставки. Кроме того, в предисловии к книге Continuous Delivery авторы подчеркивают, что книга была создана в соответствии с содержащимися в ней идеями. Авторы и редакторы работали, используя разные инструменты и из разных мест. Они использовали контроль версий и автоматизированные сборки, чтобы сформировать конвейер доставки книги. Они не работали вместе ежедневно и не обменивались информацией лицом к лицу.
Как отрасль, многие организации, которые раньше не пытались работать удаленно, теперь готовы экспериментировать с распределенной работой. Это еще больше усложнит необходимость координации в реальном времени лицом к лицу, поскольку асинхронное общение становится все более распространенным и привычным.
Что касается количества слов, принципы Continuous Delivery изложены в 21 слове, а не в 180 словах для Agile-принципов. Сочетание ретроспективного взгляда и тщательного редактирования дало нам компас, чтобы проверить наше направление, с подробностями, предоставленными в конкретных методах непрерывной доставки.
<цитата>Легко увязнуть в деталях внедрения непрерывной доставки — инструментов, архитектуры, практики, политики — если вы потерялись, попробуйте вернуться к этим принципам, и вы обнаружите, что это поможет вам снова сосредоточиться на том, что важно». — Джез Хамбл
Вам не нужно выбрасывать Agile Manifesto, чтобы двигаться вперед; это часть географии, на которой строятся Continuous Delivery и DevOps. Промышленность будет продолжать открывать новые и лучшие способы разработки программного обеспечения. Становится все более очевидным, что технические практики и культурные возможности имеют жизненно важное значение.
Сравнение принципов бережливого производства
Принципы бережливого производства уже краткие и действенные. Между бережливым производством и непрерывной доставкой существует полное соответствие, и нет несопоставленных областей.
С Agile непрерывная доставка стала лаконичной альтернативой 10 принципам Agile. В случае бережливого производства непрерывная поставка полностью соответствует принципам. Каждый подход предлагает свою точку зрения, применимую к различным сегментам организации.
В организации, которая полностью внедрила как бережливое производство, так и непрерывную поставку, соответствующие принципы полезны для разных групп. Принципы и методы бережливого производства — это инструменты лидерства, а непрерывная доставка — это подход, специфичный для отдельных участников.
Например, автоматизация — это практический вектор атаки для устранения потерь, быстрой доставки и обеспечения целостности системы с помощью непрерывной доставки.
Заключение
Continuous Delivery представляет собой краткий набор принципов, которые соответствуют 10 из 12 принципов Agile и дополняют Lean, предлагая другой взгляд на достижение аналогичных целей.
Все три набора принципов согласуются с современной философией управления и предлагают различные способы анализа и переориентации ваших усилий по доставке программного обеспечения.
Вы можете использовать принципы непрерывной доставки, чтобы направлять свои усилия по доставке программного обеспечения, и обращаться к принципам Agile и Lean, чтобы найти дополнительные источники вдохновения для ваших усилий по улучшению.
Также опубликовано здесь
Оригинал