По поводу Agile добавлю ясности. В программой инженерии принято различать SDLC-модель, методологию (реализующую модель), framework (образующий методологию) и toolkit.
Когда говорят про церемонии, то говорят про конкретную методологию, реализующую Agile-модель. XP, FDD, Crystal Clear, методология на основе Scrum-framework и т.п.
Agile - это модель, такая же, как и каскадная, спиральная, итеративная, инкрементальная, эволюционная, V-model и гибридная. Ни одна из моделей не умерла и не умрёт, включая Agile, тем более из-за AI. При этом, видимо, появятся новые методологии или адаптируются существующие.
Превалирующая на массовом рынке SDLC-модель постоянно меняется, как маятник. Ключевое отличие в SDLC-моделях - это соотношение prediction активности к adaptation активности. Т.е. соотношение того, какая часть неопределённости требований разрешается заблаговременно, путём логического вывода, а какая часть - экспериментально, путём адаптации реализованных гипотез (принцип "не попробуешь - не узнаешь", т.н. wicked problem, символом которой стало разрушение моста Таacoma Narrows).
Поэтому SDLC-модель выбирается для каждого конкретного проекта исходя из уровня неопределённости требований и стоимости адаптации.
Каскадная модель подразумевает 100% prediction. Работает отлично для небольших типовых проектов, где всё ясно-понятно.
Спиральная и гибридная модель балансирует prediction и adaptation. Гибридная модель так называется потому, что она сочетает в себе практики продуктового и проектного подходов. Сегодня это самая распространённая модель в крупных продуктах (Disciplined Agile, SAFe...) А в спиральных моделях соотношение prediction/adaptation ещё и постоянно меняется на протяжении жизненного цикла.
В итеративных и Agile моделях соотношение prediction/adaptation максимально отклонено в пользу adaptation.
Почему исторический маятник всё время колеблется?
Стоимость адаптации была слишком дорогой - превалировала каскадная модель.
Появилось автоматизированное тестирование, браузер рефакторинга, высокоуровневые языки, паттерны проектирования - упала стоимость адаптации, произошел переход от каскадной модели к Agile.
Системы стали расти, появились микросервисы, обострилась проблема Брукса, выросла стоимость adaptation - произошел переход от Agile к гибридным моделям. Появление легковесных практик проектирования (Event Storming и др.), удешевляющих prediction, ещё больше закрепили гибридные модели.
Появился AI, который на порядок удешевил адаптацию, - появились SPDD, SDD. SDD - это, кстати, ни капли не про Waterfall - это чистой воды итеративная модель, почитайте мануал к OpenSpec - он весь построен вокруг инкремента итерации. Это инструмент управления изменениями, т.е. адаптацией. В результате упала численность команд разработки, маятник откатился назад в сторону итеративных моделей и Agile.
При этом нужно отличать SDLC-модель от эффекта Boiled Carrot (говоря по русски, отличать очки от эффекта "мартышка и очки").
Когда говорят, что "Agile не работает", то это означает, что это у них он не работает. Это поднимает два вопроса:
1. Соответствует ли выбранная SDLC-модель условиям проекта? Если не соответствует, то что мешает её сменить?
2. А если соответствует, то с чего они решили, что умеют "готовить морковку"?
Но в любом случае, "работает" не SDLC-модель, а конкретная её реализация (методология). SDLC-модель просто отвечает на вопрос о том, каким образом и в каком соотношении сочетать заблаговременный (prediction) и экспериментальный (adaptation) способы разрешения неопределённости.
Post #1890
1.41K
Forwarded from Ivan
- ❤ 8
- 👍 6
- 🔥 2