Мне видится, что правильные или неправильные решения могут быть в математике, когда есть строгие и четкие правила построения выводов и вычислений, когда любое рассуждение формализовано и воспроизводимо, т.е. можно гарантированно на тех же входных данных получить тот же результат. Наверное, в ИТ можно поступать так же, т.е. составить алгоритм принятия решений, накидать в него все возможные входные условия и формально прийти к решению. Но что-то мне подсказывает что это нереально. Во-первых, входных условий невообразимо много. И даже если вы думаете, что учли все, всегда есть еще одно. Методы принятия решения на одних и тех же входных данных тоже разные, опираются на разные принципы, зависят от состояния и стадии ЖЦ. Зависят от внешней реальности, которая вообще часто непредсказуема и носит "полувероятностный" характер.
Вспоминается фраза одного из сейлов - Мы выиграем этот тендер с вероятностью 90%, но вероятность вот вот тех 10% - примерно 60%.
В общем, я к тому, что использовать слова "правильно" или "неправильно" по отношению к архитектурным решениям кажется не очень корректно, лучше использовать более конкретные эпитеты. Например использовать слова "обосновано/не обосновано", которые описывают степень обоснованности, мотивированности выбора того или иного подхода в решении. Может быть "нестандартное" решение, если оно не похоже на общепринятые подходы, "рискованное", если оно несет в себе больше рисков, чем ожидается, ну и т.п.
#мысливслух