Dez aplicações, dez formas
Abra os repositórios de dez aplicações de uma mesma organização e é provável encontrar dez formas diferentes de fazer o mesmo: a documentação em lugares diferentes (ou em nenhum), scripts de implementação diferentes, nomes de pastas inventados por cada pessoa. Cada vez que alguém muda de projeto perde dias a aprender onde está tudo.
Um modelo, não um guia
A solução não é um guia de estilo que ninguém lê. É um modelo executável: um comando que cria a aplicação nova com tudo o que precisa desde o primeiro minuto.
O que traz um modelo bem pensado:
- Estado e diário de bordo da aplicação desde o primeiro dia (em que fase está, o que foi decidido).
- Pasta de documentação com a especificação e os registos de decisão.
- Estrutura de código padrão para cada parte (interface, serviço, dados).
- Implementação já preparada, com o mesmo mecanismo que as restantes aplicações.
- Configuração por ambiente, separada do código.
Regras para que funcione
- O modelo também é um produto. Mantém-se, versiona-se e melhora-se com o que as equipas aprendem.
- Criar uma aplicação não deve pisar nada existente. Se o registo já tem dados dessa aplicação, o modelo respeita-os em vez de os sobrescrever.
- O opcional ativa-se, não se apaga. Se uma aplicação não precisa de base de dados, o modelo não a implementa, mas a estrutura fica pronta para o caso de amanhã precisar.
- As aplicações antigas incorporam-se com o mesmo esqueleto, mesmo que a pouco e pouco.
Uma aplicação que nasce do modelo já sabe onde vai a sua documentação. O seguinte é que a organização saiba onde vive a aplicação. Isso resolve-o o registo.
Como o aplicamos: Engenharia de Plataforma.