При гибкой разработке продукт развивается эволюционно, небольшими приращениями. У эволюционных изменений есть масса сильных сторон. Но есть и слабости, про которые нужно обязательно помнить во время разработки. Вот пример из книги «Организованный ум» Дэниела Левитина.
Вы живете в довольно ветхом доме, где многое можно бы и обновить, но в целом все устраивает. Как-то выдалось особенно жаркое лето, и вы решили установить в одной из комнат кондиционер. Прошло несколько лет, вы подкопили денег и задумали оснастить весь дом единой системой фильтрации воздуха, но тот первый аппарат из спальни не убрали – а зачем, собственно? Может, еще пригодится, да и потом, он намертво прикручен к стене. Еще через несколько лет лопнули проложенные в стенах трубы, причем сразу в нескольких местах. Вы пригласили рабочих, они начали вскрывать перегородки и прокладывать новые трубы, но стала мешать ваша система кондиционирования, так как проложена она именно там, где хорошо было бы пустить водопровод. Тогда рабочие решают провести трубы по чердаку, в обход. Все сделано, работает хорошо – но наступает необычно холодная зима, и водопровод на неутепленном чердаке, естественно, замерзает. Этого не случилось бы, если бы вы убрали трубы в стены, но там проложена система воздухоочищения.
Если бы вы планировали разводку всех коммуникаций одновременно, вы сделали бы иначе, но все выполнялось в разное время, по мере необходимости.