Produktivkiller bei der Programmierung: Clinging to legacy tech – An schlechtem Code hängen bleiben

0
Blog is deprecated - Neu blog.nevercodealone.de
Webdesign TYPO3 Duisburg Produktiv Killer Quelle Infoworld

Webdesign TYPO3 Duisburg Produktiv Killer Quelle Infoworld

Nirgends werden tote Pferde soweit geritten, wie in der Software Entwicklung„, sagte ich vor einem Jahr. Da war ich bei einem Unternehmen angestellt, das sich selber zum Marktführer gekrönt hatte. Dabei ist es auch sehr stark expandiert und hat auch, zumindest von der Kennzahlen her, eine gewaltige Entwicklung gemacht. Darauf war die Software allerdings überhaupt nicht ausgelegt. Denn dort hing man an einer sehr alten und längst überholten Software, die auch noch nie einen hohen Qualitätsstand hatte und so weiter mitgeschleift wird. Man tritt sich in altem Code fest, wie in einem Sumpf. Dabei sind doch immer wieder dieselben Zutaten in einem solchen Chaos zu finden. Personal, Planung und Durchführung. Immer wieder bemerke ich, daß Entwickler eine Software aufsetzen und diese dann verunreinigen. Lagacy Code vs. Clean Code. Wie bekommt man gute Qualität in Software und was zeichnet diese aus? Darüber gibt es ja bekanntlich ganze Buch- und Vortragsreihen. Im wesentlichen verliert sich die Diskussion darauf, das die Kosten für nachhaltige Software Entwicklung zu hoch sind und auch wenn es Studien gibt, die gegenteiliges Aussagen, wird immer weiter auf alten Pferden geritten. Leider liegt es hier in meinen Augen, an der Fähigkeit der Programmierer. Es dauert nicht länger sauberen Code zu schreiben. Ganz im Gegenteil. Es geht viel schneller. Aber dafür muß man sich die Fähigkeiten, die man für Clean Code braucht, aneignen. Und das ist keine einmalige Angelegenheit, sondern ein stetiger Prozess, der eine hohe Eigeninitiative bei der Weiterbildung erfordert. Und den Preis möchte aus Luxusgründen nicht jeder Entwickler zahlen. Der Arbeitsmarkt lässt das leider zur Zeit zu. Schlechte Leute werden gut bezahlt und haben eine hohe Job Sicherheit. Und das macht die Entwicklung ineffektiv. Betrachten wir aber hier das Thema Legacy Code genauer.

Ursachen für Legacy Code
Keine automatisierten Tests
Es kann keine Softwarequalität ohne Tests geben. Schlechte Programmierer neigen dazu nur den Erfolgsfall in ihrem kleinen Projektteil halbherzig als Try-and-error zu testen. Das liegt vor allem an mangelnden Fachkenntnissen in dem Bereich Testing und dem fehlenden Blick über den Tellerrand. Gute Entwickler wissen, daß sie mit den Tests viel Zeit sparen und eine hohe Qualität in ihr Projekt bringen. Schlechte Entwickler bringen irgendwas irgendwie zum laufen. Es ist auch ganz einfach seine Tests direkt in die IDE zu integrieren, wie z.B. Ticketsysteme in Phpstorm.

Softwarequalität
Clean Code ist eine Philosophie und hat klare Regeln. Aussagekräftige Namen, kleine Klassen und Funktionen, Codestandards, Unit Tests und vieles mehr. Es ist nicht nötig Legacy Code zu schreiben. Hier fallen Dinge auch schnell auf, die dringend vermieden werden müssen. Große If-Else-Blöcke, mehr als 3 Parameter bei Funktionen, große Klassen mit vielen Methoden, verwirrende Projektstruktur. Sowas muß man nicht schreiben und kostet mehr zeit als sorgfältig zu arbeiten.

Kein Refactoring
Alle technischen Systeme müssen gewartet werden. Das betrifft natürlich auch Software. Hier muß Code optimiert werden und an neue Codestandards angepasst werden. So sind z.B. auch die Phpversionen aktuell zu halten.

Unfähige Entwickler
Leider sind qualifizierte Entwickler, die sich ständig weiterbilden und nicht stehen bleiben sehr selten. Es gibt viele Programmierer, die immer selbständig Projekte irgendwie zum laufen gebracht haben und sich deshalb Senior Webdeveloper nennen. Das ist aber Quatsch. Tatsächlich zeichnet einen Senior vor allem aktuelles Fachwissen aus. Das wird häufig nicht beachtet.

Fehlende Transparenz
Es gehört auch Mut dazu bestehende Systeme zu kritisieren und zu refaktorisieren. Aber man kann jeden Code, den man selber schreibt, gut schreiben und den Code an dem man gerade ist etwas verbessern. Jeder Schritt in die richtige Richtung muß auch gegangen werden.

Schuldzuweisungen
In Hamburg war alles eine ehemalige Agentur schuld, die vor 5 Jahren ein System schlecht programmiert hat und seitdem muß man damit leben. Das darf man als Vorgesetzter nicht als Ausrede akzeptieren. Systeme können immer verbessert werden. Das bringt allen Beteiligten einen deutlich messbaren Mehrwert und motiviert. Gute Arbeit macht Spaß.

Frust
Schlechte Software und Legacy Code zu akzeptieren fällt nicht nur schwer, sondern ist auch nicht nötig. Wie WALL-E kann man jeden Tag aufräumen und verbessern. Wer gutes tut fühlt sich gut.

Fazit zum Thema Legacy Code
Legacy Code entsteht durch schlechte Programmierung und natürlich veraltet Code auch mit den Jahren. Wie andere technische Dinge muß auch Code gepflegt und gewartet werden. Das ist ein laufender Prozess. Nach dieser Artikelreihe gehe ich weiter auf das Thema Clean Code ein.

About Author

PHP Kurs und Inhouse Schulungen für Webdevelopment mit Continuous Integration - Clean Coder, Blogger, Autor, Dozent und Senior Webdeveloper www.rolandgolla.de

Leave A Reply

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.