Es muss eine sinnvolle Kombination aller bisherigen Antworten sein. Wenn Sie von einer Gruppe intelligenter Leute (Entwickler) sprechen, müssen Sie ihnen letztendlich Gründe nennen, warum das Verhalten wichtig ist, und ihnen ausreichend Kontrolle darüber geben, wie dieses Verhalten implementiert wird, damit sie es richtig machen können. Mandate von oben sind in der Regel ein Problem für kluge Köpfe, denn wenn sie sich nicht darauf geeinigt haben, dass das Problem ein Problem ist, verbringen sie wahrscheinlich mehr Zeit mit der Erledigung des Mandats als mit der Befolgung der Regel.
Hier sind einige meiner Taktiken:
Änderungen bestätigen:
Zunächst muss sich das Team darauf einigen, wann und was zu begehen ist. Unabdingbar ist ein Build-Setup, das Sinn macht, damit die Leute sich nicht zurückhalten, nur weil sie nicht wissen, wo sie etwas ablegen sollen. Und ein Konsens darüber, wann und wie oft Sie einchecken sollten. "Brechen Sie nicht den Build" ist eine naheliegende gute Regel, aber wie wird das überprüft und wem wird davon erzählt? Eine andere Grundlinie ist "es wird nicht gemacht, wenn es nicht eingecheckt ist".
Die meisten Entwickler, die ich kenne, checken gerne den Code IF ein:
- Das Einchecken ist einfach
- Der Synchronisationsprozess ist einfach (Berücksichtigung von Änderungen anderer Entwickler)
- Änderungen zu sehen und zwischen Versionen zu wechseln ist einfach
Eine Sache, die mir kürzlich aufgefallen ist, war, dass das Einchecken häufiger und weniger schmerzhaft wurde, als wir uns auf ein neues CM-Tool vorstellten. Unser Team ist Vorreiter bei Rational Team Concert, das zuvor Clearcase verwendet hat. Ich möchte keine Werbung für Tools machen, aber die neue Welle von Streaming-Checkins mit vielen kleinen, schnellen Zusammenführungen macht es verlockender, früh und häufig einzuchecken.
Wenn Entwickler für die Beseitigung von CM-Schmerzen verantwortlich sind, erhöht sich in der Regel die Anzahl der Eincheckvorgänge.
Architektur einhalten - Modellprobleme in Views und Controllern nicht schreiben
Ich stelle das in den allgemeinen Klumpen von "die Architektur richtig machen". Ich bin damit einverstanden, wer auch immer Peer Reviews gesagt hat - der Gruppendruck ist dafür groß. Eine der Möglichkeiten, wie ich im Allgemeinen sehe, wie sich Menschen für Best Practices in diesem Bereich engagieren, ist, wenn ihre Kollegen sie fragen, warum sie es anders gemacht haben (der nicht so richtige Weg). Im Allgemeinen wird die "Warum" -Frage die Menschen auf den Weg bringen, sich selbst darüber klar zu werden, warum sie es anders hätten tun sollen. Wenn die Leute einen guten Grund für die Best Practice haben, ist es viel einfacher, daran festzuhalten.
Wenn eine Person formal mit einer Entscheidung verknüpft ist, kann es einfacher sein, Fehler in diesem Bereich zuzuweisen. Wenn also eine Person für die Behebung von Fehlern in einem Bereich mit fehlerhaftem Design verantwortlich ist, muss vorher etwas richtig gemacht werden Sie können zu etwas Neuem übergehen und Aufregendes kann ein großer Motivator sein.
Vermeiden Sie Hardcoding
Ich beginne mit klaren Codierungsstandards und der Integration einer Codierungsstandardüberprüfung in Peer Reviews. Hard Coding ist eines der Dinge, die leicht ein Kontrollkästchen auf einer Peer-Review-Agenda sein können.
Ich befürchte, dass dies die einzige Sache ist, bei der ich gesehen habe, dass es die Rolle des Teams ist, die zur Durchsetzung der Regel führt. In Teams, die ich geleitet habe, lassen wir im Allgemeinen niemanden weitermachen, bis er die Kommentare aus einer Peer-Review seines Codes korrigiert hat. "Keine harte Kodierung" ist ein häufiger Peer-Review-Kommentar.
Im Allgemeinen
Ich denke, mit fast jedem Best Practice müssen Sie Ihre Schlachten auswählen. Kein Team wird absolut perfekt. Aber Sie können Ihre Hauptschmerzpunkte im Auge behalten und sie in Gruppen angehen. Ich denke, es wird die Rolle des Führers, wirklich zu wissen, was für ein Problem das Team hat, im Gegensatz zu einer nervigen Eigenart eines bestimmten Individuums.
Wenn es Ihrem Team nicht gelingt, ein bestimmtes Best Practice zu bewerkstelligen, muss die erste Frage lauten: "Wie viel Schaden verursacht dies?" Wenn die Antwort "minimal" ist, dann ist es wahrscheinlich die Zeit nicht wert. Einige bewährte Methoden sind für bestimmte Systemtypen am relevantesten - obwohl sie insgesamt gut sind, lohnen sie möglicherweise nicht den Kampf um Systeme, bei denen die Praxis nicht häufig auftritt oder ein wesentlicher Teil des Systems ist.
Ist die Antwort auf "Wie viel Schaden?" ist "VIEL !!!", dann können Sie damit beginnen, dem Team zu zeigen, dass all diese Schmerzen und Leiden beseitigt werden können, indem Sie diesen einen Schwachpunkt in Best Practices festlegen. Die meisten Menschen sind glücklich, Schmerzen und Leiden zu vermeiden, und es ändert sich der Dialog von "Mach das, weil ich es dir gesagt habe" zu "Wir haben uns dazu entschlossen, weil es besser ist".