Allistair Cockburn é um dos grandes pensadores de engenharia de software em atividade. É dele o melhor livro que conheço sobre casos de uso, chamado de Casos de Uso Eficazes. É dele também um conceito chave usado em arquitetura de software, o conceito do código mínimo que implemente uma funcionalidade fim a fim (o esqueleto andante).
O esqueleto andante é um conceito que permite que a funcionalidade e a arquitetura evoluam simultaneamente. Ele acomoda os principais componentes arquiteturais e é uma excelente técnica de redução de riscos em projetos complexos.
A fase de elaboração do RUP é um exemplo interessante da produção de esqueletos andantes, que reduzem os riscos e acomodam cenários de casos de uso críticos e complexos. Em métosos ágeis como o DAD (Disciplined Agile Delivery) também vemos este tipo de técnica.
Neste tipo de técnica, é fundamental uma boa gestão de configuração. O esqueleto andante é um código evolutivo, e não descartável. A gestão de linhas de base e mecanismos de testes de unidade e integração contínua garante que o esqueleto possa acomodar cartilagens, tendões, músculos, nervos e peles à medida que mais e mais código complexo seja adicionado ao sistema.
Um exemplo real
Tivemos a oportunidade de acompanhar um projeto, em nosso ambiente de trabalho, recentemente colocado em produção e que usou esta técnica. A arquitetura candidata rapidamente foi evoluída para código executável que incorporou os principais componentes arquiteturais (tecnologias Microsoft, tecnologias Java, ambientes distribuídos, elemento de tempo real, BRMS, governança e elementos avançados de monitoração).
Neste projeto em particular, dois arquitetos e um desenvolvedor trabalharam em paralelo na criação do esqueleto. A partir do estabelecimento de linhas de bases periódicas que acomodaram cenários de uso reais, os componentes arquiteturais fim a fim foram enlaçados. Em cada rodada, mais e mais requisitos (arquiteturais) eram acomodados, dando forma ao esqueleto.
Após algumas semanas com esta sistemática, o esqueleto tornou-se robusto e foi autorizado para produção. Pudemos observar que uma comunicação contínua entre o time de negócio e o time de arquitetura foi fundamental para o sucesso desta técnica. O esqueleto deve ser mostrado, testado, experimentado. É apenas isso que permite a sua evolução. No fim, pudemos ver o valor da arquitetura em termos concretos.
Neste caso, pudemos destacar também o valor dos processos ágeis. Ao promover comunicação e criar um ambiente de colaboração para suportar a experimentação do esqueleto, o mesmo foi fundamental para suportar uma evolução contínua dos requisitos e da arquitetura.


Pingback: Esqueletos andantes | Comentários Críticos sobre Tecnologia da … | iComentários
Assunto interessante hein Marco !?
Que tal postar mais detalhes práticos sobre o projeto do exemplo real ?!
Abraço.