Как правило, все сводится к опыту.Наличие большого опыта в различных технологиях позволяет опытному архитектору в целом предсказать, где что-то должно работать вместе и где будут проблемы.Архитектура программного обеспечения обычно заключается в распознавании моделей проблем и использовании решений, которые работали в прошлом для решения этих проблем.Подобно тому, как опытный инженер-программист может применять шаблоны проектирования для решения повторяющихся проблем на уровне кода.
Например, понимание того, что если у вас система обработки транзакций или OLAP или система обмена сообщениями, поможет архитектору собратьправильные компоненты для решения предложенных проблем с использованием инструментов, которые были успешны в прошлом.