Sollte man als Softwareentwickler/in jemals zurückgehen, um den Code zu verbessern, wenn man aufgrund knapper Fristen Code von geringer oder mittelmäßiger Qualität liefern muss?
Ja, das sollte man tun. Man nennt das "Refactoring". Die heute üblichen integrierten Entwicklungsumgebungen haben entsprechende Tools an Bord, mit denen so etwas ohne allzu viel Handarbeit bewerkstelligt werden kann, und allermeistens ohne dass die eigentliche Funktionalität des Codes verändert wird. Die Macht dieser Tools liegt darin, im Zweifelsfall auch große Mengen an Code halbautomatisch zu bearbeiten. So kann man z.B. Funktions- und/oder Klassendefinitionen aufteilen, verschieben oder umbenennen, und der davon abhängige Code wird automatisch an die Änderung angepasst. Genauso können große Codeblöcke in einzelne Routinen aufgeteilt werden, oder auch das Umgekehrte ist möglich: "Inlining" von Klassen und Funktionen.
Zu den fortgeschritteneren Operationen solcher Tools gehören das automatische Entfernen von "Mittelsmännern", die Generifizierung von Code (Einführung generischer Typparameter), der Ersatz von Funktions-Parameterlisten durch Parameter-Objekte oder umgekehrt, und vieles mehr.
Diese Möglichkeiten sollten genutzt werden, wann immer Zeit dafür ist und wann immer man einen Sinn darin sieht.