우리는 특정 날짜에 릴리스 될 예정인 단일 제품 (개정 제어 Git 사용)에서 지속적으로 작업하는 약 200 명의 개발자로 구성된 조직입니다.
수많은 개발자로 인해 각 팀마다 약 10 명의 개발자가있는 "교차 기능"팀을 만들려고 노력하고 있으며 조직 내에 약 20 개의 개발 팀이 있습니다.
우리는 메인 리포지토리에서 지속적으로 "높은 표준"(개발자가 풀을 수행 할 때, 제품은 최소한 컴파일 가능해야 함을 의미 함)을 유지하기 위해 일종의 품질 게이트를 사용하려고합니다.
질문을 어떻게 표현해야할지 모르겠지만, 단일 제품을 개발하는 대규모 개발자 그룹을위한 개발 방법론에 대한 조언을 얻을 수 있을지 궁금합니다.
우리의 견해로는 스펙트럼의 한쪽 끝은 각 개발자가 기본 저장소에 직접 커밋하는 것이지만, 많은 수의 개발자 / 커밋으로 인해 "주 저장소"가 지속적으로 중단 될 수 있다고 우려합니다. 각 커밋마다 까다로운 "품질 게이트"를 가질 수 없습니다.
스펙트럼의 다른 쪽 끝은 (주요 리누스 토발즈 / 리눅스가 생각합니다) 트리 또는 피라미드 구조와 같을 수 있습니다. 여기서 "주 저장소"에는 세 개의 풀 소스 만 있고이 세 개에는 소수의 신뢰할 수있는 풀 소스 만 있습니다. 그러나 우리는 이와 같은 구조로 "주요 저장소"로 들어가기 위해 체인이 길어야한다고 생각합니다. 또한 병합 충돌이 발생하면 "원본 개발자"가 아닌 다른 개발자에게 문제가 발생합니다.
이 모든 배경 정보와 의견이 언급 된 상태에서 많은 개발자에게 권장되는 개발 방법을 배우고 읽을 수있는 방법은 무엇입니까? 대기업 (Microsoft, Facebook, Ubuntu 등)은 어떻게 개발을 구성합니까?