Stratified Design over Layered Design

Designing software with layers is common – and broken. It’s broken for two reasons: Layers suggest some form of abstraction; but layering very fundamentally is not about abstraction. Layering relies on functional dependencies which are hard to test and make software difficult to understand and evolve. No Abstraction with Layers Take this layered design: and […]

Lernen im Doppelpack – Review des ersten Retreat

Clean Code Development und Mountainbiking – das geht zusammen, das befruchtet sich, das macht auch noch Spaß. Anders kann mein Urteil nach 5 Tagen Retreat in Au im Bregenzerwald nicht ausfallen. Aber eins nach dem anderen: Nach einem Urlaub im Hotel Rössle in Au Ende September 2016 hatte ich die Idee, das Lernen von Clean […]

Zukunftsfähigkeit II – Korrektheit/Regressionsfreiheit

Ob Software schon und immer noch zukunftsfähig ist, wird im Review beurteilt. Den führt die Architektenrolle vor der Abnahme durch den Kunden umfassend durch. Geprüft wird auf Korrektheit und Wandelbarkeit Beide Facetten der Zukunftsfähigkeit haben Aspekte, die es getrennt zu betrachten gilt. Bei der Korrektheit ist das zum einen die Maturität. Die ist vorhanden, wenn […]

Zukunftsfähigkeit I – Korrektheit/Maturität

Unsauberer Code erfüllt Anforderungen. Er stellt gewünschtes Verhalten her. Das ist für den Kunden von höchster Wichtigkeit und vergleichsweise leicht zu überprüfen. Clean Code erfüllt dieselben Anforderungen – und noch mehr. Clean Code steht dirty code in Sachen Verhalten in nichts nach. Darüber hinaus jedoch erfüllt er auch noch die Anforderung Zukunftsfähigkeit. Die ist dem […]

Die Anforderungen auf die Füße stellen

Die üblicherweise ausgesprochenen Anforderungen des Kunden an eine Software sind: Funktionalität, z.B. die Software rechnet Effizienz, z.B. die Software rechnet schnell Und zwar in der Reihenfolge, d.h. zuerst muss die Software grundsätzlich die gewünschte Funktionalität haben, dann kann ggf. an ihrer Effizienz geschraubt werden. Schon diese beiden Anforderungen jedoch können nicht immer vollständig erfüllt werden. […]

Der Papertrail eines Trainings

„Wie läuft eigentlich ein Clean Code Development Training ab?“ werden wir immer mal wieder gefragt. Dann versuchen wir zu beschreiben, wie wir mit Übungen und Diskussion und am Flipchart arbeiten. Clean Code Development braucht hands-on experience, als Trainingsteilnehmer muss man „es“ getan haben. Und zwar nicht zu knapp, in vielen Wiederholungen. Immerhin gilt es, alte […]

Was Führungskräfte lesen (2017)

Der Jahresanfang ist ein guter Moment für die Orientierung. In welcher Richtung liegt doch gleich Ihr Ziel? Was wollten Sie erreichen? Haben Sie sich überhaupt etwas vorgenommen? Wenn Sie für 2017 Clean Code Development auf den Zettel schreiben, freuen wir uns natürlich besonders. Aber auch wenn nicht, wünschen wir viel Erfolg! Und wir können sehr […]

Frühjahrsputz 2016 – Gemeinsam ran an den Schmutz

Der Frühjahrsputz für Wohnung und Körper (Fasten) ist Tradition. Warum nicht diese schöne Tradition auch auf Ihre Codebasis ausdehnen? Dort gibt es sicher auch einige Ecken, die mal entrümpelt werden könnten, oder? Wenn Sie jetzt denken “Ja, müsste ich mal machen…”, sich aber nicht aufraffen können, dann verstehen wir das allerdings sehr gut. Aufräumen macht […]

Lernstoff in den Alltag überführen

Wie schaffen Sie es eigentlich, Clean Code Development Praktiken (und damit auch Prinzipien) in Ihren Alltag zu einzubauen? Diese Frage tauchte anlässlich einer Vorstellungsrunde in einem TDD 2.0 Training auf. Ein Teilnehmer sprach nämlich ausdrücklich davon, das sei sein Vorsatz. Über solchen Vorsatz habe ich mich natürlich sehr gefreut. Doch auf die Frage, wie hoch […]