Tradicionalmente, os sistemas de CI monitoram apenas a qualidade do código em uma ramificação de integração, sinalizando quando ocorrem regressões. A intervenção humana é necessária para reparos.
À medida que o número de desenvolvedores que trabalham no mesmo ramo aumenta, aumenta o risco de quebras / bloqueios. Eventualmente, chega-se a um ponto em que, em média, quando uma quebra é corrigida, uma nova aparece - o progresso no ramo se torna efetivamente insignificante.
Dividir em várias equipes, cada um trabalhando em um ramo de integração separado que seria mesclado em um momento posterior pode ajudar, mas estende bastante a duração do projeto, uma vez que simplesmente atrasa a integração necessária para um momento posterior ao adicionar agitação / ruído / departamento técnico relacionado a a integração parcial de ramificação individual é mesclada. Os custos também aumentam devido às configurações de IC para cada uma das filiais, cada uma com seus próprios recursos de construção / controle de qualidade, etc. E a qualidade geral não é necessariamente melhor.
A escalabilidade é, na melhor das hipóteses, duvidosa.
Existe um método para fazer com que projetos tão grandes sejam realmente dimensionados?