За что программист получает деньги?
За работу. Если грузчику платят за то, что он загружает фуры, почасовая оплата, то зачем ему платить когда он таскает мешки и возвращается за мешком на легке, ведь он не работает? 
Код нельзя написать хорошо никогда. Можно стремится только к этому. Пока он разбирается это процесс разработки продукта. Почитайте книгу о циклах разработки ПО и все поймете
Все люди получают деньги либо за знания либо за умения. В зависимости от того на сколько доступно и легко учатся определённые знания и получается опыт, или на сколько легко и быстро можно научиться определённому умению, зависит в принципе сумма которую получает человек. Например сайт можно поддерживать так же улучшая его код, ускоряя загрузку страниц или исправляя баги, как уже сказали выше, нельзя написать идеальный код. Но можно сделать его приближенным к идеальному.