Мифы и реальность: есть ли основание противопоставлять Agile и Waterfall?
Почему каскадная модель не так «жёстка», как кажется, а Agile — не методология.
На написание статьи сподвигла статья с Хабра и обсуждения в чате одного сообщества по бережливому производству.
Хочу сразу обратить внимание, что здесь будем обсуждать ложную дихотомию в управлении проектами.
Споры о превосходстве Agile над Waterfall или наоборот давно стали клише в IT-среде. Однако корень этой дискуссии — фундаментальное непонимание сути обеих концепций. Agile часто ошибочно называют методологией, тогда как на деле это набор ценностей, а выбор реальных инструментов управления происходит между каскадной моделью (Waterfall) и итерационными подходами — Scrum, Kanban, XP. Почему этот нюанс так важен? Потому что смешение философии и инструментов ведёт к мифам, которые мешают эффективно управлять проектами.
Agile — это ценности, а не методология
Манифест Agile, созданный в 2001 году, провозглашает четыре ключевые ценности:
Люди и взаимодействие важнее процессов и инструментов.
Работающий продукт важнее исчерпывающей документации.
Сотрудничество с заказчиком важнее согласования условий контракта.
Готовность к изменениям важнее следования первоначальному плану.
Это не инструкция «как управлять проектом», а напоминание о приоритетах. Agile не отменяет документацию или планирование — он лишь предостерегает от их абсолютизации. Например, детальное ТЗ необходимо при разработке ПО для автомобиля, но нужно меньше заострять на этом внимание в условиях полной неопределённости — например, для стартапа.
Waterfall: миф о жестком подходе
Каскадную модель традиционно изображают как жёсткую последовательность этапов: анализ требований → проектирование → разработка → тестирование → поддержка. Критики утверждают, что Waterfall не допускает изменений после завершения этапа, что якобы делает его непригодным для современных проектов. Однако на практике это утверждение неверно.
Собственно говоря, Waterfall манифеста нет, поэтому ориентируемся на заполнение документации в классической разработке. Есть такая нормативка, которую можно условно отнести к каскадной модели разработки - ГОСТ 19.102-77 Единая система программной документации (ЕСПД). Стадии разработки. Устанавливает стадии разработки программ и программной документации для вычислительных машин, комплексов и систем независимо от их назначения и области применения:
Техническое задание
Эскизный проект
Технический проект
Рабочий проект (Разработка программы, Разработка программной документации, Испытания программы Корректировка программы и программной документации по результатам испытаний)
Внедрение (Подготовка и передача программы)
Но в таких регламентированных отраслях, таких как разработка ПО по ГОСТам, процессы предусматривают корректировки. Например, ГОСТ 19.603-78 прямо регламентирует внесение изменений в документацию по двум причинам:
Устранение ошибок.
Развитие и усовершенствование продукта.
Рассмотрим пример из строительства: если при возведении дома инженеры обнаруживают слабый грунт, они не продолжают работу по изначальному плану, рискуя обрушением. Вместо этого корректируют проект (например, углубляют сваи), а затем обновляют документацию. Такой же принцип действует и в IT: даже в рамках Waterfall команды вносят правки в ТЗ или архитектуру, сталкиваясь с новыми данными.
Почему возникает миф о несовместимости?
Противопоставление Agile и Waterfall часто служит маркетинговым инструментом. Консультанты и тренеры упрощают сложную картину, создавая «чёрно-белый» нарратив: «старое vs новое».
Если немного утрировать, то противопоставляя гибкую разработку каскадной, говорят, что строители будут строить дом по неправильному проекту без изменений, пока всё не рухнет, и только потом встанут, отряхнутся от пыли и скажут:
- Давайте заново начнем.
Однако в реальности:
Waterfall не запрещает гибкость. Многие проекты в аэрокосмической отрасли или энергетике успешно комбинируют детальное планирование с оперативными корректировками.
Agile не отрицает документацию. В регулируемых индустриях (финансы, медицина, машиностроение) документирование остаётся критичным, даже если команда разработки работает по Kanban или Scrum.
Ключевое различие — не в наличии или отсутствии изменений, а в формализации обратной связи. Итерационные методы (Scrum, Kanban) встраивают её в процесс через короткие циклы (спринты), тогда как Waterfall требует явного согласования правок на каждом этапе.
Синтез вместо конфронтации: гибридные подходы
На практике чистые Waterfall, Kanban, Scrum встречаются редко. Большинство проектов используют гибридные модели. Например:
Water-Scrum-Fall — детальная проработка этапов запуска и внедрения в стиле Waterfall с гибкой разработкой ядра продукта.
Такие подходы возникают не из-за «непонимания Agile», а из-за реальных ограничений: бюджетные циклы, требования регуляторов, необходимость согласования с внешними поставщиками. Например, команда может использовать Scrum для создания MVP, но переключиться на Waterfall при масштабировании продукта для enterprise-клиентов, где необходимы аудиты и сертификаты.
Как же выбирать методологию? Нужно опираться на критерии, а не догмы
Выбор между Waterfall и итерационными методами зависит от четырёх факторов:
Предсказуемость требований.
Если цель проекта чётко определена и маловероятно изменится (строительство моста, разработка ПО для учёта налогов), Waterfall эффективнее. Если требования эволюционируют (стартап, исследовательский проект), нужны итерации.Стоимость изменений.
В разработке мобильного приложения правка дизайна в процессе дешевле, чем перепроектирование атомной станции. Waterfall оправдан там, где ошибки чреваты катастрофическими последствиями.Регуляторные ограничения.
В банковской сфере или здравоохранении документирование и согласования неотъемлемы, что делает чистый Agile невозможным.Культура команды и заказчика.
Если стейкхолдеры не готовы к частым демонстрациям и изменениям приоритетов, попытка внедрить Kanban или Scrum приведёт к конфликтам.
Примеров неправильного применения Scrum полно. Тот же Scrumfall существует уже повсеместно, потому что команды гонятся за мифом чистого Agile, там где никакой гибкостью даже не пахнет. Отсюда и вылезает такая проблема как "усталость" от Scrum
Спринты выжимают все соки из разработчиков из-за частых дедлайнов https://habr.com/ru/companies/ruvds/articles/844506/
Заключение: за пределами маркетинговых мифов
Agile и Waterfall не конкурируют — они решают разные задачи. Манифест Agile напоминает о ценностях, но не даёт готовых решений, а Waterfall — не догма, а инструмент, который можно адаптировать. Когда выбираем методологию управления проектами, вместо вопроса «Что лучше — Agile или Waterfall?» стоит спросить:
Какова степень неопределённости требований?
Какие ограничения накладывают регуляторы или бюджет?
Насколько команда и заказчик готовы к гибкости?
Управление проектами в разработке ПО это тоже инженерная дисциплина и должно быть прагматичным. Важно:
Нужно отказаться от догм и мифов. Waterfall не означает «отсутствие изменений», Agile — «отсутствие документов».
Ориентироваться на ценности, а не методы. Даже в каскадном проекте необходимо внедрить частые коммуникации с заказчиком (ценность Agile №3).
Признать контекст. «Идеальная» методология не существует — есть инструменты для решения конкретных задач.
Когда следующий раз услышите: «Мы Agile, поэтому не пишем ТЗ», или «Это Waterfall, тут нельзя менять требования», — задайте вопрос: «А почему?». Возможно, за этим стоит не разумный выбор, а миф, которому не место среди инженерной культуры.
Как создаются карты для Glide BTL?
В прошлых постах мы рассказывали про подготовку к сборке уровня, а сегодня приступим к самому интересному - самой сборке вплоть до финального результата.
Итак…
- Сборка блокаута. Имея на руках референсы и набросок, можно начинать собирать первый игровой прототип уровня. Он не должен быть детализированным, но обязан быть интересным и приятным в прохождении. На этом этапе проверяются метрики и добавляются базовые механики.
- Настройка событий. Этот этап происходит одновременно со сборкой блокаута и является его неотъемлемой частью. События влияют на то, какие ощущения испытывает игрок во время прохождения, какие механики и действия ему доступны. Сюда можно отнести расстановку чек-поинтов в гоночном режиме, расставление ловушек и “абилок”, добавление интерактивности: взрывающиеся двери, сбивающие насмерть поезда, ломающиеся от удара предметы, запуск примитивных анимаций и кат-сцен.
- Тестирование. Оно проводится постоянно и с разным количеством людей. С помощью него можно проследить понятные и непонятные места на уровне, можно заметить, какие вещи кажутся людям интересными, а какие наоборот - вызывают скуку. Тестирование завершает одну итерацию и начинает новую: блокаут дорабатывается, события донастраиваются. И так пока результат не удовлетворит всю команду.
- Конечный вариант. Он подводит итоги всей проделанной ранее работы. В нём объединяются концепт, основная идея, референсы и наброски, а затем серые кубы блокаута заменяются на готовые модели. Окружение прорабатывается, настраивается освещение, проводится оптимизация.
И на этом всё. Карта готова! Хотя ещё предстоит финальное тестирование и полировка отдельных моментов, но это уже мелочи жизни :)
Про каждый из пунктов создания уровня на самом деле можно было бы расписать по целому посту. Есть очень много технических моментов, разных инструментов и прочего, здесь же мы лишь кратко описали основные моменты. Так что, если интересно, обязательно маякните в комментариях!
Наш Steam
Актуальные новости в Telegram
Как Cursor помог переписать браузерное расширение за 2 часа: опыт миграции на единый стек
Последние пару недель занимаюсь унификацией технологического стека для всех своих pet-проектов и поделок. Цель — собрать единый тех-радар, чтобы не тратить время на переключение контекста между разными фреймворками и библиотеками.
Мой стек
Frontend:
- React (без сюрпризов)
- WXT (лучший фреймворк для браузерных расширений)
- MUI (библиотека UI-компонентов под Material Design)
- Netlify (бесплатный и надёжный хостинг)
Backend:
- Supabase (как Firebase, только лучше)
- Yandex Cloud (serverless-контейнеры + S3-хранилища)
Процесс
На выходных добрался до Speech to Text — браузерного расширения для транскрипции аудио. Оно было написано на vanilla JS ещё в первых версиях, и каждое обновление превращалось в квест по поиску багов и зависимостей.
С помощью Cursor (AI-ассистента для кода) переписал всё расширение за пару часов:
Перенёс на WXT (фреймворк для Chrome Extensions)
Заменил самописные компоненты на MUI
Добавил TypeScript для типобезопасности
Заодно запилил новую фичу: транскрипцию системного звука через Chrome Tab Capture API
Что получилось
Теперь Speech to Text может расшифровывать не только микрофон, но и всё, что играет на компьютере: YouTube-видео, Zoom-созвоны, лекции, подкасты и т.д.
Дополнительно добавил:
Аудиоплеер для предпросмотра файла перед отправкой
Анонимную расшифровку по прямой ссылке на аудио
Бонус
Модерация в Chrome Web Store прошла за 2 часа (обычно было 8-12). Предполагаю, что регулярные релизы дают "репутацию" у алгоритмов Google.
Выводы
Унификация стека — это не просто модное слово, а реальная экономия времени. Теперь могу быстро переключаться между проектами и переиспользовать компоненты без головной боли.
Хотите больше деталей?
Про процесс унификации стека, выбор инструментов и другие эксперименты с расширениями пишу в своём Telegram-канале @debug_leg. Там более неформальный формат: короткие посты, скриншоты процесса и честные истории про грабли. Подписывайтесь, если интересна кухня разработки.
10.12.1972 — Рождение языка C [вехи_истории]
👨💻 В 1972 году в Bell Labs Деннис Ритчи создал язык C — фундамент всего современного IT.
У этого события нет точной даты в календаре, поэтому 10 декабря часто используют как символический день рождения, связывая его с днём рождения первой программистки в истории, Ады Лавлейс.
👨💻 Язык, задуманный для UNIX, стал «латынью» для разработчиков: на нём написаны Windows и Linux, а его синтаксис лёг в основу C++, Java и Python.
Лёрника, часть следующая. Война с jitsi
Всем привет!
Доступ к ресурсу: https://learnika.ru/
Итак, я подобрался к jitsi вплотную. Установить это пол беды, хотя это даже не беда, что там не ждут меня. Что не сохранил с тобой себя.... три, четыре, закончили. Настроить JWT токены это тот еще геморрой.
В начале было слово, а какое не скажу. Потому что не знаю, это все равно что спросить "а кто изобрел колесо".
Естественно, после установки нужно добавить параметры что у нас не анонимные пользователи, а авторизованные. подключил в конфигах токены. И понеслась...
1 Битва. Prosody не видит токены. Видишь токены? и я не вижу, а он есть.
в логах пишет:
modulemanager: Unable to load module 'auth_token': /usr/lib/prosody/.../mod_auth_token.lua: No such file or directory modulemanager: Error initializing module 'auth_token': module 'inspect' not found:
Суть оказалась проста, Prosody искал плагины не там, где они были. так же ему не хватало библиотеки из Lua, которая нужна для работы в jwt. Собственно, через luarocks поставил inspect.
так же в конфигах нужно прописать путь к плагинам : plugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }, кто поймет, тот поймет, а кто не поймет, тот не поймет. Да, я капитан очевидность. И..... Prosody таки увидел плагины и начал их грузить!
2 Битва. Пользователи таки стали проходить аутентификацию, но когда подключается второй клиент - давай до свидания, вылетают тут же оба. Client disconnected: connection closed. Сразу оба два.
В настройках : c2s_require_encryption = true а было false, не помогло, если что, это это настройка Prosody XMPP сервера, опять же, кто то понял, кто то нет. да и какая разница. А, ну да, эта настройка определяет обязательно ли шифрование или нет. Вскрытие показало что пациент умер от вскрытия. По любому этот параметр тоже влиял, но, как могла подумать моя многоуважаемая публика, а может и не влиял. Скорее всего да. Но, визуально ничего не поменялось, ошибки все те же самые.
Хм..... хмыкнул я, но и это не помогло. а вдруг права доступа к файлам не права доступа к файлам? а вдруг все под рутом? А у Prosody и пользователь prosody. Права установил, но и это не помогло! Хотя, вскрытие показало что все файлы были под правами рута. При этом Jicofo очень даже молодец, видит, принимает. Если что, он отвечает за управление, фокусировку, координацию участников.
Но вылеты при коннекте продолжаются.
3 Битва. Финал. Порты.
Ну по логике, когда подключение без токенов, оно работает, ну значит и машина не виновата же? А вот Фиг Вам, называется, привет, Шарик. Вскрытие в очередной раз показало что без токенов коннектится по порту 443/TCP, а с токенами используются чуть чуть другие порты, которые для медиа более эффективны: 10000/UDP и 4443/TCP.
Ну а поскольку я брал облачный vps в timeweb (ни в коем случае не реклама) то стало быть настройки где то там в панели. И, в кое то веки вскрытие показало что пациент ожил от вскрытия!!! Оно стало работать!
после выхода с конференции перекидывает на главную страницу
Да, у меня два монитора, очень удобно,
точки и запятые насыпал вот тут: .............,,,,,,,,,,,,,,,, кому важно могут брать оттуда и расставлять по своему усмотрению.
Как то так, всем спасибо за внимание!
Санкт-Петербург завершил серию встреч Желтого клуба в 2025 году!
Последнее мероприятие было организовано в первую очередь для разработчиков, но также приветствовало участие аналитиков и других специалистов. Это отражает стремление к расширению профессионального сообщества 1С-специалистов в Санкт-Петербурге.
➡️ Организатор — лидер ЖК в Питере Павел Королев.
Что было на встрече:
🟡 Артем Соболевский провел доклад, посвященный платформе «1С:Элемент». Он представил реальный пример разработки приложения для согласования платежей, рассказав о жизненном цикле проекта. По завершении доклада участники получили возможность самостоятельно протестировать готовое решение в интерактивном формате, что позволило лучше понять возможности платформы на практике.
🟡 Павел Чегодаев и Александр Шапошников выступили с докладом о паттернах программирования. Коллеги разобрали известные практики на простых и понятных примерах, показали, как они облегчают разработку, и вызвали живую дискуссию после выступления.
Больше фоток тут: https://disk.yandex.ru/d/rZ6woFZ_oTm9rA
❤️ Комбинация практического доклада о реальном проекте и теоретического погружения в паттерны проектирования создала сбалансированную программу. Она способствовала как получению новых знаний, так и нетворкингу участников в неформальной обстановке после основной части.
Питер будет рад видеть вас в следующем году!
Подписывайтесь на ЖК Питер, чтобы не пропустить анонс: https://t.me/yellowclub_spb





















![🗓 10.12.1972 — Рождение языка C [вехи_истории]](https://cs18.pikabu.ru/s/2025/12/10/06/gf2rctj4.jpg)


