Я скажу, что я ищу запахи кода, но я хотел бы быть более конкретным. Я использую структуру моего дизайна, которая растет и развивается с каждым проектом. Я буду стремиться к серьезному рефакторингу и редизайну (дисциплина, чтобы я держал их отдельно - это то, над чем я все еще работаю) в начале проекта, и когда я подойду ближе к крайнему сроку и ближе к решению любых проблем или запахов кода, я успокоюсь и сосредоточиться на моей конкретной реализации. Делая это, я обычно найду (или создаю) еще несколько вещей, которые, хотя и функциональны, меня не совсем устраивают. Я запишу их и на следующей итерации проекта буду решать эти проблемы.
Когда я возвращаюсь к коду, я иногда обнаруживаю, что есть более элегантный способ справиться с ситуацией и надрать себя за то, что не видел ее раньше. Иногда я нахожу, что есть лучший способ, но это не тот путь, который я изначально предполагал. Иногда я нахожу, что это хорошо, как есть, и что изменение его было бы чрезмерным дизайном. В других случаях я обнаруживаю, что при исправлении чего-то еще моя первоначальная проблема исчезла.