Trilogia da Geração de Estórias
19 Aug 2014Meio sem notar, escrevi recentemente ou aqui no blog ou no site de Insights da ThoughtWorks três artigos que acabaram se complementando e de certa forma resumindo a minha visão atual de análise de sistemas/negócios em projetos ágeis.
É apenas o pensamento atual - pode e deve mudar com o tempo - e é imperfeito e não aplicável a todos os casos, mas representa um bom conjunto de axiomas que tenho tentado aplicar nos projetos que me envolvo (que normalmente tem sido tiros curtos de menos de 6 semanas) e que tem dado bons resultados. São fortemente influenciados pelas ideias de Lean Startup e Continuous Delivery e com elementos de pensamento sistêmico e umas ideias do Chris Argyris.
Tomo I - Épico pra que te quero
Onde o modelo gerativo de estórias é apresentado em contraposição ao modelo "indutivo" que simplesmente descreve uma funcionalidade já pensada. Quando falamos em épicos, no mundo da Agilidade, muitas vezes relacionamos a uma lista de funcionalidades já existentes e épicos sendo um nível mais alto de granularidade. Essa abordagem exige um conhecimento "a priori" de todo escopo, o que gera ansiedade ("e se eu não pensei em tudo...") e necessariamente exige um esforço inicial de análise. O modelo gerativo busca inverter essa relação, começando com um objetivo geral e gerando as unidades de trabalho a medida do necessário.
Tomo II - A primeira estória em qualquer projeto
O modelo gerativo faz com que a primeira coisa a fazer seja determinada praticamente automaticamente. É muito difícil validar hipóteses sem ter código funcionando em produção. E ser capaz de colocar código em produção também é uma hipótese que deve ser validada, assim fazer isso imediatamente é o melhor jeito de começar. E essa é uma atividade que exige pouquíssima análise dado que os objetivos gerais estão definidos. Isso permite que o desenvolvimento inicie imediatamente, e a análise identifique a próxima coisa mais importante em paralelo.
Tomo III - Encolha suas estórias
Gerar o trabalho a partir a validação das hipóteses, e começar imediatamente tentando colocar código em produção, são um bom começo, mas para que o desenvolvimento flua a partir disso de forma rápida os incrementos tem que ser pequenos. Isso por que queremos maximizar a influência que o feedback obtido tem sobre as próximas decisões de desenvolvimento. Estórias pequenas permitem que isso ocorra mais frequentemente, multiplicando o efeito "gerativo" das mesmas.
Aplicar estes princípios permite ver resultados rapidamente em seus projetos, mas isso só vai funcionar se a equipe estiver comprometida a manter o processo simples e prestar atenção no feedback recebido a medida que as estórias forem chegando em produção e sendo testadas. Fazendo isso, você vai ter o software certo antes do que imagina!