Wie können Kommunikation und Peer-Reviews in einem verteilten Scrum-Team erleichtert werden?

Wir haben ein Scrum-Team aus 3 Entwicklern, einem Scrum Master und einem Product Owner. Jeder arbeitet von zu Hause aus (mit Ausnahme des Product Owners, der in der Zentrale seiner Organisation arbeitet).

In der Vergangenheit haben wir formelle Inspektionen für Peer-Reviewing von Design- und Codekonzepten verwendet, um die Kommunikation zwischen dem Entwicklungsteam zu erleichtern. Allerdings werden die Peer-Reviews zugunsten der Umsetzung oft hinten angestellt. Die Peer-Reviews verwandeln sich in „Das habe ich getan, lasst uns die Überprüfung dokumentieren und weitermachen“ statt „Das ist, was ich überlege, was denkt ihr alle?“

Wir verwenden Skype und Webex, um mit Bildschirmfreigabe zu kommunizieren, und wir laden unsere Design-/Code-Überprüfungsdokumente für einen einfachen Zugriff auf Sharepoint hoch.

Eines unserer langfristigen Ziele ist es, auf CMMI-Level 3 bewertet zu werden, sodass die Dokumentation und Analyse der Ergebnisse unserer Peer-Reviews zur Verifizierung unserer Arbeitsergebnisse beiträgt. Allerdings möchte ich Peer-Reviews nicht der Dokumentation wegen befürworten. Ich möchte, dass das Entwicklungsteam mit seinen Kollegen kommunizieren möchte . Ich möchte das Team nicht damit überfordern, jede Kommunikation zu dokumentieren, aber ich möchte die Vorteile von Peer-Reviews erfassen, um sie zur Prozessverbesserung zu analysieren.

Fragen:

  1. Wie kann ein verteiltes agiles Team die Kommunikation erleichtern, ohne dass es sich wie eine lästige Pflicht anfühlt?
  2. Welche Softwareprodukte gibt es, die die Kommunikation in einem verteilten Team erleichtern können?
  3. Welche Peer-Review-Methoden würden unseren Zielen von People-over-Processes entsprechen und gleichzeitig die Ergebnisse für zukünftige Analysen effektiv dokumentieren?

Nur zur Perspektive, ich bin ein Junior-Entwickler, der von einem separaten Projekt versetzt wurde, um eine QA-Zweigstelle für das Unternehmen zu gründen, also recherchiere ich, wie man CMMI mit unserem Scrum-Projektmanagement implementiert. Wir arbeiten mit sehr begrenzten Ressourcen.

Danke schön.

Könntest du das nächste Mal bitte etwas länger warten? Ich hatte kaum Zeit, die Frage zu lesen, und jetzt gibt es bereits eine akzeptierte Antwort :-(
Tut mir leid, nächstes Mal warte ich länger. Ich kann die akzeptierte Antwort jederzeit ändern, wenn ich finde, dass eine andere Antwort besser geeignet ist. Ich versichere Ihnen, dass alle Kommentare und Antworten gelesen, geschätzt und gründlich berücksichtigt werden.
@Zsolt - Es ist nichts falsch daran, eine Frage mit einer akzeptierten Antwort zu beantworten, wenn Sie etwas Wertvolles zu sagen haben. Denken Sie daran, die Posts sind nicht nur für David, sondern auch für alle zukünftigen Besucher dieser Seite. :) Tue es!
@jmort253, ich weiß, aber ich mag den Spaß - Gamification - Teil, wenn es mehrere Fragen gibt und die beste gewinnt ;-)

Antworten (4)

Da niemand viele Ratschläge zu Softwareprodukten gegeben hat, möchte ich nur darauf hinweisen, dass Team Foundation Server 2012 Preview für weniger als 5 Benutzer kostenlos ist und eine großartige Ressource für die Verwaltung verteilter Teams und die Erleichterung der Kommunikation darstellt.

Um einige der Möglichkeiten hervorzuheben, wie es Ihnen helfen kann:

  • Codeüberprüfungen anfordern – Alle Änderungssätze können zurückgestellt und zur Codeüberprüfung an einen anderen Entwickler gesendet werden. Die Benutzeroberfläche ist sehr glatt und der Workflow wird verfolgt, indem automatisch ein Arbeitselement für Sie erstellt wird. Sobald die Codeüberprüfung abgeschlossen ist, können Sie den Änderungssatz aus dem Regal nehmen und ihn mit Ihrer aktuellen Version der Lösung zusammenführen (stellen Sie sich vor, dass dies einem typischen Verzweigungs- und Zusammenführungsszenario sehr ähnlich ist). Wenn Sie eine Codeüberprüfungsrichtlinie durchsetzen möchten, ist dies eine sehr gute Möglichkeit, dies zu tun. Sie können eine Richtlinie für das geschlossene Einchecken festlegen, die eine abgeschlossene Codeüberprüfung vor dem Einchecken erfordert, um dem Änderungssatz zugeordnet zu werden.

  • Webzugriff - Es wurde gegenüber der Version 2010 erheblich verbessert, wodurch es viel nützlicher wird. So ziemlich alles, was Sie für ein agiles Sprint-Planning benötigen, ist vorhanden. Priorisieren und verwalten Sie Ihren Rückstand neu, weisen Sie Arbeitsaufgaben, Burndown-Diagramme und vieles mehr zu.

Um Ihre Fragen konkret zu beantworten:

1) Kollaborative Sprint-Planung und Sprint-Review. Normalerweise ist dies am besten in der Mitte der Woche zu tun, weil Sie möchten, dass alle ständig dort sind. Verbringen Sie die erste Hälfte des Tages mit Frühjahrsrückblick und Retrospektive und die zweite Hälfte mit der Sprintplanung (passen Sie nach Bedarf an, vielleicht benötigen Sie für beides nur einen halben Tag). Auf diese Weise erledigen Sie einen Großteil des Verwaltungsaufwands an einem einzigen Tag. Versuchen Sie, während dieser Besprechungen so unauffällig wie möglich zu sein. Schreiben Sie Ihrem Team nicht vor, wie lange etwas dauern soll, sammeln Sie deren Meinung dazu, wie lange sie glauben, dass jede User Story dauern wird, schlagen Sie das von Ihrer Backlog-Priorität ab und fügen Sie dem aktuellen Sprint eine akzeptable Menge an Arbeit hinzu. Ich betrachte Projektmanager eher als Projektvermittler als alles andere. Ihre Aufgabe ist es, Ihre Entwickler in die Lage zu versetzen, ihre zu tun,

2) TFS 2012, wie oben beschrieben

3) Codeüberprüfungsanfragen sind großartig. Möglicherweise müssen Sie sie durchsetzen, indem Sie zunächst eine Richtlinie für das kontrollierte Einchecken erstellen, aber irgendwann können Sie sich hoffentlich davon entfernen, da Ihr Team ihren Vorteil in einer verbesserten Codequalität sieht. Für die Dokumentation ist gesorgt, da die Überprüfung als Arbeitselement Teil der Quellcodeverwaltung ist, also immer vorhanden ist. Dies kümmert sich auch um das Problem, Code-Review-Zeit für Entwicklungszeit zu opfern. Die Code-Review-Zeit wird buchstäblich zu einem Teil der Entwicklungszeit, und Ihr Team wird nicht das Gefühl haben, dass Sie es von seiner Arbeit wegnehmen, um etwas anderes zu tun.

Und noch eine letzte Anmerkung: Ich ziehe es vor, Teamdokumente in die Quellcodeverwaltung zu verschieben, anstatt in Share Point. 2012 wird TFS Änderungen erkennen, die von außerhalb von VS vorgenommen wurden, sodass sie einfach eingecheckt und gewartet werden können. Ich finde, dass ein einziges Repository es dem Team erleichtert, den Überblick über die gesamte Dokumentation zu behalten.

Danke für die Eingabe. Wir verwenden TFS zum Erstellen, zur Versionskontrolle und mehr. Ich werde es auf jeden Fall überprüfen.
Hallo @aclear16, warum würdest du sagen, dass Team Foundation eine gute Lösung ist? Bitte teilen Sie Ihre Erfahrungen damit. Erwägen Sie auch, die beiden anderen Fragen in Davids Beitrag zu beantworten, da einige Benutzer Ihre Antwort möglicherweise als unvollständig ablehnen. Auf PMSE bemühen wir uns, Inhalte zu veröffentlichen, die zukünftigen Besuchern helfen, indem wir erklären, warum unsere Antworten richtig sind. Willkommen in unserer Community und viel Glück! :)
Beachten Sie bitte die Änderungen.
Vielen Dank, dass Sie sich die Zeit genommen haben, alle meine Fragen zu beantworten, @aclear16. Wenn ich darf, würde ich gerne um eine kleine Erläuterung Ihrer Antwort auf Frage 1 bitten: Beziehen Sie eine Sprint-Retrospektive auf den Tag der Verwaltungskosten ein?
Ja Entschuldigung. Ich habe das oben bearbeitet, um dies widerzuspiegeln.

Sie kommunizieren nicht um der Kommunikation willen. Sie setzen kein Kommunikationsmittel ein, wenn Sie keine Botschaft zu übermitteln, keine Botschaft zu empfangen, keinen Boten oder kein Publikum haben.

Ein Teil Ihrer Kommunikation ist die Analyse, wer, was, wo, wann, warum und wie Kommunikation durchgeführt werden muss, dh BEDÜRFNIS. Wenn Sie feststellen, dass sie es nicht wollen, dann brauchen sie es vielleicht nicht ... oder sie brauchen die Botschaft, die Sie zu diesem Zeitpunkt auf diese Weise übermitteln, nicht.

Kommunikation ist einer der größten kritischen Erfolgsfaktoren für den Projekterfolg und es ist sehr, sehr schwierig, sie richtig hinzubekommen. Die Herausforderung besteht darin, die Methoden an das Projektumfeld, die Kultur, die Dynamik und die Persönlichkeiten anzupassen, die Sie an Bord haben. Und Ihr gesamter Entwurf liest sich, als hätten Sie diese Herausforderung nicht gemeistert.

Das erste, was Sie tun müssen, ist, sich das Fachwissen an Bord zu holen, wie man diese Dinge macht. Es gibt Berater, die sich ausschließlich auf diesen Bereich spezialisiert haben. Der zweite Schritt ist die Durchführung einer Stakeholder-Analyse, bei der Sie die meisten der oben genannten 5W- und H-Fragen beantworten würden. Wenn Ihre Analyse richtig durchgeführt wurde und Sie die Konsequenzen dieser Analyse anwenden, sollte die Kommunikation fließen. Schritt drei: Anpassungen.

Hier noch ein Tipp: Erforschen Sie Persönlichkeitstypen und angeborene Verhaltensweisen. Es gibt einen oder zwei Persönlichkeitstypen, die von hochtechnischer Arbeit angezogen werden. Mit diesem Typ oder diesen Typen sind konsistente Verhaltensweisen verbunden, und Sie müssen darauf eingehen, wenn Sie möchten, dass sich Ihre Kommunikation verbessert. Belohnung und Bestrafung werden sehr wenig bewirken.

Während ich dem Kommentar der ersten Antwort im Allgemeinen zustimme (Sie wollen nicht rein strafend sein; Sie brauchen positive Anreize usw.), ist es möglich, Menschen ohne explizite Belohnungen zu motivieren, sich in diese Richtung zu bewegen.

  1. Worüber das Management mit den Entwicklern spricht, ist das, worüber sie denken. Wenn das Management nur über Fristen spricht, werden die Entwickler darauf hinarbeiten. Wenn Sie anfangen, sich wöchentlich mit Ihren Entwicklern zu treffen, um den Prozess/die Tools von Code-Reviews zu besprechen, werden Sie feststellen, dass sie anfangen, mehr darüber nachzudenken und sich an dem Prozess zu beteiligen. Wenn Ihre Entwickler so etwas wie meine Entwickler sind, sind die Meetings allein eine Bestrafung (ohne explizit jemanden oder das Team als Ganzes zur Bestrafung aufzurufen). :) Schon ein kurzes 20-30-minütiges Meeting einmal pro Woche hilft ihnen, mehr über den Prozess nachzudenken und zu verstehen, dass das CMM-Ziel wichtig ist. Und im Laufe der Zeit wird das Reden über den Prozess zu Verbesserungen im Prozess führen, und DAS ist es, wo Sie hinwollen. Den Entwicklern die Kontrolle zu geben, um den Prozess zu verbessern, ist ein großer positiver Anreiz. Stellen Sie nur sicher, dass Sie klare Ziele für die Ergebnisse festlegen, und lassen Sie sie herausfinden, wie sie dorthin gelangen.

  2. Machen Sie sich die Dinge so einfach wie möglich. Aus diesem Grund müssen Sie mit den Entwicklern zusammenarbeiten, anstatt ihnen nur einen Prozess aufzuzwingen. Sie kennen die Tools besser als Sie (insbesondere wenn es um Code-Reviews geht). Schaffen Sie eine laborähnliche Umgebung, in der jeder experimentieren kann, um den Prozess zu verbessern und zu vereinfachen. Vereinfachen, vereinfachen, vereinfachen. Wenn der Tool-Overhead für eine Codeüberprüfung 2 Minuten beträgt, werden Sie viel mehr Aktion erhalten, als wenn der Tool-Overhead 15 Minuten beträgt. Entwickler werden zu lächerlichen Extremen gehen, um sich 15 Sekunden zu sparen, wenn sie etwas mehr als einmal am Tag tun müssen. Beispiel: Wir haben Subversion in meinem vorherigen Shop verwendet. Um Code-Reviews durchzuführen, musste der Rezensent die geänderten Dateien per E-Mail an den Rezensenten senden, der sie im Dateisystem speichern musste, darauf achten musste, aktuelle Dateien nicht zu überschreiben, einen Diff durchzuführen, Löschen Sie dann sorgfältig die überprüften Dateien, ohne seine bestehende Arbeit zu vermasseln. Dann fand jemand heraus, dass wir Subversion-Patch-Dateien für Code-Reviews verwenden könnten. Plötzlich war der Prozess das Versenden der Patch-Datei, der Prüfer speichert die Patch-Datei und lädt sie in ihren Client, der zeigt, welche Dateien und Änderungen geändert wurden. Es bestand keine Gefahr, dass ihre aktuellen Quelldateien überschrieben wurden, und sie konnten nach der Überprüfung bereinigen oder nicht bereinigen. Es spielte keine Rolle. Entwickler waren nicht glücklicher, sich an Code-Reviews zu beteiligen, aber sie waren weniger unglücklich darüber. Und um nicht zu untertreiben, jemand hat sich eine Verbesserung einfallen lassen; die Verbesserung wurde sofort umgesetzt; Die Entwickler fühlten sich besser, weil sie den Prozess verbessern durften. Dann fand jemand heraus, dass wir Subversion-Patch-Dateien für Code-Reviews verwenden könnten. Plötzlich war der Prozess das Versenden der Patch-Datei, der Prüfer speichert die Patch-Datei und lädt sie in ihren Client, der zeigt, welche Dateien und Änderungen geändert wurden. Es bestand keine Gefahr, dass ihre aktuellen Quelldateien überschrieben wurden, und sie konnten nach der Überprüfung bereinigen oder nicht bereinigen. Es spielte keine Rolle. Entwickler waren nicht glücklicher, sich an Code-Reviews zu beteiligen, aber sie waren weniger unglücklich darüber. Und um nicht zu untertreiben, jemand hat sich eine Verbesserung einfallen lassen; die Verbesserung wurde sofort umgesetzt; Die Entwickler fühlten sich besser, weil sie den Prozess verbessern durften. Dann fand jemand heraus, dass wir Subversion-Patch-Dateien für Code-Reviews verwenden könnten. Plötzlich war der Prozess das Versenden der Patch-Datei, der Prüfer speichert die Patch-Datei und lädt sie in ihren Client, der zeigt, welche Dateien und Änderungen geändert wurden. Es bestand keine Gefahr, dass ihre aktuellen Quelldateien überschrieben wurden, und sie konnten nach der Überprüfung bereinigen oder nicht bereinigen. Es spielte keine Rolle. Entwickler waren nicht glücklicher, sich an Code-Reviews zu beteiligen, aber sie waren weniger unglücklich darüber. Und um nicht zu untertreiben, jemand hat sich eine Verbesserung einfallen lassen; die Verbesserung wurde sofort umgesetzt; Die Entwickler fühlten sich besser, weil sie den Prozess verbessern durften. Es bestand keine Gefahr, dass ihre aktuellen Quelldateien überschrieben wurden, und sie konnten nach der Überprüfung bereinigen oder nicht bereinigen. Es spielte keine Rolle. Entwickler waren nicht glücklicher, sich an Code-Reviews zu beteiligen, aber sie waren weniger unglücklich darüber. Und um nicht zu untertreiben, jemand hat sich eine Verbesserung einfallen lassen; die Verbesserung wurde sofort umgesetzt; Die Entwickler fühlten sich besser, weil sie den Prozess verbessern durften. Es bestand keine Gefahr, dass ihre aktuellen Quelldateien überschrieben wurden, und sie konnten nach der Überprüfung bereinigen oder nicht bereinigen. Es spielte keine Rolle. Entwickler waren nicht glücklicher, sich an Code-Reviews zu beteiligen, aber sie waren weniger unglücklich darüber. Und um nicht zu untertreiben, jemand hat sich eine Verbesserung einfallen lassen; die Verbesserung wurde sofort umgesetzt; Die Entwickler fühlten sich besser, weil sie den Prozess verbessern durften.

Einsetzen. Vereinfachen. Wiederholen.

Ich mag Ihr SVN-Beispiel für Code-Reviews. Wir haben (kurz) versucht, E-Mail-Weiterleitungsüberprüfungen durchzuführen, bei denen der Autor den geänderten Code mit den Zeilennummern unterscheidet und ihn zur Überprüfung per E-Mail versendet. Das bloße Betrachten des Codes gab dem Rezensenten jedoch nicht genügend Einblick in den Gesamtzweck der Codezeilen. Wenn ich fragen darf, wie vermittelt Ihr Team das Gesamtdesign und den Zweck, damit der Überprüfer den Code besser verstehen kann?
Wir hatten Designdokumentationen in verschiedenen Formen, aber ich glaube, diese wurden von den Rezensenten selten zu Rate gezogen. Der Rezensent hat gerade den Code durchgelesen. Sie würden nach Dingen wie der Einhaltung von Codierungsstandards, offensichtlichen Codierungsfehlern, Fehlerbehandlung und Speicherlecks suchen. In unserem Shop war es nicht Sache des Rezensenten festzustellen, ob der Code die Designziele erreicht hat oder nicht. Wann immer möglich, wird die Überprüfung von den Entwicklern durchgeführt, die mit dem zu überprüfenden System am besten vertraut sind.

Im Allgemeinen werden die Leute nichts tun, wenn nichts für sie dabei ist. Wenn es also keine negativen Folgen für ihr aktuelles Verhalten und keine Belohnung/Auszahlung für das Durchlaufen des Peer-Review-Prozesses gibt, werden sie weiterhin tun, was sie tun. Es reicht nicht aus, nur ein Werkzeug zu finden, um etwas zu tun, Sie brauchen Motivation.

Es ist leicht, negative Konsequenzen zu ziehen, wenn zB keine Peer-Reviews durchgeführt werden. Nehmen Sie das Produkt einfach nicht an, wenn es keinem Peer-Review unterzogen wurde, und machen Sie den Hersteller für die Verzögerung seiner Leistung verantwortlich. Oder erzwingen Sie eine Überarbeitung, die ohne Peer-Review aufgefallen wäre.

Aber nur zu bestrafen reicht nicht aus und ist langfristig kontraproduktiv für die Motivation des Teams. Sie müssen das gute Verhalten belohnen. Look & Feel & Form dieser Belohnung hängen von den Motivatoren des Produzenten ab.