Какие аспекты управления релизами помогают объяснить разницу между Waterfall и Agile?

12

Когда кто-то объясняет DevOps, возникает вопрос:

Чем Управление релизами, использующее Agile методологию, отличается от Waterfall?

Итак, какие критерии вы можете использовать, чтобы объяснить эти различия такой аудитории?

Pierre.Vriens
источник

Ответы:

11

IMO DevOps - это культура, очень похожая на Agile (без выбора гибкой методологии.) Поэтому вы не «делаете» DevOps.

Вы «делаете» методологию выпуска под названием «Непрерывная доставка» как часть культуры DevOps. (полное раскрытие, я не думаю, что раньше когда-либо упоминал CD как методологию релиза, но в моем состоянии с меткой я думаю, что это работает)

Если вы купите это, то вот определение Непрерывной Доставки от одного из людей, которые написали книгу с тем же названием, Джез Хамбл .

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

Наша цель - сделать развертывания - будь то крупномасштабной распределенной системы, сложной производственной среды, встроенной системы или приложения - предсказуемыми, рутинными операциями, которые могут быть выполнены по требованию.

Мы достигаем всего этого, гарантируя, что наш код всегда находится в развертываемом состоянии, даже несмотря на то, что команды тысяч разработчиков ежедневно вносят изменения. Таким образом, мы полностью исключаем этапы интеграции, тестирования и повышения безопасности, которые традиционно следовали «dev complete», а также зависание кода.

Итак, вы можете работать по методологии Agile, имея программное обеспечение, которое вы можете продемонстрировать бизнесу, убедившись, что вы проводите надлежащее автоматическое тестирование, хорошо реагируете на изменения и все, что делает его лучше, чем водопад. Слишком часто это не означает, что вы могли бы развернуть его на производстве.

Вы получите что-то вроде этого: Agile без CD

Таким образом, программное обеспечение (вероятно) будет лучше, когда вы закончите, тогда, если у вас не было какого-то итеративного подхода, но вы не знаете, потому что реальные пользователи никогда не видели его.

То, что вы действительно хотите, это то, что выглядит примерно так:

введите описание изображения здесь

На каждой итерации что-то развертывается в производстве. Итак, программное обеспечение развернуто . Если вы решили создать загрузку, откройте веб-сервер или, тем не менее, передадите программное обеспечение в руки пользователей, которые его выпустили .

Какого черта!? Я спросил о DevOps! Никто не спрашивал о непрерывной доставке !!

Какое отношение DevOps имеет к этому?

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

Примечание :

О части комментария, опубликованной к этому ответу, которая была такова:

О вашем "... программном обеспечении в состоянии, в котором вы можете развернуть его, когда захотите ...": это напоминает мне о программном обеспечении "автопилот" (в самолете) ... Мой любимый вопрос по этому поводу: " Вообразите обновление применяется к такому программному обеспечению ... Как бы вы относились к такому полету ... Пока вы на борту? ".

Мне нравится этот вопрос (выделено жирным шрифтом в приведенной выше цитате)! Идея "это действительно готово?" это то, о чем я постоянно болтаю - блог . IMO жизненно важно, чтобы вы были уверены в безопасности, производительности и других слишком часто «вторичных» тестах, чтобы практиковать CD. Функции сделаны, когда они сделаны, но хакеры всегда рядом.

Кен Муграге
источник
Спасибо за ваши интересные точки зрения / ответы (и блестящие изображения ...). Я должен признать, что никогда не слышал о термине « Методология релизов» , хотя с « Менеджментом релизов» я довольно хорошо знаком (более 2 десятилетий ...). О вашем "... программном обеспечении в состоянии, когда вы можете развернуть его, когда захотите ..." (в сочетании с "меткой"): это напоминает мне о программном обеспечении "автопилот" (в самолете) ... Мой любимый Вопрос об этом: « Представьте, что к такому программному обеспечению применяется обновление ... Как бы вы себя чувствовали при этом в полете ... Пока вы на борту? ».
Pierre.Vriens
1
Мне нравится этот вопрос! Идея "это действительно готово?" это то, о чем я постоянно болтаю - блог . IMO жизненно важно, чтобы вы были уверены в безопасности, производительности и других слишком часто «вторичных» тестах, чтобы практиковать CD. Функции сделаны, когда они сделаны, но хакеры всегда рядом.
Кен Муграге
1
Я имел в виду - «Представьте, что к такому программному обеспечению применено обновление ... Как бы вы себя чувствовали при этом в полете… Пока вы на борту?»
Кен Муграге
И, пожалуйста, отредактируйте, я n00b здесь :)
Кен Мугрэйдж
Пожалуйста, просмотрите мое предложенное изменение, чтобы интегрировать ваш интересный комментарий также. Если вам это не нравится, просто выполните откат к предыдущей версии (ссылка находится в «ревизиях») и / или дополнительно улучшите / расширьте его, как вам нравится. Угадайте, что, кажется, что "в полете" некоторые из моих "разрешений" изменились ... похоже, у меня уже слишком много представителей здесь, чтобы все еще нуждаться в "одобрениях" для таких предлагаемых изменений ... к счастью, это всего лишь некоторые SE- программное обеспечение (не предлагаемое обновление для какого-либо маршрута полета без предварительного согласования с управлением воздушного движения ...). Oeps 2 (исправление): он был утвержден на скорости света ...
Pierre.Vriens
2

Не уверен, что других нет, но вот критерии, которые я использую:

+-------------------+-----------+-----------+
! Criteria          ! Agile     ! Waterfall !
+-------------------+-----------+-----------+
! Release Events    ! Frequent  ! Rare      !
! Risk              ! Less      ! High      !
! Required Effort   ! Smoother  ! Peaks     !
! Volume of changes ! Small     ! Huge      !
+-------------------+-----------+-----------+

И если вы действительно хотите почувствовать разницу как пользователь некоторого программного обеспечения, подумайте об использовании некоторого программного обеспечения (например, дистрибутива Linux), когда у вас есть выбор между использованием любого из этих выпусков:

  • " Rolling" релиз (==> Agile).

  • " Long Term Support" выпуск (==> Водопад).

Pierre.Vriens
источник
1
Пример Linux может быть не очень вдохновляющим :) Лично мне не нравятся скользящие релизы из-за: 1. уровня качества и 2. довольно отвлекающих изменений (я предпочитаю сосредоточиться на своей работе, а не на Linux, который я использую для своих Работа). Таким образом, я использую долгосрочные (часто) (часто за пределами EOL) и концентрируюсь только на крупных обновлениях каждые 2-3 года. Разве это только усиливает ненависть к изменениям из-за старения? :)
Дан
@DanCornilescu Я использовал этот пример Linux, потому что я думаю, что это экстремальный пример аспекта mgnt выпуска (то есть частоты выпусков) для обоих методологий. Хотя «лично» я полностью согласен с вашей неприязнью к прокатным релизам по тем же причинам, о которых вы упомянули.
Pierre.Vriens