O que é um "esqueleto ambulante"?

42

Uma das minhas equipes ágeis adotou uma abordagem interessante nos estágios iniciais do projeto. Em vez de iniciar o projeto com um Sprint 0, onde eles configuram a infraestrutura de código e decidem sobre a arquitetura da solução, eles começaram a criar um "Walking Skeleton", que descrevem como uma prática do DevOps.

O que isso parece se resumir é criar algo muito pequeno (no caso de uma API, um único ponto de extremidade que acaba de retornar 200-OK), fazer isso funcionar em integração contínua e criar o pipeline de entrega contínua para implantar isso em cada um dos ambientes:

Desenvolvimento ► Teste ► UAT ► Pré-produção ► Produção

No processo, eles conseguiram marcar muitos dos requisitos não funcionais que poderiam ter sido perdidos se as implantações fossem deixadas para o último minuto.

Minha pergunta é a seguinte: o que é um "Walking Skeleton" e que benefício ele oferece a uma equipe Agile seguindo as práticas de DevOps?

Richard Slater
fonte
1
Amo este, eu posso compartilhar uma coisa real (semana passada) eo que era os resultados deste depois do almoço
Tensibai

Respostas:

38

Um "esqueleto ambulante" é uma forma de "prova de conceito" do seu conceito arquitetônico básico. Onde uma prova de conceito geralmente se concentra mais em uma única funcionalidade, um "Walking Skeleton" é uma implementação minimalista de ponta a ponta. Um "esqueleto ambulante" não é um esboço do seu conceito (apenas um "esqueleto"), mas é realmente executável e entregável (pode "andar": O) e deve ser acompanhado de testes.

Alistair Cockburn o descreveu (e é citado com frequência):

Um Walking Skeleton é uma pequena implementação do sistema que executa uma pequena função de ponta a ponta. Ele não precisa usar a arquitetura final, mas deve vincular os principais componentes da arquitetura. A arquitetura e a funcionalidade podem evoluir em paralelo.

A vantagem aqui para o DevOps é que um "Walking Skeleton" deve ser desenvolvido no início do projeto e resultar em código de trabalho, expedível e testável . Dessa forma, o DevOps pode configurar uma cadeia de integração contínua completa no início do projeto, em vez de ser integrado na fase final dos projetos. Isso significa que todos os problemas que surgirem também serão resolvidos em um estágio inicial, em vez de um trabalho rápido no final.

7ochem
fonte
4
Bem, não é apenas a cadeia de CI, mas poderia literalmente cobrir o pipeline de produção de ponta a ponta, incluindo entrega e implantação. Um esqueleto disso também - você não precisa ter todas as verificações de controle de qualidade do produto final no dia 1, pode adicionar progressivamente "carne" de verificação a esse esqueleto à medida que a história "carne" se acumula no esqueleto ambulante.
Dan Cornilescu 29/03
1
Eu gosto do termo "carne", se encaixa muito bem com a terminologia usada: P
7ochem
3
Ótima resposta. Eu acho que é o pipeline de entrega equivalente a um produto mínimo viável.
Adrian
4
Isso soa semelhante ao produto mínimo viável, mas em um nível mais granular - "componente mínimo viável" talvez. Retornar 200 de um serviço apenas para fazê-lo "funcionar" parece um esboço para mim.
Dave Swersky