Waterfall VS Agile: простыми словами
Частенько новичок, а порой даже и опытный проджект хватается за голову и ничего не понимает. Scrum? Agile? Kanban? Что это такое и как выбрать? А главное — как это всё запомнить? Чтобы не пришлось запоминать, достаточно понять, как это работает.
Итак.
Представим, что мы собираем конструктор из деталек LEGO. Строим башню.
Подход первый — Waterfall
1. Читаем инструкцию, смотрим, какой высоты нужны кубики, сколько нужно белых, сколько синих, сколько красных.
2. Начинаем собирать, не оглядываясь назад. Собираем всю башню сразу. Получилась красивая полосатая бело-сине-красная башня!
3. Упс… Случайно в самом начале сборки конструктора вместо красного кубика поставили похожий — бордовый. И теперь у нас красивая башня, но один кубик — вообще не то, что нужно, а поменять его уже нельзя. Теперь придётся ломать всю башню и только потом вносить изменения.
Или другой пример: все кубики на своём месте, ошибок нет. Но, глядя на башню, мы видим, что там не помешал бы вход. Но теперь, чтобы построить вход в башню, нужно её всю разобрать и собрать заново.
Получается, что Waterfall — это когда всё заранее спланировано, но в процессе нельзя ничего менять. (В целом можно, конечно, но дорого и долго.)
Подход уместен, когда точно уверены, что не захотим вносить изменения в проект, когда команда нечасто взаимодействует с заказчиком, когда проект небольшой и нет смысла дробить его на итерации — и если баг обнаружится, менее затратно будет начать сначала.
Подход второй — Agile
1. Читаем инструкцию, но в ней написана только минимальная информация: башня должна быть бело-сине-красной, и каждый этаж — своего цвета.
2. Начинаем собирать. Но собираем не всё сразу, а только первый этаж — красные кубики. Собрали — получилось великолепно!
3. Собрали первый этаж, посмотрели на башню и подумали, что здесь точно нужен вход в неё. Отлично! Давайте поставим, ведь мы легко можем вносить изменения, так как ещё не собрали башню до конца.
Здесь для примера идеально выделить заказчика, но тогда придётся переписывать весь ранее написанный текст (вот вам и Waterfall).
Или вот пример: собрали первый этаж, выглядит клёво, но заметили, что у нас вместо красного кубика лежит коричневый. Сейчас мы легко можем разобрать и собрать заново, заменив кубик на нужный.
Выходит, что Agile — это когда мы собираем башню постепенно, после каждого этапа сверяемся с инструкцией и можем вносить изменения на каждом этапе, не ломая всю конструкцию.
Этот подход уместен, когда у проекта есть цель, но все детали и фичи продумываются в процессе. Когда есть постоянная связь с заказчиком и не получится так, что проект «встал». По ходу разработки мы можем менять дизайн, выявлять и исправлять баги, тем самым сокращая затраты и предотвращая риски ошибок и невозможностью внести изменения. Заказчик доволен, потому что видит процесс и может влиять на него, а не получает в конце башню, в которую уже нельзя добавить вход. Но есть риск бесконечных доработок!
Вывод:
Agile - определенно требует вовлеченности заказчика и дисциплины.
Waterfall - эффективен в проектах с утвержденным техническим заданием.
Конечно это не все, в одном посте все не уместить, поэтому в след раз напишу про Scrum, Kanban и другие непонятности.
А самое интересное, что чаще всего каждый знаком с этими методами и работает по ним - просто не знает, как называется методология, которая сейчас применяется в проекте - вот сюрприз, оказывается у этого есть название)
Буду благодарна, если поддержите подпиской в тг
https://t.me/jer_it
🎉
IT - Менеджмент
71 пост295 подписчиков
Правила сообщества
1. Не оскорблять других пользователей.
2. Не выкладывать эротический контент.
3. Задавать вопросы и отвечать на них.