Codierungsstandards können sicherlich hilfreich sein, insbesondere wenn sie durch Richtlinien für die fortlaufende Integration und/oder Kontrolle der Quellcodeverwaltung unterstützt werden.
Definieren Sie zuerst die Standards und lassen Sie das Team sich darauf einigen (Management bricht die Verbindungen).
Zweitens, verwenden Sie automatisierte Tools (vorzugsweise mit IDE-Hooks), um Code-Formatierung zu behandeln.
Drittens, verwenden Sie automatisierte statische Analysetools, um die Konformität zu überprüfen. Diese können über die Validierung von Formatierungen und die Überprüfung von Codekomplexitätsmetriken, Namenskonventionen, Best Practices usw. hinausgehen. Die besseren können an die Regeln Ihres Teams angepasst werden. Suchen Sie nach Möglichkeiten, um unangemessene Warnungen über Metadaten (z. B. Attribute) zu unterdrücken. Die meisten Regeln haben Ausnahmen und Sie möchten das "Rauschen" von Fehlalarmen ausblenden.
Viertens: Integrieren Sie die statische Analyse in Ihr Quell-/Versionskontrollsystem, damit es beim Check-in ausgeführt wird. Einige Systeme erlauben das Ablehnen von Check-Ins, die keine Richtlinien bestehen. Eine weitere Option (die sich nicht gegenseitig ausschließt) besteht darin, einen Continuous Integration Server einzurichten, der beim Einchecken automatisch erstellt wird. Es kann eine statische Analyse ausführen und alle Entwickler auf Fehler hinweisen.
"Ego-Turnier" ist völlig orthogonal, nein? Das ist ein Problem, unabhängig vom Codebesitz. – Ken
kann es meiner Meinung nach nicht. es ist immer der Gnade von Menschen ausgeliefert, die Egos haben, es ist eine menschliche Schuld und wenn nicht jeder genau dieselbe Meinung hat (nicht die beste Idee für Kreativität im Team), dann wird dies immer passieren, es ist der Lead/Manager Job Entscheidungen darüber treffen, wie man im Falle eines Impasses am besten vorgehen kann. –
Der Nutzen von Shared-Code-Besitz deutet auf die Vorstellung hin, dass idealerweise Code von kalt berechnenden und emotionslosen Computern geschrieben wird, die gegenüber nichts bevorzugen, anstatt an Menschen, die an Dinge hängen. Die Technologie existiert noch nicht. –