Im ersten Teil der Blogserie Agile Patterns haben wir damit begonnen, leichtgewichtige Methoden der agilen Softwareentwicklung zu betrachten und haben den Ansatz der Crystal Methods im Überblick vorgestellt: Eine Sammlung von Methoden, basierend auf Alistair Cockburn, einen der Unterzeichner des Agilen Manifests. Er vertritt den Standpunkt, für jedes Projekt müsse aufgrund dessen Größe (gemessen anhand der Anzahl beteiligter Mitarbeiter) und dessen Kritikalität (von Kundenzufriedenheit bis zur möglichen Gefährdung menschlichen Lebens) ein angepasstes Vorgehen gewählt werden. Heute widmen wir uns den Prinzipien und der Philosophie dieses Vorgehens.
Cockburn beschreibt in seinem Buch Agile Software Development: Software Through People fünf typische menschliche Verhaltensweisen, die seiner Meinung nach zum Scheitern von Projekten führen.
Overcoming Failure Modes
- Making Mistakes
that is exactly why iterative and incremental development were invented. - Preferring to Fail Conservatively
rather than to risk succeeding differently - Inconsistent Creatures of Habit:
We resist learning new behaviors, and at the same time we tend toward inconsistency - Inventing Rather than Researching
the Not-Invented-Here (NIH) syndrome - Countering with Discipline and Tolerance
consistency in action is a human weakness, high-discipline methodologies are fragile. Even when they contain good practices, people are unlikely to keep performing those practices over time
Dem stellt er Erfolgsmethoden gegenüber.
Human Success Modes
- Being able to learn
People who are novices on one project become experienced by the end of the same project - Being malleable (adaptable)
People are remarkably able to act differently given new motives and new information - Being good at looking around
Looking around and noticing when something is not right - Taking pride in work
people develop a personal interest in seeing that their work is acceptable - Contributing and taking initiative
strong intrinsic motivators are also core contributors to project success
Die Essenz agilen Arbeitens fomulierte Alistair Cockburn kurz gefasst so:
Management Summary
- Arbeite in kurzen Iterationen
- Führe regelmäßig Retrospektiven durch
- Kommuniziere eng
Die Methodenfamilie Crystal baut auf sieben Prinzipien auf, die für alle Variationen gelten.
7 Prinzipien
- Frequent delivery
Funktionierenden und getesteten Code regelmäßig an Endanwender auszuliefern und Feedback zu erhalten. - Reflective improvement
Mithilfe von Reflection Workshops Möglichkeiten zu finden, das Vorgehen zu verbessern. Am besten in Form einer inkrementellen Produktentwicklung, bei der nach jeder Iteration eine Retrospektive im Team erfolgt. - Close or osmotic communication
Räumliche Nähe führt zu einem natürlichen Informationsfluss. Befindet sich das Team in einem einzigen Raum, verfügt jeder über die benötigten Informationen. Teams sollten daher nicht zu groß sein. - Personal safety
Jeder im Team muss die Sicherheit haben, Anregungen und Kritik äußern zu dürfen, ohne deswegen einen Schaden zu erleiden. Damit wird unterstützt, dass jeder Einzelne zum Projekterfolg beitragen kann, indem er oder sie sich einbringt. - Focus
Jeder Mitarbeiter kennt die Ziele des Projekts und seine Aufgaben. - Easy access to expert users
Erfahrene Anwender sind für das Projektteam erreichbar. Detailfragen können rasch und ohne Fomalitäten geklärt werden. - Technical environment with automated tests, configuration management and frequent integration
Continuous Integration, Durchführung von automatisierten Tests, Vorliegen von Versionierungs- und Konfigurationstools. Sie helfen dabei, Fehler frühzeitig zu erkennen und somit schneller zu lösen.
Philosophie

Shu Ha Ri, Quelle: https://commons.wikimedia.org/wiki/File:ShuHaRi.png
Cockburn bezieht sich in seinen Überlegungen zur Teambildung und zur Weiterentwicklung des Vorgehens auf das Lernsystem Shu Ha Ri. Dieses stammt aus der japanischen Kampfkunst und umfasst drei Stufen, ringförmig dargestellt.

Lernphasen des Aikido, Quelle: http://winfwiki.wi-fom.de/index.php/Beschreibung_und_Analyse_von_Crystal
- Shu– Follow the rule
- Ha– Break the rule
- Ri– Be the rule
Zuerst lernen wir durch Nachahmen. Indem wir Anweisungen befolgen. In dieser Phase geht es darum, Grundwissen vermittelt zu bekommen, Regeln zu verinnerlichen. Auf der zweiten Stufe beginnen wir, sie zu verstehen und zu hinterfragen, sie zu variieren. Um sie zu verbessern und ihrem Sinn noch besser zu entsprechen. Im fortgeschrittensten Stadium gelingt es uns, Ideen frei anzuwenden, Regeln zu überwinden, uns von ihnen zu lösen. Als Meister unsere eigenen Regeln aufzustellen.
Alistair Cockburn definiert daher Crystal als eine Sammlung von Agile Patterns für Fortgeschrittene, die sie situatativ anwenden und anpassen.
Im nächsten Blogartikel dieser Reihe werden wir uns mit einigen Erkenntnissen und Tipps beschäftigen, die Cockburn in der praktischen Anwendung seiner Methoden gesammelt hat. Stay tuned!
Quellen / Lesetipps:
Agile Software Development: Software Through People, Alistair Cockburn
Seminarbeit an der Universität Zürich (Hollenstein/Rutz), eine hervorragende Zusammenfassung, kompakt und übersichtlich
Interview mit Alistair Cockburn
The post Agile Patterns – Teil 2/4: Prinzipien Crystal Family appeared first on ANECON Blog.
Jobs of Anecon Software Design und Beratung GmbH
Software Test Berater (m/w)Software Test Manager (m/w)
Architekt Testautomatisierung (m/w)
Entwickler (m/w) für Automatisierungs-Frameworks Java/.NET bzw. SAP/ABAP