Das Agile Manifest unterstreicht die Wichtigkeit und Art der Kommunikation im Software-Entwicklungsprozess. Zwei der zwölf Prinzipien unterstreichen dies:
Geschäftsleute und Entwickler müssen während des gesamten Projekts täglich zusammenarbeiten.
Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist die persönliche Konversation .
Bei meinem aktuellen Projekt sind die fünf Mitglieder unseres Entwicklungsteams in vier Städten in drei Bundesstaaten verstreut. Geographisch verteilte Teams scheinen immer häufiger anzukommen, da Telearbeit / Fernarbeit und Offshore-Entwicklung sich ausweiten.
Wenn ein Team nicht von Angesicht zu Angesicht sein kann, wie können Werkzeuge und Technologie eingesetzt werden, um Praktiken wie tägliche Stand-up-Meetings, Code-Reviews, Paar-Programmierung und das XP-Konzept des "ganzen Teams" effektiv zu machen? Wie können diese Praktiken selbst auf ein geografisch verteiltes Team zugeschnitten werden?
Dies sind Ergebnisse, die mein Arbeitgeber von einem massiven verteilten Projekt präsentiert hat.
Stellen Sie sicher, dass sich das Team sowohl beim Start des Projekts als auch während des gesamten Projekts persönlich trifft. Stellen Sie sicher, dass alle in sozialen Veranstaltungen enthalten sind.
Bereiten Sie sich darauf vor, für gute Kommunikationsausrüstung aufzukommen. Kaufen Sie keine Mistmikrofone - suchen Sie nach anständigen Telekonferenzgeräten. Stellen Sie sicher, dass Sie über genügend Bandbreite verfügen, um das zu handhaben.
Finden Sie gute Tools für die Zusammenarbeit und bleiben Sie dabei.
Fügen Sie Fotos von Personen zu virtuellen Besprechungsräumen hinzu - es ist viel einfacher, mit einem Gesicht zu sprechen, selbst wenn es nur ein Foto ist.
Kommunizieren Sie die Vision des Projekts so oft wie möglich, um sicherzustellen, dass die Leute auf Kurs sind.
In der Reihenfolge der Priorität:
Ich bin in einer ähnlichen Situation in einem Team. Wir haben den ganzen Tag über einen Skype-Gruppen-Chat im Einsatz, ein großer Vorteil, und wir erweitern die Idee auf andere Projekte, die nicht agil oder geografisch verteilt sind.
Wir stehen täglich am Telefon, aber dieses Treffen braucht die Unmittelbarkeit und das Feedback echter Sprachkommunikation. Wir stehen jeden Tag am Telefon und telefonieren dann (noch am Telefon), wenn es komplizierte Probleme für den Tag gibt, die besprochen werden. Den Rest des Tages arbeiten alle an ihren Aufgaben und nutzen Skype zur Koordination. Es funktioniert gut.
Ich habe festgestellt, dass Sie wirklich vorsichtig sein müssen, wenn Sie nach Werkzeugen suchen, die "alles machen". Das Problem ist, dass Sie am Ende Ihren Prozess ändern müssen, um das Tool zu verwenden, anstatt das Tool zu verwenden, um Ihren Prozess zu unterstützen. Dies kann in Ordnung sein, wenn der neue Prozess, der durch das Werkzeug diktiert wird, besser ist, aber in vielen Fällen nicht.
Sieh dir jedoch Lagerfeuer an. Es ist wie eine Kreuzung zwischen einem Wiki, IM und IRC. Es ist wirklich ziemlich gut für freie Form Gruppenkommunikation mit Geschichte und etwas Struktur.
Ich mag auch BaseCamp (von der gleichen Firma, 37signals) - es ist eher eine Aufgabenliste / Diskussion / Projekt-Tracking-System . Mehr Werkzeuge als nur Lagerfeuer.
Das Schöne an beiden ist, dass sie ziemlich leicht sind - benutze sie, um zu helfen, was du tust, anstatt es zu behindern.
Und schließlich - Skype . Stellen Sie sicher, dass die Leute keine Angst haben, den "Anruf" -Knopf zu drücken. Stellen Sie sicher, dass die Leute den Status "besetzt" haben und dass sie respektiert werden. Lassen Sie die Leute darüber nachdenken wie Büros mit Türen, kein Telefonanruf.
Für diejenigen, die das Lagerfeuer satt haben, gibt es seit kurzem Jaconda.im , chatte als GTalk / Jabber-Kontakt. Wir benutzen es in unserem Team und lieben es irgendwie, keine Notwendigkeit, etwas zu installieren.
Sie erstellen dort einfach einen "Raum" und geben jedem den Kontakt, mit dem Sie chatten möchten, und Sie haben Ihren Chat-Raum in Ihrer Kontaktliste.
Standups, Sprint-Planung, Retrospektive und Schätzungen sind einige der wichtigsten Zeremonien in agil und idealerweise sollte von Angesicht zu Angesicht getan werden, was dem Team mehr Zusammenhalt gibt und zu einem besseren Teambuilding führt. Um dies für ein verteiltes Team zu erreichen, würde ich vorschlagen,
zu folgenJust-in-time-Feedback / Hilfe ist wichtig für verteilte agile Teams, da ein Blocker auf den nächsten Tag ausgedehnt werden kann, falls ein Tool oder eine Praxis fehlt, um Teammitglieder zu erreichen. Tools wie slack sind wirklich effektiv. Erstellen Sie einen Kanal für Ihr Team und kommunizieren Sie effektiv dort. Es ist eine gute Übung, Ihren Blocker im Team-Kanal zu kommunizieren, damit jeder aus dem Team Ihnen weiterhelfen kann.
Code-Reviews sind auch wirklich wichtig, obwohl meistens keine persönliche Konversation erforderlich ist, also sind Tools wie GitHub wirklich hilfreich. Peer-Programmierung kann über Google Hangout erreicht werden. Was wir normalerweise in unserem Team tun, falls einer der Teammitglieder möchte, dass andere Teammitglieder in ihren / ihren Code schauen, während sie / er gerade daran arbeitet, gehen wir normalerweise zum Hangout und teilen unsere Bildschirme und Peer Reviews gegenseitig Arbeit. Haben Sie mehrere große Bildschirm Hilfe hier.
In erster Linie versuchen Sie, einen Großteil Ihrer Kommunikation zu behalten, aber versuchen Sie, so weit wie möglich Video Conf Tools zu verwenden und falls es möglich ist, sich mindestens einmal in 3 Monaten zentral an einem Ort zu treffen und eine Woche oder zwei zusammen zu arbeiten. p>
Fowler hat über Offshore-Entwicklung geschrieben, aber in Ihrem Fall trifft es nicht direkt zu. Es ist immer noch eine gute Lektüre. Ich würde vorschlagen, so viel wie möglich mit Collaboration-Tools (IRC, Wikis, Skype, IMs) zu arbeiten und, wenn es möglich ist, viele Face-to-Face-Treffen zu arrangieren.
Wir haben etwas davon gemacht - Sie können etwas arbeiten, um die Probleme zu lindern, aber es ist ein Durcheinander.
Halten Sie Ihre Status-Meetings am Morgen am Telefon ab, jeder muss ständig IM sein und Sie können über VNC / Videokonferenz eine Verbindung herstellen, aber das funktioniert nicht immer.
Sehr lange Telefonanrufe - Wenn ich ein Mitglied aus dem Büro hatte, würde ich oft die Leitung um 9 Uhr morgens öffnen und bis zum Mittagessen weitermachen - dann wieder verbinden wie nötig.
Das ist eigentlich eine interessante Idee - Erstellen Sie eine ständig aktive Freisprecheinrichtung mit Software, so dass alles, was Sie tun, automatisch von den anderen Büros übernommen wird. Es ist viel einfacher, einfach zu sagen: "Hey, Jim, wie ist der Deal mit Zeile 203?"
Frühcheck, Check-in OFT. Ständig, wie jede Stunde, max.
Eine Art Gruppen-Chat-Tool funktioniert sehr gut. Ich habe einen Monitor und Lautsprecher in meinem Cube mit einem benutzerdefinierten MSN Messenger-Account eingerichtet, der jedem (das Konto hatte nur Teammitglieder als Freunde) das Privileg gab, einen Video-Chat zu starten.
Außerdem habe ich oft eingecheckt (sobald ich etwas kompilieren konnte, vorausgesetzt es würde keine Tests brechen) und habe es oft geschafft.
Sehr oft tauchte ein Kollege auf dem MSN-Monitor auf und bat mich, etwas zu tun, weil sie etwas Wichtiges eingecheckt hatten. Ich würde es einfach machen, ohne den Kopf zum Monitor zu drehen. Das Fernäquivalent deines Kollegen rüber im nächsten Würfel brüllt dich an, um spätestens zu kommen. Funktioniert ein Charme:)
Tags und Links language-agnostic agile collaboration