In unseren Lightning Talks teilen unsere Kolleg:innen ihre Geistesblitze und geben Impulse für die Projektarbeit.
AntiPatterns und ihr falsches Versprechen
AntiPatterns sind in der Welt der Informatik schon lange verbreitet. Oft werden diese aber nicht als solche bezeichnet: Eines der berühmtesten AntiPattern ist z.B. unter dem Namen „Spaghetti-Code“ bekannt und bezeichnet schlecht strukturierten, unnötig komplexen Code.
Hier offenbart sich auch schon das Wesen der AntiPatterns: Es sind Lösungsmuster, die zwar oft verwendet werden, aber in der Regel mehr schlechte als gute Folgen haben.
AntiPatterns definieren wie ihre Gegenstücke – die Design Patterns – ein Vokabular für die Kommunikation in der Softwareentwicklung. Dieses Vokabular vereinfacht die Kommunikation zwischen Softwareexperten und ermöglicht eine prägnante Beschreibung von Konzepten auf der Metaebene.
Eine systematische Betrachtung des Phänomens liefert das Werk von William J. Brown & Raphael C. Malveau „AntiPatterns – Refactoring Software, Architectures and Projects in Crisis“. Die Autoren setzen sich nicht nur mit den Ursachen auseinander, sondern haben auch einen Katalog mit gängigen AntiPatterns und dazugehörigen Lösungsvorschlägen ausgearbeitet.
Im Gegensatz zu „Code Smells“ im Bereich des Refactorings, die sich nur auf die Ebene der Programmierung beziehen, sind AntiPatterns dabei in drei Bereiche unterteilt.
Software Development, z.B.
- Golden Hammer: Eine wohlbekannte Lösung, die als Wunderwaffe gebraucht wird – auch wenn diese in dem verwendeten Kontext gar nicht geeignet ist.
- Poltergeist: Ein kurzlebiges Objekt für einen bestimmten Zweck (z.B. Initialisierung), das jedoch nicht konfigurierbar ist oder wiederverwendet werden kann
- Cut-and-Paste-Programming: Das Kopieren von Programmcode, wodurch dieselbe Logik an mehreren Stellen im Code vorhanden ist. Bei einer Änderung der Logik oder einem Bugfix müssen dann wieder alle Stellen gefunden und geändert werden, die betroffen sind.
Software Architecture, z.B.
- Reinvent the Wheel: Neuerstellung von Code, anstatt bestehende Lösungen und Frameworks zu verwenden
- Swiss Army Knife: Wenn unnötig viele Definitionen in eine Klasse gepackt werden
- Wolf Ticket: Orientierung an einem “Standard”, ohne die Konformität wirklich sicherzustellen
Project Management, z.B.
- Analysis Paralysis: Entscheidungslähmung, durch das Überanalysieren einer Situation
- Death March: Projekte, die sich ewig hinziehen, z.B. durch schlechtes Anforderungs- und Änderungsmanagement
- Mushroom Management: Klein halten von Mitarbeitern, indem sie „im Dunkeln gelassen“ werden und nicht informiert
Werden in der Kommunikation im Projekt AntiPatterns verwendet, ist ein gewisses Maß an Fingerspitzengefühl nötig, um Unstimmigkeiten zu vermeiden. Ein Bewusstsein für solche Muster, kann hingegen die Arbeit im Team erleichtern.
Bei eXXcellent solutions lassen wir uns deshalb von unseren Kernwerten leiten – empathisch, reflektiert und substanziell. Denn nur wer sich in ein Problem hineinversetzt, den gewählten Lösungsansatz regelmäßig hinterfragt und sich in der Tiefe damit befasst, erschafft eine passgenaue Lösung.