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 […]
Kategorie-Archive: Allgemein
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 […]
A Different Perspective on a TDD Lesson – Terrain Generation, Part I: Analysis
How to do TDD on a not so simple problem? Robert C. Martin has published a lesson on that tackling the Diamon-Square algorithm for terrain generation. I think that’s a really interesting problem to consider as an exercise in software development to sharpen your skills. Today I presented it to a Clean Code training group […]
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 […]