Автор оригинала: varan
Так вот я и думаю, может и не надо "бороться"? Программист должен быть эффективен не как сферический конь в вакууме, а как часть бизнес-процесса. Даже если потом код придется полностью переписать, возможно начальный говнокод был оправдан.
По моему опыту (может быть, у кого-то получалось иначе), любой более менее серьезный проект всегда проваливается по срокам, если изначально в него не заложены пара месяцев (чем больше проект, тем, понятно, дольше) на продумывание, документацию, стандарты и прочее. Во-первых, самому заказчику свойственно забывать через полгода то, что он хотел изначально (а значит, программерам нужно перманентно пилить свой код для удовлетворения обновляющихся нужд заказчика), во-вторых, изначально сложно что-то спланировать, если непонятно, что именно нужно планировать. Т.е. по-моему, даже scrum-методология всегда имеет под собой какой-то изначальный стратегический план и архитектуру системы. Она, конечно, может дорабатываться от итерации к итерации, но доработка не должна идти в фундаментальной части этой структуры.
Конечно, это касается направленности на конечный качественный продукт, функционирование которого предполагается в течение длительного времени. Про ситуации, когда заказчик на вопрос "зачем вам это нужно?" не может дать ответ, мы тут не говорим. Про заказчиков, которые хотят гугл за 3 месяца с командой в 4 человека тоже не говорим.
В конце концов, зачем нанимать программиста с опытом и способностями, чтобы в итоге писать говнокод? Быстро написать много кода может любой программист. В этом случае, эффективность программиста как части бизнес-процесса зависит от самого бизнес-процесса. Вообще, не вижу большой разницы между говнокодерами и таджиками на стройках. И те, и другие - следствие специфики российских "бизнес-процессов". В итоге и то, и другое - зловонный кусок в лучшем случае скрытый под какой-нибудь симпатичной черепицей в алюминевом профиле. Я вот, видел, как перетягивают проводку в финских домах (там в стенах специальные пластиковые трубы для проводов) и как перетягивают их в русских домах - "штробят" (просто отбойником расхерачивают полстены). Так же и с кодом - хороший код обслуживать просто, говнокод - долго, муторно, грязно и потом снова ремонт делать.