Drei Amigos

Programmierer, Tester und Business Analyst erreichen ein gemeinsames Verständnis des zu lösenden Problems

Wo Software entwickelt wird gibt es häufig neben den Programmierern auch hauptamtliche Tester und die sog. Business Analysts, also die Geschäftsprozessanalytiker. Eines der Ziele agiler Entwicklung ist die verschiedenen Rollen, welche an der Entwicklung von Software beteiligt sind, zwecks besserer Zusammenarbeit näher zusammenzubringen. Mit "Drei Amigos" wird ein Vorgehen beschrieben, welches in besonderer Weise diese funktionsübergreifende Zusammenarbeit fördert.

Business Analysts verstehen was der Auftraggeber will und leiten daraus eine Beschreibung der zu implementierenden Lösung ab. Tester nutzen diese Beschreibung, um zu überprüfen, ob die Software tut was sie soll. Für Programmierer stellt diese Beschreibung die Spezifikation dar, damit sie wissen was programmiert werden soll.

Immer dann wenn an einer "user story" gearbeitet wird, setzen sich die drei Freunde zusammen. Im Gespräch über die durch die "user story" repräsentierte Aufgabe erlangen sie ein gemeinsames Verständnis des zu lösenden Problems. Der Tester kann zusammen mit dem Business Analyst Akzeptanzkriterien entwickeln. Für den Programmierer ist diese Zusammenkunft nicht nur eine gute Gelegenheit zum Klären von Fragen, sondern sie bietet auch dem Analyst eine Möglichkeit neue Möglichkeiten zur Lösung des Problems zu erfahren. Schließlich mag es ja viel einfachere oder elegantere Lösungen geben, von denen der Analyst - der ja das Problem von außen betrachtet - gar nichts ahnte.

Weiterführendes Material

The Three Amigos by George Dinwiddie, 29.11.2011

Fit für die Zukunft

Arbeitsgruppen aus Spezialisten bringen un­ter­durch­schnitt­liche Leistung, weil die darin ver­sam­mel­ten Spezialisten nicht wirklich zielgerichtet zu­sammenarbeiten können. Die Grundlage für Erfolg ist immer technisches Können. Die Grundlage für dauerhaften Erfolg ist organisatorisches Können.

Gern unterstütze ich Sie bei der Entwicklung organisatorischer und technischer Fähigkeiten. Beispiele für dazu hilfreiche Maßnahmen sind:

Lernendes Team
Die Fähigkeit schnell zu lernen erlaubt Unter­nehmen jeder Art sich auf schnelle Ver­än­derungen im Markt gut anzupassen und dadurch fortwährend die Erwartungen von Kunden und Mitarbeitern zu erfüllen. Be­geis­ter­te Kunden beweisen den Erfolg!
Lean Startup
Beobachtung, Schluß­fol­ge­rung und Anpassung sind Schlüsseltechnologien. Lernen Sie durch kontrollierte Experimente, sorgsames Messen und Schlußfolgern Erkenntnisse für die weitere Unternehmensentwicklung zu gewinnen.
Agile Vorgehensweisen
Das Ziel agiler Vorgehensweisen war nie­mals das Ziel mehr Software schneller zu entwickeln (Effizienzsteigerung). Statt­des­sen geht es darum zielgerichteter die Ar­beit im Unternehmen zu organisieren - ganz egal, ob es dabei um Software­ent­wick­lung oder andere Tätigkeiten geht.
Defekte durch ATDD vermeiden
Auftraggeber und Entwick­lungsteam de­fi­nie­ren gemeinsam in Form einer aus­führ­baren Spezifikation was die zu entwickelnde Soft­ware tun soll.
Activity-Centered Design
Produkte mit gutem Design sind aus einem tiefen und umfassenden Ver­ständ­nis der Tätigkeiten des Anwenders her­vor­ge­gan­gen. Das macht sie fit für einen an­spruchs­vol­len Markt und besser als der Mitbewerb. In einigen Fällen kann dieser Unterschied zu gewöhnlichen Produkten einen ganzen In­du­strie­zweig auf den Kopf stellen.