В чём причина говнокода?

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

Из ярковыраженных причин можно выделить следующее:

1. Неумение или нежелание писать чистый, хорошо отструктурированный код.

2. Принципиальное неследование паттернам проектирования (типа "это я не понимаю, так я делать не хочу").

3. Недостаток опыта разработчика. Хотите того или нет, но если опыта откровенно не хватает, то о каком "хорошем коде" может идти речь?

4. Наплевательское отношение к своей работе, а-ля "и так сойдёт".

5. Говнокод асто наблюдается в проектах, где часто меняются разработчики. Как и у каждого человека есть свой почерк, так и у каждого разработчика тоже есть "свой почерк". Хорошо когда команда работает вместе и все уже научились "читать код" соседа, но если команда "сборная-солянка", то на почве недопониманий и начинается лажа.

Вообще по большому счёту , если проанализировать все эти причины, то можно сделать вывод, что в говнокоде по сути виноват менеджер проекта. Если правильно организовать и обучить персонал - таких проблем не будет