O famoso dilema do repo.
Este assunto provoca debates acalorados nas equipes que defendem Mono ou Mutirepo como a escolha a ser feita.
Esse tipo de troca pode parecer interminável e, além disso, distante das necessidades do negócio.
A escolha do modelo de repo afeta diretamente a capacidade dos atores de iterar rapidamente na cadeia de software.
Este artigo compartilha como alinhar seu repositório de acordo com seu contexto para entregar Qualidade em Velocidade.
Segue a QE Unit para mais conteúdos exclusivos de Quality Engineering.
Compreender as implicações das alternativas
Ter perspectiva sobre um problema e suas possíveis soluções dá uma melhor visão das implicações específicas de cada alternativa.
No caso do repo, isso nos permite identificar os prós e os contras, mantendo-nos factuais.
Quality, Speed, Complexity são os eixos de avaliação em Quality Engineering.
Sem debater por horas, o Multirepo tem um grau de complexidade superior ao Monorepo pela distribuição inerente ao modelo.
As arquiteturas distribuídas – embora compatíveis em ambos os modelos – contribuíram amplamente para popularizar multirepo por motivos errados.
Veja como decidir.
Se estiver iniciando, use um Monorepo
Use um Monorepo se estiver iniciando ou migrando um projeto com controle de versão.
O Monorepo é uma solução simples e rapidamente operacional que permite a colaboração de uma pequena equipa.
Um Multirepo apenas desaceleraria tudo.
Sua prioridade são iterações rápidas de ponta a ponta; portanto, não torne isso mais complexo com sistemas de branches múltiplas e ineficientes.
O ponto de arquitectura a manter é de modularizar seu código para facilitar a escalabilidade e possível isolamento em serviço posteriormente.
Mantenha o Monorepo em período de crescimento
Caso a start-up encontre seu mercado, entrará em um período de crescimento exigindo de melhorar e crescer seu produto.
Será desafiado a entregar mais recursos com mais código e mais desenvolvedores.
No lote, pelo menos uma pessoa empurrará o Multirepo.
Os argumentos de separação, dissociação e escalabilidade entrarão em jogo, sem necessariamente serem muito explícitos quanto aos objetivos do negócio.
Precisa manter o curso para evitar criar seus próprios problemas com mais tecnologia.
Certifique-se de implantar facilmente no Monorepo
Independentemente do modelo, o objetivo é manter a capacidade de entregar valor just-in-time, com velocidade e estabilidade.
Antes de avaliar qualquer mudança de modelo, certifique-se de poder entregar várias vezes ao dia com confiança.
Quanto às crianças, já é complicado com um, e mais ainda com vários.
Seu repositório deve ser suportado por processos e ferramentas alinhados aos seus desafios e modelos organizacionais.
Também são apenas esses critérios que podem fazer com que mude seu modelo.
Considere um Multirepo com maturidade e alinhamento
A mudança para um Multirepo deve ser motivada por um desejo de negócios que é então disseminado na cultura e estrutura da organização.
Passados os estágios anteriores de crescimento e entrega just-in-time, um Multi repo pode apoiar a descentralização de uma organização.
Ainda assim, tem que ser uma escolha de negócios.
Uma empresa historica separou seu histórico Monorepo em dois grandes repositórios para isolar a complexidade entre seu front e back office.
Pelo contrário, o Google é conhecido por ter mantido o modelo de repo para a maior parte de sua herança de código.
Escolha entre Mono e Multirepo para Qualidade em Velocidade
A tecnologia continua sendo a forma de resolver problemas para seus utilizadores, sem querer complicar suas vidas.
Manter uma cadeia de entrega de software just-in-time torna-se mais complexa em um ambiente que se reinventa constantemente.
A escolha mais simples reduz a complexidade e a possibilidade de induzir dívidas adicionais, fator diferenciador da aceleração.
Não tem tempo a perder entre diferentes repositórios, desde que o tamanho e o modelo organizacional o justifiquem.
Um bom número de empresas retrocede do Multi para o Monorepo quando não consegue mais entregar mudanças a tempo.
Foi o caso das Theodo.