Verteilte SCRUM-Teamprobleme: Die Arbeitsumgebung

8

Ein interessantes Thema erschien mir heute. Wann beginnen Sie in einem verteilten SCRUM-Team mit der Durchsetzung einer einheitlichen Arbeitsumgebung in Bezug auf Codeformat, IDE-Plugins (checkstyle & co), VCS, CI? Das Team befindet sich in einer Erkundungsphase und das Ziel ist kein Produktionsqualitätscode, sondern ein Proof-of-Concept. Ist es nicht ein Aufwand, einige gemeinsame Kodierungsregeln "a priori" durchzusetzen - bevor die Teammitglieder entscheiden, welche für ihre zukünftige Arbeit wirklich relevant sind? Die Verwendung dieser Art von Tools ist mit Sicherheit ein großer Vorteil, da sie als Heuristik dienen, um die technische Verschuldung zu minimieren, aber die Durchsetzung von Regeln als "No Trailng Spaces", die den Jenkins-Build wirklich brechen, scheint mir ein Overkill für eine Phase zu sein, die eher fokussiert werden sollte beim Eisschnabel als beim Erstellen von Produktionscode.

Erwähnung 1: Die erstellten Prototypen werden weggeworfen

Erwähnung 2: Obwohl ich mir wünsche, dass alles von Anfang an richtig gemacht wird, bin ich mir völlig bewusst, dass dies nicht zu 100% möglich ist.

Daniel Voina
quelle
+1 für das Wort einheitlich . Gute Möglichkeit, die Durchsetzung dieses Prozesses zu beschreiben.
Zachary Yates
2
+1 für zumindest den Glauben, Prototypen wegzuwerfen. Viel Glück dabei, aber die Versuchung, an einem angemessenen Codeblock festzuhalten, ist ziemlich groß.
Ross Patterson

Antworten:

6

Ich denke, das Problem besteht aus drei Teilen:

  1. Sie möchten technische Schulden / Kopfschmerzen sparen, indem Sie jetzt gute Regeln durchsetzen.
  2. Sie möchten die Teamgeschwindigkeit nicht töten, indem Sie alle mit unnötigen Regeln überhäufen.
  3. Sie kennen nicht genau die besten Regeln, die implementiert werden müssen, da sich das Projekt in einer Erkundungsphase befindet.

Ich habe beide Extreme ausprobiert (von keinen Regeln, verwenden Sie einfach dieselbe Quellcodeverwaltung, bis zu einer 20-seitigen Codierungsstil-Richtlinie + vielen anderen Prozessen).

Das einzige, was konsequent funktioniert, ist, das absolute Minimum zu akzeptieren, von dem ich weiß, dass ich es brauche und beweisen kann, dass ich es gerade brauche , und den Prozess regelmäßig zu überarbeiten . (Jeder Sprint in der Retrospektive ist ein guter Zeitpunkt dafür.) Dazu gehört auch das Entfernen von Restregeln.

Zachary Yates
quelle
1
Ich kann nicht mehr zustimmen. Beginnen Sie mit dem erforderlichen Minimum und überarbeiten Sie es nach Bedarf, insbesondere weil Sie sich in einem Erkundungsmodus befinden.
David M
Weise! Interessante Punkte, um meine Argumente für ein gemeinsames Mindestmaß an nicht behindernden Kontrollen aufrechtzuerhalten.
Daniel Voina
4

Ich denke, das hängt wirklich von den Teams ab und davon, wie sehr Sie sich für Checkstyle interessieren. Ich bin damit einverstanden, dass wir Regeln haben sollten, um unnötige Fehler zu vermeiden. Einige Regeln sind jedoch eher ärgerlich als produktiv. Ich denke, Sie müssen sich im Team darauf einigen, welche Regeln notwendig und unnötig sind.

Das Festlegen von Jenkins-Jobs für Checkstyle oder Firebug ist ebenfalls gut, aber Sie müssen sich erneut darauf einigen, wie streng Sie dies wünschen. Ich war in einer Situation, in der jemand gegen eine Checkstyle-Regel verstoßen hat und wir verhindern, dass sich jemand verpflichtet. Auf lange Sicht wird es nur die Leute nerven. Wenn Sie sagen, dass die Leute nicht viel aufpassen müssen, werden sie sie wieder ignorieren. In meinem Team sind wir uns also einig, dass der Qualitätsjob nicht schlecht ist, solange er nicht schlecht ist. Es muss vor dem Ende des Sprints blau sein.

Mein Vorschlag wäre also, das Meeting zeitlich zu planen, damit Sie nicht viel Zeit damit verbringen, Regeln zu erstellen und über Regeln zu diskutieren.

Einige Gedanken, moderne IDEs haben ein Checkstyle-Plugin, um die Leute zu warnen, wenn einige Regeln verletzt wurden. Das Team kann sich darauf einigen, dies nur während der Codeüberprüfung zu überprüfen, bevor sie sich verpflichten. Das hilft auch meinem Team.

Spielzeug
quelle
2
  • Jede IDE, mit der Sie sich nicht schneller entwickeln, ist kein Werkzeug, sondern ein Bootsanker. Wirf es über Bord und schau niemals zurück.
  • Wenn Sie bereits über eine CI-Infrastruktur verfügen, verwenden Sie diese ab Tag 1. Sie werden sich später bedanken, auch wenn es Ihnen wirklich gelingt, Ihren Prototyp-Code zu löschen.
  • Verschwenden Sie umgekehrt keine Zeit damit, ein CI-System einzurichten, wenn Sie keines haben. Die Kosten sind zu hoch und Sie hoffen wirklich, von vorne zu beginnen.
  • Beginnen Sie mit einem VCS an Tag 1. Zeitraum.
Ross Patterson
quelle
Ausgehend von VCS! Es gibt keinen anderen Weg. Das Senden von Code per E-Mail ist nicht mehr in Mode :)
Daniel Voina
1

Ich würde vorschlagen, mit der Umsetzung des Konzepts einer einheitlichen Arbeitsumgebung zu beginnen, sobald sich die Geschwindigkeit des Teams zu stabilisieren beginnt. Dies kann zu Beginn des Projekts zu einer technischen Abteilung führen, zu Beginn eines Projekts ist jedoch immer eine technische Abteilung vorhanden. :) :)

Normalerweise gelingt es mir, dem selbstorganisierenden Aspekt eines Teams zu ermöglichen, etwas zu finden, das für sie und ihre Anforderungen angemessen ist. Präsentieren Sie dem Team im Grunde eine Beschreibung eines Problems, z. B. das Versagen von Jenkin Builds, und geben Sie ihm die Möglichkeit, es zu beheben.

Dies führt normalerweise zu einer minimalen Implementierung einer Lösung, wie Zachary Yates in seiner Antwort erwähnt hat.

Ich würde bemerken, dass es zu Ihren Gunsten zählen würde, wenn Sie jemanden mit einem hohen technischen Niveau / einer Position haben, der eine subtile Anleitung bietet, nur um dem Team zu helfen, nicht komisch zu werden, mit was es sich entscheidet. :) :)

David 'der kahle Ingwer'
quelle