3 Kriterien agiler Software

Warum agile Entwickler nicht immer agile Software schreiben

Moritz Hoffmann

(c) shutterstock.com / Pictofigo

Gibt es agile Software? Oder gibt es nur Entwickler, die agil arbeiten? Wenn das englische Wort Agile im Sinne eines mittlerweile fast schon berühmten Textes des Agile-Pioniers Dave Thomas nur als Adjektiv Sinn ergibt, drängt sich die Frage nach agiler Software geradezu auf. Damit hat sich nun Prakash Balodi in einem Blogbeitrag befasst. Im Spannungsfeld von agilen Produzenten und ihren schwerfälligen Produkten entwickelt er einige Vorschläge, wie agile Software aussehen kann.

Was agile Entwickler sind, dürfte seit dem agilen Manifest und dem weit über die IT-Branche hinausreichenden Siegeszug von Agile klar sein. Es handelt sich um engagierte Menschen, die jederzeit bereit für Veränderungen in den alltäglichen Arbeitsabläufen sind, sobald das Produkt selbst oder neue Wünsche der Stakeholder diese erfordern.

Um dies nicht im Chaos enden zu lassen, sondern in einem Prozess kontinuierlicher Entwicklung, wiederholten Testens und schneller Auslieferung von Teilprodukten zu bleiben, bedienen sie sich einer ganzen Reihe von Tools und Methoden. Einige davon zählt auch Balodi auf: Regelmäßige Feedback-Runden und ständige Interaktion mit den Stakeholdern, weniger Dokumentation zugunsten von mehr Lieferungen, kurze Deadlines, Test-Driven Development und Continuous Integration. Unter Berücksichtigung spezialisierter Frameworks und Implementierungen ließe sich die Reihe noch weiter fortsetzen.

Die anti-agile Natur des Codes

Wir wissen also, was einfache Entwickler zu agilen Entwicklern macht. Soll die von Ihnen bearbeitete Software aber so gar nichts mit agilen Eigenschaften zu tun haben? „Change“ ist das mentale und praktische Schlüsselwort für agiles Entwickeln und tatsächlich kann auch Software auf ihre Veränderbarkeit hin geprüft werden. Ein Programmierer, hält Balodi fest, könne noch so agil arbeiten; wenn die Code-Basis zu komplex ist, sei mit ihr für eine wirklich agile Weiterentwicklung nicht viel anzufangen.

Dieses Problem trete zwangsläufig auf, wenn Software – wie sie es in der Regel ja auch soll – wächst. Immer mehr Module werden hinzugefügt und miteinander verknüpft, immer mehr Anforderungen und Abhängigkeiten sind die Folge. Jede Veränderung nimmt dann viel Zeit und Nerven in Anspruch. Weil Software sich nicht selbst als agil bezeichnen kann, wie es ihre Schöpfer tun, schlägt Balodi einige Paradigmen für die Entwicklung agiler Software vor. Seine Motivation mag mancher Agile-Berater als Provokation betrachten:

Developing Agile software makes developers Agile, Not the other way round!

Was macht Software agil?

Kurz und knapp: Es geht um leicht zu verändernden und leicht zu pflegenden Code. Das betrifft zunächst das Design. Eine Trennung von physikalischen und logischen Modulen, so Balodi, ist ebenso unerlässlich wie eine sorgfältige Suche nach den richtigen Abstraktionen und Komponenten. Die nächste Regel ist nicht unbedingt neu: Keep.IT.Simple. Dazu lohne es sich, jederzeit über Alternativen zum Altgewohnten nachzudenken:

Using native data structures of a language is always better than using custom data structures (Maps can be used in place of classes), polymorphism can be used in place of code branches. Its important to weigh the benefits of using any tool or library with its complexity and cost of maintenance

Unter dieser Maßgabe benennt Balodi auch seine dritte Empfehlung: das Test Driven Development. Dieses sollte nicht nur auf den Code, sondern auch auf das tatsächliche Produktverhalten angewandt werden. Vor allem kostenintensive Bugs im Design sollten so frühzeitig wie möglich identifiziert und behoben werden.

 Agile Technik von agilen Menschen?

Sicherlich kann es sich hier nur um einige Anhaltspunkte handeln. Und vermutlich wären auch noch einmal die Verfasser des agilen Manifests zu befragen, ob das Adjektiv agil nur Menschen oder auch Gegenständen anzuhängen ist. Mithin, ob agil nur sein kann, was agil gemacht wird oder ob es eines Bewusstseins als Grundlage für agiles Handeln und Verhalten bedarf. Grundsätzlich scheint Balodi aber einen guten Punkt zu machen. Agile Entwickler, die schlecht-schwerfällige Software schreiben, sind doch irgendwie ein Widerspruch.

Aufmacherbild: A man and a woman working togehter at a single computer via Shutterstock.com
Urheberrecht: Pictofigo

Verwandte Themen:

Geschrieben von
Moritz Hoffmann
Moritz Hoffmann
Moritz Hoffmann hat an der Goethe Universität Soziologie sowie Buch- und Medienpraxis studiert. Er lebt seit acht Jahren in Frankfurt am Main und arbeitet in der Redaktion von Software und Support Media.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: