Wir sind eine Organisation, die aus rund 200 Entwicklern besteht, die ununterbrochen an einem einzigen Produkt arbeiten (unter Verwendung der Versionskontrolle Git), das zu einem bestimmten Zeitpunkt veröffentlicht werden soll.
Aufgrund der großen Anzahl von Entwicklern versuchen wir, "funktionsübergreifende" Teams mit etwa 10 Entwicklern in jedem Team zu erstellen, was zu etwa 20 Entwicklungsteams in der Organisation führt.
Da wir einen kontinuierlich "hohen Standard" (dh, wenn der Entwickler einen Pull ausführt, sollte das Produkt zumindest kompilierbar sein usw.) des Produkts im Haupt-Repository beibehalten möchten, möchten wir eine Art Qualitäts-Gates verwenden.
Ich bin mir nicht sicher, wie ich die Frage formulieren soll, aber ich frage mich, ob ich Ratschläge zu Entwicklungsmethoden für eine so große Gruppe von Entwicklern erhalten könnte, die an einem einzelnen Produkt arbeiten.
Unserer Meinung nach besteht ein Ende des Spektrums darin, es jedem Entwickler zu ermöglichen, sich direkt auf das Haupt-Repository festzulegen. Wir befürchten jedoch, dass aufgrund der hohen Anzahl von Entwicklern / Festschreibungen das "Haupt-Repository" ständig in einem defekten Stadium sein könnte Wir können nicht für jedes Commit ein anspruchsvolles "Quality Gate" haben.
Das andere Ende des Spektrums könnte wie ein Baum oder eine Pyramidenstruktur aussehen (wir glauben, Linus Torvalds / Linux macht das), in der das "Haupt-Repository" nur drei Pull-Quellen hat, diese drei haben nur eine Handvoll vertrauenswürdiger Pull-Quellen usw Wir haben jedoch das Gefühl, dass bei einer solchen Struktur Änderungen eine lange Kette haben müssen, um in das "Hauptlager" zu gelangen. Außerdem liegt das Problem bei einem Zusammenführungskonflikt bei einem anderen Entwickler als dem "ursprünglichen Entwickler".
Wie können wir mit all diesen Hintergrundinformationen und Meinungen die empfohlenen Entwicklungsmethoden für so viele Entwickler lernen und lesen? Wie strukturieren große Organisationen (Microsoft, Facebook, Ubuntu usw.) ihre Entwicklung?