Mob Programming

Conference Day - 10. März
 
16:30
17:15
 
Technology
 
Seminarraum 1.802

Der Begriff "Mob Programming" wurde von Hunter Industries erfunden. Er steht für einen Entwicklungsprozess, bei dem das gesamte Team gleichzeitig, am selben Ort und am selben Computer die selbe Aufgabe bearbeitet. In diesem Sinne ist es sehr ähnlich zum Pair Programming, bei dem zwei Entwickler auf diese Art gemeinsam arbeiten. Mob Programming zielt jedoch auf Teams mit 5-10 Entwicklern.
Warum Mob Programming?
Wenn Teams größere Aufgaben, z.B. Epics, bearbeitet sollen, haben dessen Mitglieder meist eine guten high-level Vorstellung von deren Umsetzung. Sobald es aber in’s Detail geht, wird es schwieriger. Z.B. gelingt es oft nicht, das Epic in kleinere, unabhängige Stories zu unterteilen, damit man als Team effektiv daran arbeiten kann. Hier kann es extrem hilfreich sein mit dem geballten Wissen des gesamten Teams (Entwickler, Tester, Product Owner, …) explorativ an der Aufgabe zu arbeiten. Auf diese Weise lassen sich sehr schnell Ungewissheiten klären und das gemeinsame Verständnis der Aufgabe stärken. Dabei entsteht in der Regel bereits ein solider Grundstein, wenn nicht sogar eine umfassende Lösung mit der alle vertraut und einverstanden sind.
Mob Programming ist hervorragend geeignet um neue Teammitglieder mit Coding-Guidelines, Prozessen und Konventionen des Teams vertraut zu machen. Aber auch “alte Hasen” profitieren vom Austausch in der großen Runde, können eigene Ideen mit dem Team teilen und ihrerseits neue Ideen aus dem gesamten Team aufnehmen. Nicht zuletzt macht das gemeinsame Arbeiten natürlich Spaß und verbessert den Teamgeist!
Eine häufige Kritik an der Idee des Mob Programming ist, dass die Arbeitsweise ineffektiv scheint. Die Meinungen und Berichte darüber gehen weit auseinander. Fest steht allerdings, dass ein Team schneller und mit höher Qualität arbeitet als ein einzelner Entwickler. Bei Konzentrationstiefs verhindert die Aufmerksamkeit der Kollegen Fehler, ständiges Weiterreichen der Tastatur verstärkt aktive Mitarbeit und die Entwicklung muss niemals auf die Verfügbarkeit anderer Teammitglieder mit Spezialwissen warten.
Eine Fülle detaillierter Informationen steht auf mobprogramming.org zur Verfügung. Einen “Mob Programming”-Tagesablauf im Zeitraffer kann man sich hier ansehen: http://bit.ly/MobProgrammingVideo (3:15 Minuten)
Was passiert in der “Mob Programming”-Session?
In dieser Live-Coding-Session werden die Teilnehmer zu Protagonisten. Als Mob werden wir ein Stück Software schaffen, in dem sich das beste Wissen und Können aller Mitglieder vereint. Jeder wird Code schreiben, jeder wird mitdiskutieren oder sich auf andere Weise einbringen. Das Schöne an Mob Programming ist, dass jeder sich so einbringen kann, wie es ihm am besten liegt und auf dem Gebiet auf dem er am meisten weiß. Unser Ziel ist dabei, die Arbeitsweise auszuprobieren und zu sehen, wie sich Code in einem größeren Mob entwickelt.
Die Aufgabenstellung wird vorgegeben und vom Product Owner (Teil des Mobs!) vertreten. Aufgrund des begrenzen Zeitrahmens ist Java als Programmiersprache und Eclipse oder IntelliJ als IDE vorgegeben, damit der Mob schnellstmöglich mit der Arbeit beginnen kann. Die konkrete Umsetzung, eingesetzte Frameworks oder Bibliotheken bleiben jedoch komplett dem Mob selbst überlassen. Auf diese Weise ist jede “Mob Programming”-Session einmalig und individuell. Niemand weiß, was der Mob kann. Aber er kann mehr als die meisten denkt.

Sven Amann

TU Darmstadt

Sven Amann studierte Informatik an der TU Darmstadt und der Pontifícia Universidade Católica do Rio de Janeiro. Bereits in seinem Studium setzte er sich intensiv mit Software Engineering, agilen Methoden und Projektmanagement auseinander. Zeitgleich sammelte er praktische Erfahrung als Werkstudent bei Software AG und als selbstständiger Softwareentwickler u.A. für die GFTN e.V. und die Laborgenossenschaft Darmstadt e.G.. Seit 2013 promoviert er am Fachgebiet Softwaretechnik der TU Darmstadt zum Thema "Assistenzwerkzeuge für Softwareentwickler". Seit 2014 wird seine Arbeit vom Führungskräfteentwicklungsprogramm Software Campus gefördert. Im Rahmen seiner Initiative "Let's Developer" veröffentlicht er seit 2014 Materialien über Softwareentwicklung und Softwarecraftsmenship auf letsdeveloper.com.