<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet href="blog.xsl" type="text/xsl" ?>
<blog>
	<datum>08.06.2026</datum>
	<headline>Clean Code</headline>
	<teaser>
		Was nützt "Clean Code"? Kostet das nicht zu viel? Eine genauere Betrachtung 
		für Manager.
	</teaser>
	<para>
		Heutzutage muss alles möglichst billig hergestellt werden. Der Profit des 
		Unternehmens steht über allem. Dem ist grundsätzlich auch nichts 
		entgegenzuhalten - das ist durchaus legitim. Pech nur, wenn manche Entscheidungen 
		des Managements diesem Ziel langfristig zuwiderlaufen, weil nur der kurzfristige 
		Gewinn betrachtet wurde. Eine dieser Entscheidungen kann das Für oder Wider zum 
		Thema "Clean Code" sein.
	</para>
	<para>
		Klar, wer seine Quellen immer sauber hält und alle Altlasten entfernt, die 
		nicht mehr notwendig sind, braucht ein bisschen länger für die Entwicklung
		als jemand der möglichst schnell Ergebnisse erzielen will, die er oder sie 
		bald dem Management präsentieren will. Das Problem: Die Nachteile sieht man
		sofort, nämlich die höheren Kosten, die Vorteile sieht man entweder gar nicht
		oder erst später. Das ist für viele Manager nicht akzeptabel, da sie ja schon 
		bei der nächsten Hauptversammlung entlastet werden wollen. Deswegen zeige ich 
		hier schon mal die Vorteile:
	</para>
	<para>
		<ul>
			<li><b>On-Boarding-Vorteile</b><br />
			Neue Mitarbeiter brauchen länger, um sich in Ihren Quelltexten einzuarbeiten, 
			wenn dort viele Anweisungen enthalten sind, die nicht mehr erforderlich sind.
			Ganz besonders störend kann es sein, wenn noch alte Schlüsselworte aus einer 
			Zeit übrig geblieben sind, die schon lange keine Bedeutung mehr haben und 
			von modernen Compilern einfach ignoriert werden. Junge Entwickler:innen 
			müssen aber erstmal nachschauen, was <b>huge</b>, <b>far</b> oder <b>near</b> 
			bedeuten. Vor allem, je mehr Fluktuation Sie in Ihrem Team haben desto stärker
			macht sich dieser Nachteil bemerkbar.</li>

			<li><b>Wartungsvorteile</b><br />
			Die Wartung, Fehlerbehebung, Migration etc. des Quelltextes wird auch unnötig 
			bei jeder Zeile, die nicht notwendig ist, ausgebremst. <br/>

			Ich sollte mal ein Livelinkmodul, das ich nicht selbst entwickelt hatte, zu 
			einer neuen Version von Livelink migrieren. Eine Funktion sollte einen 
			Statusbericht schreiben. Wenn dabei ein Fehler passiert, wurde abgebrochen. 
			Damit keine Leichen im Dateisystem übrig bleiben, sollte vorher geprüft werden, 
			ob die Schreibfunktion erfolgreich sein wird. Dazu hat ein Entwickler einfach 
			eine Kopie der Schreibfunktion erstellt und alle Schreiboperation 
			auskommentiert, so dass sie nur noch Erfolg oder Misserfolg meldete. Das 
			bedeutete für den Entwickler gerade mal 10 Minuten Arbeit, Die Prüfroutine 
			war aber genauso lang wie die Schreibfunktion. Das waren ca. 1000 LoC.<br/>

			Bei der Migration musste ich natürlich beide Funktionen mühsam analysieren, 
			da ich nichts von dieser Vorgeschichte wusste. Es hat mich insgesamt etwa 
			eine Stunde gekostet, bis mir auffiel, dass die Prüffunktion massenhaft 
			unnötige Schritte ausführte und reine Redundanz war. Ich habe die Prüfroutine 
			schlussendlich auf ca. 300 Zeilen kürzen können. Mein Mehraufwand betrug eine 
			gute halbe Stunde - nur weil sich damals jemand fünf Minuten Zeit sparen wollte.</li>

			<li><b>Erweiterungsvorteile</b><br/>
			Wenn weniger Altlasten im Code enthalten sind, lassen sich auch Erweiterungen 
			und neue Features deutlich einfacher implementieren. Denn jeder historische 
			Sonderfall, der im bestehenden Code mühsam berücksichtigt werden muss, treibt 
			die Entwicklungszeit in die Höhe. Auch die anschließenden Qualitätstests werden 
			dadurch überproportional aufwändiger und fehleranfälliger. Clean Code sorgt 
			dafür, dass das System flexibel bleibt und neue Marktanforderungen schnell 
			umgesetzt werden können.</li>

			<li><b>Supportvorteile</b><br/>
			Wenn Sie konsequent auf Clean Code achten, erhalten Sie im Ergebnis eine weitaus 
			stabilere Anwendung. Das wiederum führt dazu, dass der Aufwand für den 
			Nutzersupport drastisch sinkt. Bei einer Versicherung, für die ich einmal tätig 
			war, war fest eine eigene Planstelle nur für den Support einer von mir 
			entwickelten Anwendung eingeplant. Da die Software im Betrieb jedoch extrem 
			stabil lief und der Kollege dadurch relativ wenig zu tun hatte, konnte er den 
			Nutzersupport für andere Anwendungen im Haus mitleisten. Clean Code spart also 
			nicht nur Entwicklungszeit, sondern entlastet direkt die operativen 
			Support-Budgets.</li>
		</ul>
	</para>
	<para>
		<b>Fazit: Qualität zahlt sich ab Tag 1 aus</b><br/>
		Am Ende des Tages lässt sich der Nutzen von Clean Code in einem Satz zusammenfassen: 
		Er macht Ihr Unternehmen unabhängig von den Fehlern der Vergangenheit. Kürzere 
		Einarbeitungszeiten, reibungslose Migrationen, schnelle Feature-Releases und 
		ein entlasteter Support sind der messbare Lohn für den Fokus auf Softwarequalität. 
		Clean Code ist die Versicherung gegen den schleichenden Kontrollverlust in der IT.
	</para>
</blog>