По-моему речь шла о другом. О том, что не нужно специально усложнять.
Многие бойцы в попытках написать типа умный код усложняют код и как следствие усложняют систему на ровном месте. Они неплохо умеют писать код, но пока еще не умеют строить системы, которые всегда работают.
Типичный пример такого типа умного кода - это когда нужно забрать файл с S3/FTP и вместо того, чтобы явно принять путь до файла, эти ребята переносят бардак из своей головы в код и реализуют неявную логику генерации путей до файла аля /opt/output/" + today.strftime(‘%Y%m%d’). Happy debugging, testing and maintenance.
Треды, локи и блокирующие очереди там где можно обойтись новым процессом. Типа умная обработка ошибок, когда со своей стороны мы ничего уже не можем сделать вместо того чтобы громко упасть. Кафки, кубернетисы, микросервисы, микрофронденты и другие слова на К и М это скорее всего усложнения там, где это совершенно не нужно.
Надежная система собирается как конструктор и базируется на простых и скучных компонентах, а не наоборот.
С другой стороны, чрезмерное упрощение приводит к тому, что код пухнет на глазах, и становится плохо поддерживаем. У меня есть теория, что существует 2 типа программистов. Программисты с условно "большой оперативной памятью", которые легко работают с функциями длиной 500 строк, помнят про 300 глобальных переменных и то, где какие файлы лежат. Такие люди очень хорошо делают quick and dirty код и могут запустить техническую часть стартапа за неделю. А есть люди, у которых встроенный графовый процессор. Такие люди очень плохо работают с функциями в 500 строк, но могут держать в голове систему из множества взаимодействующих компонентов. Эти люди могут расчистить авгиевы конюшни исторических наслоений легаси и написать рядом систему, которая уже будет использовать кубернетес, кафку и прочие модные технологии к месту. Проблемы начинаются тогда, когда вторые люди приходят в стартап и начинают строить кубернетес кластер, либо когда люди первого типа приходят на проект с большой сложной системой, и начинают поверх нее строить хаки для быстрого запуска. К тому же эти два типа людей часто ненавидят друг друга :) Так что с моей точки зрения существует не только проблема оверинжениринга, но и проблема излишнего упрощения, которая скрывает сложность системы хардкодом и дублированием. Как всегда, нужен баланс, а скатывание в крайности понижает эффективность работы. Не важно будет ли это оверинжиниринг или чрезмерное упрощение.