Это называется педантичность
Я усложнаяю свой код на столько, на сколько это необходимо, и не заморачиваюсь по этому поводу. Иногда удовольствие пропадает, но жизнь не состоит из одних удовольствий
Никогда не пишу никаких ТЗ и прочей подобной хрени. На мой взгляд - это пустая трата времени. Общая картина перед началом проекта мне известна, и этого вполне достаточно. Часто вообще не понятно как решать ту или иную задачу, пока уже вплотную к ней не подойдешь, и продумать это заранее невозможно.
Так же скептически отношусь ко всяким test-driven development-ам, хоть некоторые гуру и говорят, что это экономит время и нервы, но что-то я этого видимо еще не осознал
Но всегда очень подробно комментирую код, иногда даже слишком подробно. Код становится грязнее, но зато и через год легко пойму что я там делал