В своей основе программирование — это построение теории, то есть общей ментальной модели того, как работает система, почему она так работает, и как она должна развиваться.
Выработка теории, которая преобразует бизнес-требования в согласованные программные модели — должна оставаться строго в руках человека.
Важнейшая информация о замысле, дизайне, компромиссах и рассуждениях, лежащих в основе тех или иных архитектурных решений, существует лишь в умах создателей системы. Когда такие люди уходят, вся эта теория утрачивается.
Хорошо бы ещё писать так, чтобы «теория не утратилась» с уходом программиста. Избегать оверинжиниринга, не допускать зоопарка технологий, добавлять комментарии в важных местах, README файлы к модулям, сокращать, а не добавлять подходы к решению типичных задач.