Когда в вакансиях разработчиков вы пишите что-то подобное: "знание хотя бы двух технологий из списка: Ruby, Node.js, Go, Clojure, Scala. Опыт работы с SQL или noSQL базами данных...", - это верный знак тщательно маскирующегося хаоса. К новым разработкам на стадии проектирования системы это не относится, а вот для действующих проектов вакансия разработчика должна выглядеть так "php+js+mysql", или так "nodejs+mongo", или так "c#/java+oracle".

Вообще для бизнеса такие вещи не всегда очевидны, так что я перечислю тут известные мне признаки, указывающие на необходимость тщательного анализа текущий ИТ-архитектуры:

- уже описанный пример с требуемой квалификацией программиста

- то что затраты на железо, обслуживающего бизнес, не должны расти быстрее самого бизнеса многие и так знаю, а вот то, что они должны расти примерно в два раза медленней - вот это, скорее всего станет открытием... объясняется это тем, что если система "живая" (читай, работающая правильно) то она не может быть статична, она должна повышать эффективность своей работы (оптимизироваться)... т.е. если сегодня сервер за 100к "держит" поток в 1к заявок, то завтра он должен "держать" 1,01к, а к моменту покупки второго сервера за те же 100к, они вместе должны держать уже не 2к, а 3к заявок... это если на пальцах...

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

- программист с вами ни о чем не спорит... это не значит, что он с вами согласен... это значит, что все настолько плохо, что любая новая, даже самая бессмысленная и "вредная для системы" доработка уже не сделает хуже...