Letztes Jahr habe ich von einer Artikelserie auf Heise berichtet, in der sich Stefan Lieser und Ralf Westphal, Gründer der Clean Code Developer Initiative, über die Einführung der Clean Code Developer Prinzipien in Brownfield Projekten äußern. Während der erste Teil noch die Probleme von Brownfield Projekten beleuchtet, widmet sich der zweite Teil den Grundlagen für die erfolgreiche Einführung der Clean Code Developer Prinzipien in gewachsene Quellstrukturen.
Beiträge getagged ‘Softwarequalität’
CCD in Brownfieldprojekten – Teil 2
24 Januar 2010Von Katas und Dojos in der Softwareentwicklung
26 November 2009Den Spruch “Übung macht den Meister” kennt wohl jeder. Praktische Anwendung findet der Spruch zum Beispiel bei Musikern und Sportlern. Diese Spezies Menschen üben bzw. trainieren mehrmals die gleichen Aufgaben. Immer und immer wieder, bis das Geübte in Fleisch und Blut übergeht. Nur so sind sie in der Lage, Höchstleistungen zu vollbringen.
Wie sieht das nun bei Softwareentwicklern aus? In der Ausbildung werden theoretische Grundlagen gepaart mit ein paar Übungen vermittelt. Doch was ist nach der Ausbildung? Softwareentwickler werden in ein Projekt gesteckt und sollen dort ihre Arbeit verrichten. Die Übung findet also im produktiven Projekt statt. Und beim Üben werden Fehler gemacht.
Abhilfe schaffen da so genannte Katas. Der Begriff Kata stammt aus der japanischen Kampfsportkunst und bezeichnet dort das Training einer meist gleichen Situation. Durch das ständige Wiederholen einer Kata werden Grundprinzipien der Kampfkunst verinnerlicht und stehen dem Kämpfer später ohne große Mühe zur Verfügung. Nämlich dann, wenn es drauf ankommt.
Genau das gleiche Prinzip wurde in die Softwareentwicklung übertragen. Im Netz finden sich etliche Katas mit unterschiedlich schwierigen Aufgabenstellungen. Das Lösen dieser Katas kann nun einem Programmierer im Umgang mit einer neuen Sprache, einem neuen Tool oder neuen Techniken wie Test Driven Development helfen. Das so gelernte und gefestigte Wissen kann dann im produktiven Einsatz ohne große Mühe abgerufen werden. Nämlich dann, wenn es drauf ankommt.
Und was sind nun Dojos? Ein Dojo bezeichnet in der japanischen Kampfkunst einen Übungsraum. In dem werden die o.g. Katas trainiert. Das kann einzeln geschehen, wird jedoch meist in der Gruppe praktiziert. Deshalb wird manchmal auch die Gruppe selbst als Dojo bezeichnet. Auf die Softwareentwicklung übertragen heißt das nichts anderes, als dass es Treffen gibt, bei denen sich Softwareentwickler in einer Gruppe eines Katas annehmen, dies Lösen und die Lösung im Idealfall noch diskutieren. Also Üben in der Gruppe. Wie man ein Dojo organisiert, welche Anforderungen erfüllt werden sollten und einige weitere Katas finden sich auf CodingDojo.com.
Ich finde diese Art der Übung sehr spannend. Das ist auch genau das, was ich bisher immer schmerzlich vermisst habe. Kleine Übungsaufgaben, mit denen man neue Sprachen erlernen, neue Tools ausprobieren oder sein Gelerntes Wissen verfestigen kann.
Clean Code in Brownfield-Projekten
19 November 2009Ich hatte ja bereits vor einigen Wochen von der Clean Code Developer Initiative berichtet. Die Prinzipien und Praktiken, die Ralf Westphal und Stefan Lieser aufgestellt haben, lassen sich wunderbar bei Neuentwicklungen anwenden. Also auf der “grünen Wiese”.
Aber was machen Projekte die über die Jahre gewachsen sind? So genannte Brownfield-Projekte haben teils schwerwiegende Probleme mit der inneren Code-Qualität. Die Probleme schlagen sich in der Produktivität sowie in den Kosten für Neu- und Weiterentwicklungen nieder. Das geht sogar bis zum Konkurs ganzer Unternehmen. Eine Artikelserie auf heise Developer beschäftigt sich mit genau diesen Symptomen und wie Entwickler ihren über die Jahre gewucherten Code wieder “clean” bekommen. Der erste Teil der Serie ist nun online und sollte von jedem Entwickler und Entscheider gelesen werden. Prädikat: Sehr lesenswert!
Clean Code Developer
1 September 2009Was macht einen guten und professionellen Softwareentwickler aus? Ist es die Ausbildung? Ist es das Geld, was der Entwickler mit seiner Software verdient? Nichts dergleichen. Meint zumindest die Clean Code Developer Initiative. Dahinter stecken derzeit Stefan Lieser und Ralf Westphal. Beide Entwickler haben sich ein System ausgedacht, nachdem jeder Softwareentwickler sich gewissen Prinzipien und Werten unterwirft und somit seine Qualitäten unter Beweis stellt.
Die Idee eines Clean Code Developers klingt sehr interessant und verlockend. Auch die Aufteilung in CCD-Grade macht Spaß aufs Mitmachen. Und die ersten Prinzipien wie DRY – Don’t Repeat Yourself sowie KISS – Keep it simple, stupid, kommen mir bereits sehr vertraut vor. Die Inititative hat auf alle Fälle mein Interesse geweckt.
Wer mehr darüber erfahren möchte, was ein Clean Code Developer ausmacht, findet im CCD-Wiki alles Wissenswerte. Ebenfalls interessant zu lesen ist das von heise Developer geführte Interview mit CCD-Mitbegründer Ralf Westphal.
