“Can you hear me now"?” ist ein sehr gutes Webinar von Mark Rickmeier/ThoughtWorks, in dem die Herausforderungen diskutiert werden, die auftreten, wenn in Projekten die Projektmitarbeiter weltweit verteilt sind und bei denen agile Methoden der Softwareentwicklung eingesetzt werden:
http://securerespond.com/thoughtworks/offshorewebinar/
Zunächst geht Mark auf grundlegende Herausforderungen bei verteilten Projekten ein:- Kommunikation,
- Beziehungen,
- Vertrauen.
Werkzeuge zur Kommunikation im Projekt
Instant Messaging (IM)
IM Tools dienen zum schnellen (synchronen) Austausch von Informationen. Man sieht, wann jemand verfügbar ist und schnelle – oft informelle – Chats sind möglich. Sehr gut geeignet auch als Fallback bei Telefonkonferenzen. Ausgesprochene Empfehlung: Camp Fire.- Anmerkung: Wir nutzen gerne Google Talk, da keine Installation nötig ist, weil ein einfaches Web-Interface existiert. Zudem hat nahezu jeder einen (ggf. kaum genutzten) GMail-Account und damit auch Google Talk.
Screen-Sharing
Werkzeuge für Screen-Sharing werden vor allem bei Projektmeetings eingesetzt, um die gleichen Dokumente zu sehen, darüber zu diskutieren und direkt gemeinsamt Änderungen daran vorzunehmen. Desweitere interessant für Reviews und beim Pairing über die Distanz. Ausgesprochene Empfehlung: YuuGuu.- Anmerkung: Wir machen seit Jahren sehr gute Erfahrungen mit dem Werkzeug eines Karlsruher Herstellers: “Netviewer”. So gut wie gibt es Probleme mit Netzwerkrestriktionen (Firewall). Das Produkt ist jedoch relativ hochpreisig.
Voice over IP / VOIP
Wichtigstes Tool bei internationalen Projekten, da es sehr einfach die (nahezu) kostenlose Kommunikation zwischen den Projektbeteiligten erlaubt. Ausgesprochene Empfehlung: Skype- Anmerkung: Teilweise wird Skype bewusst ersetzt durch eine Lösung, in dem die VoIP nur über unternehmensinterne Infrastruktur geleitet wird und offene Protokolle zum Einsatz kommen. In einigen Unternehmen ist zudem der Einsatz von Skype nicht gestattet.
Wiki & Collaboration
Informationen festhalten und austauschen. Ausgesprochene Empfehlung: MediaWiki & Confluence- Anmerkung: Sehr gute Erfahrungen haben wir mit Confluence gemacht. Vor allem wenn Jira als Werkzeug für Issue-Tracking eingesetzt wird, bieten sich sehr interessante Integrationsmöglichkeiten. Ein Dash-Board für ein Projekt oder eine Team-Seite ist damit schnell erstellt – inkl. dynamischer Daten (Issues, Stories) aus Jira.
Issue/Task Tracking
Um Aufgaben, Fehler und Risiken verwalten und allen Teammitgliedern zugänglich zu machen wird ein Issue/Task Tracker benötigt. Ausgesprochene Empfehlung: Mingel, Jira, BaseCamp.- Anmerkung: Wir haben sehr gute Erfahrungen mit Jira gemacht. Hierbei spielt gerade die Nutzung von zusätzlichen Issue-Attributen und Filtern eine wichtige Rolle, um z.B. Team-Backlogs zu erstellen, die sich aus mehreren Projekten zusammensetzen (Multi-Projekt-Multi-Team). Eine flexible Lösung, wenn Anfragen (Queries, Filter) aus Jira nach Excel exportiert und dort ausgewertet/aufbereitet werden sollen. Greenhopper (ein Jira Plugin für Scrum) scheint aktuell noch auf einzelne Jira-Projekte beschränkt zu sein.
Zusammenfassung
Meiner Meinung nach sind die genannten Werkzeuge sehr wichtig, um verteilten Projekten sinnvoll koordinieren/durchführen zu können. Zusätzlich muss natürlich auch die gesamte Entwicklungsumgebung auf verteiltes Arbeiten hin optimiert werden:- Testumgebung mit Zugriff für alle beteiligten Entwickler,
- Continuous Integration,
- Testabdeckungen,
- Standardisierung,
- direkt verfügbares Repository,
- Werkzeuge zur Auswertung von Code-Qualität,
- und viele andere Aspekte …