Comecei um trabalho como programador júnior há alguns meses. O sistema em que estamos trabalhando está em produção há ~ 2 anos. Eu não estava envolvido no começo do sistema e no design.
Uma coisa que notei é que a versão principal do sistema já é 11.YZ. De acordo com minha experiência trabalhando com outros sistemas e bibliotecas, não me lembro de ter visto um produto lançando a versão principal tão rapidamente. Existem produtos que existem há anos no 1.XY e ainda recebem recursos e correções.
Supondo que o controle de versão semântico seja usado corretamente, isso indica que o sistema é mal projetado, pois faz grandes alterações de quebra quase a cada quatro meses?
versioning
semantic-versioning
user367035
fonte
fonte
Respostas:
Não necessariamente.
Você mencionou nos comentários que esta é uma API interna. Quebrar uma API é ruim, porque você quebra o código de todos. Mas para uma API interna, "todo mundo" é apenas "você", e você é perfeitamente capaz de coordenar essas alterações de API consigo mesmo; portanto, a dor geralmente associada às alterações de API é muito menos pior.
Além disso, a média pode ser maciçamente enganosa: talvez eles tenham 11 alterações na API durante os primeiros dois dias de desenvolvimento inicial e estejam estáveis há 4 anos desde então? O SemVer permite que você faça alterações sem aumentar o número principal, se o número principal for 0, mas não o força . Talvez eles tenham começado a usar o SemVer a partir do dia 0, mesmo durante as fases de prototipagem / exploração?
fonte
Resposta curta
Não
Resposta longa
"Às vezes, um número é apenas um número"
Esqueça o "versionamento semântico", "racionalidade", "lógica" no mundo louco atual
Por que o Chrome absorve os números de versão tão rapidamente?
fonte
Ao usar o controle de versão semântico, ainda há a decisão a ser tomada de quais alterações são consideradas "principais" e quais são "secundárias". Existem vários motivos para aumentar o número da versão - ou para não aumentar.
Sistemas com promessas de compatibilidade com versões anteriores podem acabar aumentando o número da versão principal com a maioria das atualizações, apenas porque há uma quebra de compatibilidade com versões anteriores em alguns casos mais ou menos esotéricos. Os mesmos sistemas podem aderir ao 1.xy quase indefinidamente, porque muito esforço é colocado em compatibilidade com versões anteriores, tentando nunca quebrar nenhum sistema dependente. Ambas as abordagens à numeração de versões podem ser consideradas "conservadoras", mas também podem ser um sinal de um profundo problema subjacente.
Outras vezes, você tem um cronograma de lançamento (pense nos CDs de atualização trimestrais enviados aos clientes) em que faz sentido alterar o número da versão principal, de modo que, em vez de "Versão 3.4 / 16 de outubro", apenas diga "Versão 11.0". Atualmente, mais e mais softwares são lançados em intervalos curtos, tornando os agendamentos de lançamento menos um motivo para seguir um esquema de versão específico. Eu já vi isso em grandes sistemas de armazém que permitem à TI interna apenas um dia de inatividade por trimestre (geralmente um domingo). Este dia é o dia da implantação e é marcado com uma nova versão principal sempre.
Alguns programas têm dependências externas de extrema importância, porque o usuário precisará atualizar as duas ao mesmo tempo. Se você possui um complemento do Word que funciona apenas com o Word 2010 e outro no Word 2013, convém sincronizar seus números de versão principais com os do MS-Word. Aqui, os números principais são muito importantes, porque alguns de seus usuários estarão "atrasados" em sua programação normal de atualizações, pois não foram atualizados para a versão mais atual do Word (ou qualquer outra coisa em que você confie: SAP, Dynamics, etc).
Às vezes, outros fatores externos determinam os números de versão. Se você possui um software fiscal, pode haver atualizações anuais correspondentes à lei tributária (que tende a entrar em vigor em 1º de janeiro). Esses sistemas terão as principais versões alteradas exatamente uma vez por ano - não porque esse é o cronograma de atualização, mas porque isso é de outra importância para o cliente: se você fizer seus impostos de 2016, é melhor ter um programa atualizado para a legislação tributária de 2016.
No final, os números de versão dependem de tantos fatores - geralmente específicos de um domínio - que o número por si só não informa nada sobre o estado da sua base de código. É uma abordagem muito melhor para analisar quando, por que e como as implantações acontecem - e com que suavidade isso ocorre. Se você pode lançar uma atualização importante para 10.000 clientes e fazer algumas ligações telefônicas - provavelmente está bem. Se você lançar um patch menor para 10 clientes e precisar fazer horas extras por causa disso, provavelmente algo está errado.
fonte
O consenso sobre o significado dos números de versão é de fato major.minor.revision.buildnumber
Se o major subir rapidamente, pode ser que o desenvolvedor tenha todas essas novas idéias e trabalhe muito.
No mundo dos negócios, no entanto, pode haver outros motivos para aumentar o número da versão principal. Gostar
As vendas caíram, os clientes / usuários aguardam o próximo grande lançamento antes de atualizar.
O contrato diz que os clientes têm direito a pequenas atualizações. O fornecedor não pode cobrá-los por isso, uma pequena melhoria é vendida como uma grande atualização do produto.
O concorrente X está no jogo há mais tempo, portanto, o número da versão principal é maior que o seu. Isso faz com que pareça que você está atrasado, você precisa "acompanhar".
fonte