Есть такая статья, называется "Why good programmers write bad code". Эмпирическое исследование, observational study, что называется. Так вот, причина №1 с большим отрывом: отсутствие или некачественная документация.
Ну и кроме того, как философски, так и по факту, код делает просто то, что делает код. А нам нужно, чтобы код делал то, что нам (или заказчику) нужно. И вот это самое "что нужно" должно быть написано в документации, чтобы разрабатывать что нужно, а не что попало. 🤷♀️