Beiträge getagged ‘Softwarequalität’

CCD in Brownfield Projekten – Teil 4

20 Juli 2010

Nach langem Warten ist es endlich so weit. Stefan Lieser und Ralf Westphal haben auf heise developer den vierten Teil ihrer Artikelreihe “CCD in Brownfield Projekten” veröffentlicht. In den letzten 3 Teilen haben die beiden beschrieben, wie ein Sicherheitsnetz, bestehend aus Quellcodeverwaltung, automatisierten Tests und automatischer Produktion, aufgebaut wird. In dem vierten Teil geht es nun darum, den Überblick in gewachsenen Brownfieldprojekten wiederzuerlangen.

Grundtenor des Artikels ist “Teile und Herrsche”. Die Architekten betrachten unter diesem Aspekt die enge Verwobenheit von GUI, Programmlogik und Datenhaltung, die wohl in jedem Brownfieldprojekt vorzufinden sein dürfte. Meist besteht eine Anwendung aus einer GUI sowie einer Datenhaltung. Und genau hier setzen die beiden Architekten an und erörtern recht gekonnt, warum genau dieser Umstand sowohl den Quellcode als auch die Entwickler in enge Schranken zwängt.

Als Abhilfe öffnen Ralf und Stefan den Blick für eine Vielzahl an GUIs sowie eine Vielzahl an Datenhaltungen. Jede spezialisiert auf ihren Einsatz. Klingt erst einmal komplizierter und nach mehr Arbeit. Ist es vielleicht auch. Aber durch diese Betrachtungsweise öffnen die beiden den Blick für die Partitionierung einer großen Softwareanwendung. Kleinere Partitionen mit klar abgesteckten Aufgaben sind leichter zu handhaben und zu überschauen als eine große Eierlegendewollmilchsau-Anwendung. Ganz im Sinne von “Teile und Herrsche”.

Neugierig geworden? Ich hoffe doch. Denn die Lektüre von CCD in Brownfield Projekten – Teil 4 ist sehr empfehlenswert.

Alle dotnetpro Dojos als PDFs zum Download

21 Juni 2010

Ich hatte ja bereits vor einiger Zeit von Katas und Dojos in der Softwareentwicklung geschrieben und fand damals schon die Idee, die dahinter steckt, recht gut. Nun haben sich in der .NET Szene Katas und Dojos recht weit verbreitet. Nicht zuletzt erscheinen in der dotnetpro regelmäßig Dojos zum Üben.

Wer nun denkt sich alle Hefte in denen die Dojos abgedruckt waren kaufen zu müssen, liegt falsch. Die Herausgeber der dotnetpro stellen freundlicherweise alle bisher veröffentlichten Dojos als PDFs zur Verfügung. So kann jeder Programmierer die Übungen jederzeit nachprogrammieren oder ein kleines Kata mit Kollegen oder Bekannten durchführen. Eine schöne und einfache Möglichkeit, seine Programmierfähigkeiten zu trainieren.

CCD in Brownfield Projekten – Teil 3

19 März 2010

Die Artikelserie über das Bereinigen von unsauberen Code in gewachsenen Anwendungen geht in die dritte Runde. Diesmal zeigen Stefan Lieser und Ralf Westphal wie sie das Sicherheitsnetz aus Teil 2 um automatisierte Tests erweitern.
» Weiterlesen: CCD in Brownfield Projekten – Teil 3

CCD in Brownfieldprojekten – Teil 2

24 Januar 2010

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.

» Weiterlesen: CCD in Brownfieldprojekten – Teil 2

Von Katas und Dojos in der Softwareentwicklung

26 November 2009

Den 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 2009

Ich 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 2009

Was 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.

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Deutschland
This work by Andreas Richter is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Deutschland.