tgoop.com/emacsway_log/1429
Last Update:
Еще один пример "на пальцах" того, чем отличается итеративно-инкрементальная модель разработки от каскадной.
Представьте, что вы едете в отпуск. Вы изучаете информацию об отелях и бронируете отель. Уплачиваете всю сумму стоимости проживания сразу по предоплате. Это - каскадная модель.
Вы заселяетесь в отель и обнаруживаете, что WiFi, критически необходимый, не работает, зона покрытия сети мобильного оператора слабая, воды горячей нет, за стеной шумят соседи, сейфа в номере нет, за окном напротив расположен громкий ночной клуб и т.п. Но вы уже уплатили всю сумму, ничего изменить нельзя. Это основные риски каскадной модели.
Что произошло после вселения? По прошествии одного дня вы получили новое знание экспериментальным (т.е. опытным) путем.
А что если минимизировать риски уплатив стоимость всего одого дня предоплаты в качестве бронирования? Тогда по прошествии одного дня вы производите инспекцию результата опытным путем, и решаете переселиться в другой отель. Это называется адаптация. Вы переселяетесь в другой отель, учитывая обретенные знания в результате опыта с первым отелем. Цикл повторяется. Это называется итерация, т.е. итеративная модель.
Планируя поездку, вы понимаете, что нужно позаботиться о трансфере и поручаете проработку этого вопроса своей второй половинке. Она может это делать параллельно с вами. Это называется инкремент, т.е. инкрементальная модель.
В сумме получается итеративно-инкрементальная модель, которая лежит в основе Agile-модели.
У вас появились дети, вы начинаете путешествовать всей семьей, и понимаете, что бегать из отеля в отель становится накладно. Тогда вы начинаете тщательней относиться к выбору отеля, оставляя за собой право изменить решение. Изучаете отзывы, звоните в администрацию отеля, выясняете наличие возможности реализовать свои требования и т.п. Но решили не тратить на эту деятельность более одного дня, чтобы трудоемкость выбора отеля не превзошла трудоемкости переселения в другой отель. Это называется гибридная модель, совмещающая в себе как продуктовые, так и проектные практики.
UPDATE: Как справедливо заметил @BorisRomanov:
ага. Оплатил один день, решил съехать, но обнаружил, что во всех соседних отелях мест нет, а до ближайшего со свободными номерами - 150 км. Это риски итеративной модели :)
Так же, как и в случае увеличения численности семьи, произошло возрастание стоимости адаптации, только по другим причинам. Вы начинаете тщательней относиться к выбору отеля, т.е. к продуктовым практикам добавляете проектные. Получается гибридная модель.
UPDATE2: Вы также можете заблаговременно предусмотреть возможность адаптации, например, зарезирвировав номер в двух отелях, а потом отказаться от одной из броней. Это уже Agile Architecture.
- https://architectelevator.com/architecture/architecture-options/
- https://architectelevator.com/strategy/always-be-right/
- https://pubs.opengroup.org/architecture/o-aa-standard-single/
UPDATE3: В данной системной метафоре отпуск является продуктом, отель - конструкцией, реализующей функцию проживания, трансфер - конструкцией, реализующей функцию передвижения к месту назначения и назад.
BY emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.

Share with your friend now:
tgoop.com/emacsway_log/1429