Em suma, porque a fusão é muitas vezes outro lugar para algo dar errado, e só precisa dar errado uma vez para fazer as pessoas com muito medo de lidar com isso novamente (uma vez mordido duas vezes tímido, se você quiser). >
Então, digamos que estamos trabalhando em uma nova tela de gerenciamento de contas, e há um bug descoberto no fluxo de trabalho da nova conta. OK, tomamos dois caminhos separados - você conclui o Gerenciamento de Contas e eu corrijo o bug com Novas Contas. Como estamos lidando com contas, estamos trabalhando com código muito semelhante - talvez tenhamos que ajustar os mesmos códigos.
Agora, neste momento, temos duas versões diferentes, mas totalmente funcionais, do software. Nós dois temos um compromisso com nossas mudanças, nós testamos o nosso código e, independentemente, estamos muito confiantes de que fizemos um ótimo trabalho. E agora?
Bem, é hora de se fundir, mas ... porcaria, o que acontece agora? Poderíamos muito bem ir de dois conjuntos de software para um software unificado e terrivelmente quebrado de software com bugs, onde o seu Gerenciamento de Contas não funciona e as Novas Contas estão quebradas e eu nem sei se o bug antigo ainda está lá .
Talvez o software tenha sido inteligente e tenha dito que houve um conflito e insistimos em dar-lhe orientação. Bem, droga - eu sento para fazer isso e vejo que você adicionou algum código complexo que eu não entendo imediatamente. Eu acho que entra em conflito com as mudanças que eu fiz ... Eu te peço, e quando você chega um minuto você checa e vê meu código que você não entende. Um ou dois de nós têm que reservar um tempo para sentar, fazer uma mescla adequada e, possivelmente, testar novamente a coisa toda para ter certeza de que não a quebramos.
Enquanto isso, outros 8 caras estão cometendo código como os sádicos que são, eu fiz alguns pequenos consertos de erros e os enviei antes que eu soubesse que tínhamos um conflito de mesclagem, e cara, parece ser uma boa hora para fazer uma pausa, e talvez você esteja de folga durante a tarde ou preso em uma reunião ou qualquer outra coisa. Talvez eu deva tirar férias. Ou mude de carreira.
E assim, para escapar desse pesadelo, algumas pessoas ficaram com muito medo de compromisso (o que mais é novo, direito?). Naturalmente, somos avessos ao risco em cenários como este - a menos que pensemos que somos péssimos e vamos estragar tudo de qualquer maneira, caso em que as pessoas começam a agir com abandono imprudente. suspiro
Então lá vai você. Sim, os sistemas modernos são projetados para aliviar essa dor, e é suposto ser capaz de retroceder e rebaixar e rebaixar e liberar o freebase e o hanglide e tudo isso.
Mas é tudo mais trabalho, e nós só queremos apertar o botão no micro-ondas e fazer uma refeição de 4 pratos antes que tenhamos tempo de encontrar um garfo, e tudo parece muito insatisfatório - código é trabalho, é produtivo, é significativo, mas lidar com a mesclagem de um modo simples não conta.
Os programadores, como regra, precisam desenvolver uma ótima memória de trabalho, e depois tendem a esquecer imediatamente todos os nomes e escopos de variáveis e escopos assim que terminam o problema, e lidar com um conflito de mesclagem (ou pior, uma fusão mal administrada) é um convite para ser lembrado de sua mortalidade.