А какие видите варианты реализации?
Не думаю, что формализация этого вопроса сильно облегчит дело. А может даже и вызвать отторжение. Если знаний у разработчиков не хватает, то неизменно будут проблемы с кодом. И они эти проблемы знают, и страдают из-за них. Это - хорошая точка входа. Нужно эти проблемы обнаружить (обычно это не сложно по косвенным признакам - сорванные сроки, концентрация багов, множественные переделки реализации и т.п.), и подсказать правильное решение. Две-три решенные таким образом проблемы, и они начнут сами спрашивать как лучше сделать. Но, чтобы это работало, нужно в совершенстве знать Software Design. Лично я не отделяю работу архитектора от Collaborative Development (т.е. распространения знаний), ибо если реализовать решение некому (в силу недостаточности квалификации), то какой смысл от этого решения?
Еще одна хорошая точка входа - споры на Code Review. Опять же, нужно в совершенстве знать Software Design и уметь убедительно аргументировать.
В общем, тут самое главное - сдвинуть этот клубок с места. Потом он наберет инерцию. Как я уже говорил, работа архитектора в команде - самоисключающая. Вначале команда будет обращаться с вопросами (тут самое главное сбалансировать по времени, ибо нужно успевать делать свою работу и не оставлять обращения без ответа), затем они научатся искать ответы на свои вопросы самостоятельно, и, в конечном итоге, станут автономны.
Чтобы сбалансировать по времени, нужно хорошо знать популярные reference applications, куда можно сослать посмотреть типовое решение, и каталоги рефакторинга, паттернов и т.п. Например, есть code samples EIP-паттернов к книгам. Это позволяет отвечать на вопросы быстро и исчерпывающе. Ну и, лучше один раз увидеть.