Agile SoftwareentwicklungDesign PatternsScrumSoftware ArchitekturSOLID

Die Macht der Verhaltensmuster

Scrum ist für komplexe Projekte entwickelt worden – Verhaltensmuster helfen sie einfacher zu machen. Diese Projekte zeichnen sich dadurch aus, dass die Anforderungen nicht stabil sind und es technische Risiken gibt.

Bei den Anforderungen gebe ich den Scrum Erfindern Recht. Technisch ist jedoch noch eine Menge Luft nach oben, um Komplexität in den Griff zu bekommen. Mein Statement dazu ist: Versuche komplexe Software in Einheiten zu zerschneiden, die nur kompliziert sind. Denn komplizierte Software haben wir im Griff.

Ich liebe agile Vorgehensmodelle und agile Softwareentwicklungstechniken wie TDD (Test driven Deveolopment). Je kleiner die zu entwickelnden Einheiten sind, desto besser lassen sie sie testgetrieben entwickeln.

Verhaltensmuster machen es möglich

Neben dem Design Pattern Seperation of Concerns, welches die Software erst einmal in sinnvolle Bereiche unterteilt (Teile und Hersche) sind Verhaltensmuster wie das Command Pattern,  das Strategy Pattern oder – mein Lieblingskandidat – Chain of Responsibility dafür geeignet dieses „schneiden hin zu kleinen Einheiten“ zu bewerkstelligen.

SOLID bekommt man auch noch fast automatisch geschenkt, vor allem das O, das Open Close Principle.

Die Frage ist: Warum werden diese Muster so wenig eingesetzt? Warum werden Softwareteile nicht „Prozessmäßig“ klein entwickelt und dann komponiert?

Statt beliebig viele

If .. then .. else

hintereinander zu schachteln ist es doch einfacher diese Blöcke als „Commands“ oder „Chains“ einzeln zu implementieren und dann hintereinander zu komponieren.

In meiner Blogreihe „Das Simple Command Frameowork“ möchte ich zeigen wie man Projekte so umbauen kann, dass sie einfach werden. Dazu stelle ich ein kleines Framework vor, welches ich selber implementiert habe. Ich habe es Simple Command genannt, auch wenn es eher eine Implementierung von Chain Of Responsibility ist. Das Projekt kann im Github ausgecheckt werden. Neben der Vorstellung des Frameworks werde ich auch darstellen, wie mal vorhandenen Code so umbauen kann, dass er in Richtung dieses Patterns refaktorisiert werden kann.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert