Организация программы, которая бы отражала постоянно углубляющееся понимание предмета.
Узнать что то новое о предметной области равно возможно как в начале, так и в конце работы над проектом. Наилучшие идеи приходят после первого выпуска соответствующих программных систем. Существуют систематические методы рассуждений, которые может применить программист для достижения понимания предметной области и построения ее эффективной модели.
Существуют и приемы проектирования программ, позволяющие привнести порядок в хаотическое нагромождение кода. Разработать четкую и ясную модель, которая не оставит от сложности предмета камня на камне, - что может быть интереснее? Начиная писать программу, невозможно знать достаточно. Знания, относящиеся к проекту, всегда фрагментированы, разбросаны по документам и памяти разных людей, а также смешаны с посторонней информацией, из-за чего даже нельзя знать наверняка, что именно нам понадобится. Если какая-нибудь предметная область на первый вз