Michael HönnigMichael Hönnig

Clean Code Developer (CCD) ist eine Initiative, die es sich zum Ziel gesetzt hat, Prinzipien und Praktiken aufzustellen, die zu besserer Software führen sollen. Die beiden Initiatoren kommen aus der .NET Welt kommen. Die CCD Initiative öffnet sich jedoch immer mehr, und die Prinzipien und Praktiken sind auch zumindest für alle objektorientierten Programmiersprachen gültig. Lediglich die Tools sind logischerweise weitestgehend sprachabhängig.

CCD fasst viele Prinzipien, wie z.B. DRY (Don't repeat yourself), KISS (Keep it simple, stupid), DI (Dependency Injection), SoC (Separation of Concern) etc. sowie Praktiken, wie z.B. Root Cause Analysis, die Verwendung eines Versionskontrollsystems, Refactoring, Unit-Testing, Continuous Integration and Deployment etc. zu insgesamt 5 Phasen zusammen, die im CCD Grade genannt werden und denen je eine Farbe zugeordnet ist. Ergänzt werden diese 5 Grade durch eine Interessenten-Phase (schwarz) und eine Phase, in der alle Prinzipien und Praktiken berücksichtigt werden (weiß). CCD-Poster Wer mit CCD beginnt, wird zunächst mit dem roten Grad beginnen, und sich dann über orange, gelb, grün und blau weiter vor arbeiten. Dann folgt eine Phase, der weiße Grad, in dem für 21 Tage alle zuvor geübten Praktiken und Prinzipien gleichgewichtig in die tägliche Arbeit integriert werden. Um zu verhindern, dass einzelne Prinzipien und Praktiken dabei nach und nach wieder aus der täglichen Arbeit verschwinden, wird vorgeschlagen, nach diesen 21 Tage im weißen Grad wieder von vorne zu beginnen und so auf die jeweiligen Schwerpunkte der einzelnen Grade den Fokus setzen zu können.

So gesehen stellen auch die Grade keine Rangfolge dar, schon gar nicht für den jeweiligen Entwickler, der gerade an einem der Grade arbeitet. Mir persönlich hätte daher auch der Begriff "Phase" besser gefallen. Welche Prinzipien und Praktiken zu welchem Grad gehören, habe ich in Form eines Posters zusammengestellt: ODF Draw (z.B. für OpenOffice.org Draw), PDF (A4), PNG (A2).

Zu CCD gibt es eine Website und eine XING-Gruppe.

Für mich ist CCD ein interessanter Ansatz, bessere Software zu entwickeln. Durch die strukturierte Gruppierung der verschiedenen Prinzipien und Praktiken, eingebettet in ein Modell, diese Phasen zu durchlaufen, könnte sich mehr entwickeln, als nur die Summe der Einzelteile. Auch könnte CCD ein Baustein bei der Zusammenstellung hochproduktiver Entwickler-Teams sein, denn schon in einem Team von Entwicklern mit gleichermaßen hohen Ansprüchen an ihre Arbeitsergebnisse sind die Reibungsverluste einfach geringer.