...
Nivel | Nome | Descricao |
|---|---|---|
N.x.x.x | Nivel Maior | Indica uma versao de ruptura (ou possivel ruptura) de API, iniciando em 0 e incrementando em uma unidade cada vez manualmente pelo Gerente de Configuracao. A primeira versao de producao deve ter numero 1. |
x.N.x.x | Nivel Menor | Indica alteracoes aditivas visiveis na API e que nao invalidem o nivel maior, inclusao de metodos novos metodos, criacao de metodos polimorificos, adicoes de parametros estilo "varargs", alteracoes de nomes de parametros, sobreescrita de tipos, alteracoes em hieraquia de classes ou interfaces e outras modificacoes que nao quebrem o Nivel Maior. Inicia em 0 e incrementa em uma unidade cada vez manualmente pelo Gerente de Configuracao. Quando o Nivel Mmaior muda de valor, o Nivel Menor reinicia em zero novamente. |
x.x.N.x | Nivel de Servico | Indica correcoes de bugs ou melhorias nao visiveis em nivel de API, como adicao ou melhoria de documentacoes, tunning para performance, seguranca ou outras capacidades nao funcionais no sistema. Inicia em 0 e incrementa em uma unidade cada vez manualmente pelo Gerente de Configuracao. Quando o Nivel Menor reinicia, o Nivel de Servico reinicia em zero novamente. |
x.x.x.N | Nivel de Qualificacao | Incrementado automaticamente a cada build, geralmente pelo sistema de integracao continua. Quando o Nivel de Servico reinicia, o Nivel de Qualificacao nao reinicia. DICA: Este Nivel de Qualificacao pode ser baseado em elementos como Timestamp, Numero do Build, Numero da Revisao do Repositorio, entre outras opcoes que identiquem claramente a unicidade dessa versao quando os valores de Nivel Maior, Menor e de Servico permanecerem iguais. |
Exemplo Pratico
...
Data | Fase do Projeto | Alteracao de codigo | Versao de Desenvolvimento | Versao de Homologacao | Versao de Producao |
|---|---|---|---|---|---|
15-Jan | 0 - Iniciacao | Nenhuma | NA | NA | NA |
23-Jan | 1 - Anteprojeto | Primeiros commits de desenvolvimento de codigos com teste-base para validacao da arquitetura | 0.0.0 | NA | NA |
12-Fev | 1 - Anteprojeto | Mais commits de desenvolvimento para provas da arquitetura. | 0.0.0 | NA | NA |
17-Fev | 1 - Anteprojeto | Projetista considerou arquitetura estavel o suficiente e vai iniciar homologacao dessa arquitetura com cliente. | 0.0.0 | 1.0.0 | NA |
19-Fev | 1 - Anteprojeto | Programadores continuam fazendo commits para ajustes e otimizacoes na arquitetura, seja qual for essa alteracao | 0.0.0 | 1.0.0 | NA |
21-Fev | 1 - Anteprojeto | Durante homologacao da aquitetura, projetista encontra um erro em uma de suas funcionalidades e puxa um dos commits de desenvolvimento para um novo build de correcao na homologacao | 0.0.0 | 1.0.1 | NA |
23-Fev | 1 - Anteprojeto | Mais um erro eh encontrado na arquitetura, e exige outro ajuste, com um novo build de correcao na homologacao | 0.0.0 | 1.0.2 | NA |
27-Fev | 1 - Anteprojeto | As regras do jogo mudam, onde o cliente diz que precisa uma funcionalidade nova na arquitetura e nao vai aceitar ela sem que isso seja implementado. | 0.0.0 | 1.1.0 | NA |
03-Mar | 1 - Anteprojeto | Cliente homologa arquitetura | 0.0.0 | 1.1.0 | 1.1.0 |
04-Mar | 2 - Planejamento | Equipe antecipa alguns desenvolvimentos fazendo commits enquanto gestao do projeto faz estimativas e plano de entregas | 0.0.0 | 1.1.0 | 1.1.0 |
15-Mar | 2 - Planejamento | Equipe de gestao apresenta e homologa plano de entregas | 0.0.0 | 1.1.0 | 1.1.0 |
16-Mar | 3 - Construcao | Agora sim, projeto entra em fase de construcao, com commits diarios de desenvolvimento ate ter funcionalides estaveis | 0.0.0 | 1.1.0 | 1.1.0 |
24-Mar | 3 - Construcao | Projetista elenca algumas funcionalidades como estaveis e faz primeiro build de homologacao da fase de construcao | 0.0.0 | 1.2.0 | 1.1.0 |
03-Abr | 3 - Construcao | Projetista elenca mais funcionalidades como estaveis e faz segundo build de homologacao da fase de construcao | 0.0.0 | 1.3.0 | 1.1.0 |
04-Abr | 3 - Construcao | Equipe dev continua commits de desenvolvimento | 0.0.0 | 1.3.0 | 1.1.0 |
05-Abr | 3 - Construcao | Cliente encontra erro em homologacao e solicita ajustes imediatos para aprovacao | 0.0.0 | 1.3.1 | 1.1.0 |
06-Abr | 3 - Construcao | Cliente ainda nao aceita homologacao | 0.0.0 | 1.3.2 | 1.1.0 |
07-Abr | 3 - Construcao | Mais ajustes sao necessarios, e novamente projetista eleva codigo de dev para homologacao e dispara novo build | 0.0.0 | 1.3.3 | 1.1.0 |
08-Abr | 3 - Construcao | Dia anterior se repete, e exige outro build de ajuste na homologacao. O quarto seguido sem nenhum incremento de funcionalidades. | 0.0.0 | 1.3.4 | 1.1.0 |
09-Abr | 3 - Construcao | Cliente ainda nao homologa ajustes realizados e projetista precisa fazer nova elevacao de codigo dev para homologar | 0.0.0 | 1.4.0 | 1.1.0 |
15-Abr | 3 - Construcao | Equipe dev continua commits em desenvolvimento | 0.0.0 | 1.4.0 | 1.4.0 |
12-Mai | 3 - Construcao | Quase 1 mes passou, e muitas features novas foram feitas em dev. | 0.0.0 | 1.5.0 | 1.4.0 |
30-Mai | 3 - Construcao | Mais features sendo entregues pelo dev estao prontas para iniciar homologacao | 0.0.0 | 1.5.0 | 1.4.0 |
02-Jun | 3 - Construcao | Mais features sendo entregues pelo dev estao prontas para iniciar homologacao, mas projetista ainda nao as eleva | 0.0.0 | 1.5.0 | 1.5.0 |
03-Jun | 3 - Construcao | Projetista eleva feature de dev para iniciar nova homologacao | 0.0.0 | 1.6.0 | 1.5.0 |
04-Jun | 3 - Construcao | Cliente inicia homologacao e encontra problemas | 0.0.0 | 1.6.1 | 1.5.0 |
05-Jun | 3 - Construcao | Cliente aceita homologacao | 0.0.0 | 1.6.1 | 1.6.1 |
07-Jun | 3 - Construcao | Equipe dev inicia refatoracao completa do projeto, pois nova biblioteca esta sendo inserida na arquitetura e isso vai quebrar compatibilidade da versao atual | 0.0.0 | 1.6.1 | 1.6.1 |
20-Jun | 3 - Construcao | Equipe finaliza ajuste de refatoracao, e agora sistema tem tando features novas, quanto, principalmente, uma nova arquitetura imcompativel com versao em uso na producao | 0.0.0 | 2.0.0 | 1.6.1 |
22-Jun | 3 - Construcao | Cliente inicia testes de novas features e arquitetura otimizada | 0.0.0 | 2.0.0 | 1.6.1 |
24-Jun | 3 - Construcao | Cliente homologa nova arquitetura | 0.0.0 | 2.0.0 | 2.0.0 |
25-Jun | 3 - Construcao | Cliente encontra erro na nova arquitetura | 0.0.0 | 2.0.1 | 2.0.0 |
25-Jun | 3 - Construcao | Cliente homologa ajustes da producao | 0.0.0 | 2.0.1 | 2.0.1 |
15-Jul | 3 - Contrucao | Todas features do sistema sao finalizadas pela equipe dev | 0.0.0 | 2.1.0 | 2.0.1 |
21-Jul | 3 - Construcao | Cliente homologa ultimas features | 0.0.0 | 2.1.0 | 2.1.0 |
30-Jul | 3 - Construcao | Cliente da aceite final no projeto e considera-o finalizado, sem mais coisas serem construidas | 0.0.0 | 2.1.0 | 2.1.0 |
31-Jul | 4 - Repasse | Fase de repasse se inicia | 0.0.0 | 2.1.0 | 2.1.0 |
01-Set | 4 - Repasse | Cliente encontra erro do sistema | 0.0.0 | 2.1.1 | 2.1.0 |
02-Set | 4 - Repasse | Cliente inicia testes para homologar ajustes propostos para producao | 0.0.0 | 2.1.1 | 2.1.0 |
03-Set | 4 - Repasse | Cliente aceita ajustes | 0.0.0 | 2.1.1 | 2.1.1 |
04-Set | 4 - Repasse | Cliente aceita todo o projeto, documentacoes, etc. | 0.0.0 | 2.1.1 | 2.1.1 |
05-Set | 5 - Encerramento | Inicia-se a fase de encerramento, visando garantia do projeto | 0.0.0 | 2.1.1 | 2.1.1 |
07-Dez | 5 - Encerramento | Aos dois meses de garantia, cliente encontra erro grave | 0.0.0 | 2.1.1 | 2.1.1 |
09-Dez | 5 - Enceramento | Apos varios commits em dev, equipe tem codigo estavel para homologacao | 0.0.0 | 2.1.2 | 2.1.1 |
10-Dez | 5 - Encerramento | Cliente inicia testes na homologacao | 0.0.0 | 2.1.2 | 2.1.1 |
12-Dez | 5 - Encerramento | Cliente aceita homologacao | 0.0.0 | 2.1.2 | 2.1.2 |
05-Jan | 5 - Encerramento | Apos um ano de projeto e terminada garantia, projeto encerra-se | 0.0.0 | 2.1.2 | 2.1.2 |
Referencias
1 - http://www.eclipse.org/equinox/documents/plugin-versioning.html
2 - http://wiki.eclipse.org/index.php/Version_Numbering
3 - Link para padrao Java 6 de "deprecacao" de APIs