Существует понятие как архитектор проекта.
Его задача, как и любого другого архитектора: на первом этапе создать виртуальный проект, который утверждает заказчик.
Архитектор изучает требования, вкусы, возможности заказчика, в том числе и финансовые.
Если предложенные схемы не вписываются в концепцию заказчика - нужно распрощаться.
На втором этапе - архитектор проекта выступает, как наблюдающий за строительством.
Т.е. соответствие дизайна, верстки утвержденному проекту.
С точки зрения строительства, есть еще и инженеры проекта, которые делают "расчеты".
Какой уровень компетенции должен быть у архитектора? Он не обязан рисовать, но должен уметь рисовать. Он не обязан знать из чего состоит система, но он обязан знать о существующих технологиях.
Ну... Он еще много не обязан и обязан одновременно.
Но в качестве Разработчика он не выступает. Разработчик - это комплекс, пусть это и будет один человек.
Естественно, что существует разработчик модуля, например. Берем возникшую идею, берем известные инструменты, строим. В случае нехватки инструмента создаем свой - называется все это MVC :)