Bad Code, Craftsmanship, Engineering & Certification

image

Wer meinen Blog hin und wieder liest, wird mit Sicherheit schon bemerkt haben, für welche Themen ich mich besonders interessiere. Ein Name der in meinen Beiträgen immer wieder auftaucht ist Robert C. Martin aka. Uncle Bob. Er ist einer derjenigen Entwickler, deren Aktivitäten ich besondere Beachtung schenke. Praktisch jeder Talk von Robert Martin dreht sich um die Themen “Clean Code” und “Software Craftsmanship”. Dabei möchte ich wieder einmal auf das entsprechende Buch von ihm hinweisen, dessen Titel nicht passender sein könnte: “Clean Code – A Handbook of Agile Software Craftsmanship”. Dieses Buch deckt mit Sicherheit den größten Teil dieses Talks ab und ist ein absolutes Muss für jeden, der sich heutzutage als Software-Entwickler bezeichnet. In diesem Beitrag möchte ich nicht auf jeden einzelnen Punkt des Talks eingehen, allerdings ist mir ein Punkt aufgefallen, der mir sehr am Herzen liegt und zwar: “How to convince others?” Bevor ich dazu einige Gedanken niederschreibe möchte ich allerdings noch die in dem Talk behandelten Themen erwähnen, die da wären:

image

Nun zum spannenden Thema “How To Convince Others”. Bei diesem Punkt geht es darum, andere Entwickler davon zu überzeugen, dass jeder der genannten Punkte Voraussetzung dafür sind, um gute Software zu entwickeln. So wie im ersten Punkt des “Manifesto for Software-Craftsmanship” erwähnt wird, geht es nicht nur darum Software zu entwickeln die funktioniert, sondern viel mehr darum, “well-crafted” Software zu erstellen.

Um dieses Ziel zu erreichen, sind die aufgezählten Themen meiner Meinung und Erfahrung nach, nicht wegzudenken bzw. Grundvoraussetzung. Leider Gottes, sei es nun in der Arbeit oder an der Universität, sehe ich fast täglich Code der von Entwicklern implementiert wurde, der so ziemlich jeder dieser Voraussetzungen wiederspricht. Woran liegt das? So wie ich das nach meiner Erfahrung her beurteilen kann, wird es an der Universität nicht gelehrt. Man hat zwar einige Kurse wie OOP, Software Testen, Software Engineering oder OOAD allerdings wird einem niemals wirklich vermittelt, dass es eine absolute Katastrophe ist, eine Methode mit 200 LoC zu implementieren. Man hört hier und da mal etwas von TDD jedoch wird in keinem Kurs die Wichtigkeit dieser Praktik näher gebracht.

Schön und gut, jedoch ist das alles keine Ausrede dafür, sich privat in diesen Bereichen weiterzuentwickeln. Wie kann nun jemand der von diesen Praktiken überzeugt ist, andere Entwickler davon überzeugen, dass sie diese Vorgehensweisen ausprobieren sollen. Nein! Sie müssen! Hier kommt der traurige Kommentar von Robert Martin in seinem Talk: “You can’t convince them!”. Nach seiner Erfahrung nach, ist es nicht einfach möglich, Leute davon zu überzeugen, all diese Praktiken anzuwenden und ihnen klar zu  machen, dass sie einen echten Mehrwert davon haben werden. Also was tun? Man muss selbst diese Vorgehensweisen ausüben und sie leben. Man muss als Role-Model agieren und so gut wie möglich seinen Standpunkt vertreten. Ich bin davon überzeugt, wenn man sich diesen Talk ansieht und noch dazu das bereits erwähnte Buch liest, wird man anders über diese Praktiken denken.

Jeder einzelnen Punkt, sei es TDD, sei es Refactoring, sei es Continuous Integration, sei es das Entwickeln von wirklich kleinen Methoden, etc. wird in dem Buch mit Beispielen verdeutlicht. Ich habe schon einige Buch-Reviews zu Clean Code gelesen und bei jedem Review kam im letzten Absatz der Kommentar: “Ich denke jetzt anders darüber, wie ich Code entwickle. Ich habe mich bezüglich meiner Praktiken weiterentwickelt und es fühlt sich gut an.” Robert Martin’s Kommentar über “How To Convince Others” kann man ab Minute 45 hören. Ich hoffe eines Tages werde ich nicht mehr schief angesehen, wenn ich jemanden darüber erzähle, dass ich zuerst meine Tests schreibe bevor ich Produktionscode implementiere, dass ich fast alle 10 Minuten meine Änderungen commite, dass ich ein Gegner von 100 Zeiligen Methoden bin, dass ich ein Gegner von Methoden mit mehr als drei Argumenten bin, dass ich eine vollautomatisierte Test-Suite für ein sicheres Refactoring benötige, etc. Bis dahin kann ich nur so gewissenhaft wie möglich meine Disziplinen bezüglich Softwareentwicklung weiterhin ausführen und vielleicht wenn ich Glück habe, beobachten andere Entwickler diese Vorgehensweisen und befinden diese für erlernenswert.

Keep practicing! Write Clean Code!

Über sageniuz

https://about.me/ClausPolanka
Dieser Beitrag wurde unter Clean Code veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s