Ser Ágil
Imagine que você foi contratado para liderar uma equipe encarregada de fabricar parafusos e porcas. Cada item que você produz será essencialmente o mesmo, com algumas diferenças de tamanho. Em seu novo trabalho, você provavelmente ficaria feliz em ter um plano de manufatura e um processo de manufatura que você pudesse repetir continuamente, simplesmente alterando o tamanho e a embalagem de seu produto conforme necessário.
Agora imagine que você foi contratado para liderar uma equipe que tem a tarefa de escrever um software que pode automatizar a construção de objetos voadores de edifícios. Cada objeto requer algum conjunto de recursos especializados, e seus clientes exigem um cronograma de retorno apertado, embora estejam propensos a mudar de ideia sobre quais recursos são mais importantes.
Nesse caso, um único plano e processo logo o deixaria à beira da falência enquanto luta para se adaptar às suas necessidades em constante mudança. Em vez disso, você precisa ser ágil. Como você não pode prever com antecedência exatamente o que seu software deve construir, você precisa de processos que sejam altamente adaptáveis e que permitam inspeção e modificação constantes. Bem-vindo ao mundo do desenvolvimento ágil de software.
Como funcionam as iterações ágeis
A maioria das equipes ágeis usa iterações, ou sprints, como sua construção para lidar com as necessidades de desenvolvimento iterativo. Neste modelo, a iteração é um período de tempo definido, geralmente da ordem de uma ou duas semanas, em que toda a equipe se dedica a entregar os objetivos acordados da iteração.
Uma reunião de planejamento de iteração inicia o sprint e é encerrada por uma reunião de revisão de iteração. Normalmente, a reunião de planejamento de iteração é o período formal em que o proprietário do produto fornece uma história ou item de entrega para a equipe entregar. Essa história é retirada de uma coleção de trabalhos conhecida como product backlog, que o product owner possui e muda ao longo do tempo conforme surgem novas necessidades. Trabalhando juntos, a equipe concorda com as metas de entrega aceitáveis para a iteração com base em seu entendimento das metas declaradas do proprietário do produto para essa iteração.
Reuniões de revisão de iteração ágil
No final da iteração, uma reunião de revisão da iteração é realizada. Este é o local onde a equipe apresenta uma entrega de trabalho real para a revisão final, que foi totalmente testada e entregue de acordo com os padrões acordados na definição da equipe de concluído. A reunião de revisão da iteração também inclui uma retrospectiva dos processos da equipe que foram bem ou mal durante a iteração, com o objetivo de adaptar ou evoluir esses processos no futuro para permitir o aprimoramento constante da equipe.
Mesmo uma iteração de duas semanas é muito longa para a maioria dos times ágeis scrum contabilizarem totalmente as interrupções e desvios diários em seu caminho para a revisão da iteração. Para ajudar a aliviar isso, as equipes scrum também participam de uma reunião standup diária . Esta reunião pretende ser curta e muito focada. Na verdade, é chamada de reunião standup porque os participantes são incentivados a realmente ficar de pé durante a reunião, para não ficarem muito confortáveis. Na luta diária, cada membro da equipe fornece três informações muito sucintas.
- O que eu fiz ontem para mover a iteração adiante?
- O que farei hoje para mover a iteração adiante?
- Quais bloqueios ou impedimentos com os quais não posso lidar sozinho estão me impedindo de seguir em frente?
Remover quaisquer bloqueadores levantados na reunião standup é uma função chave do scrum master, uma das outras funções chave na equipe scrum. O scrum master geralmente executa outras funções para a equipe, como manter e monitorar a velocidade da equipe. O scrum master ajuda o product owner a preparar o product backlog, removendo quaisquer novos obstáculos para garantir que a equipe scrum opere com eficiência máxima.
Resumo da lição
Revisamos uma série de recursos de alto nível do processo ágil de desenvolvimento de software que permitem que ele atue de maneira iterativa e evolutiva. Vimos como o product owner e o scrum master auxiliam os outros membros da equipe do scrum, cujo principal objetivo é entregar software funcional em incrementos programados regularmente. Esses incrementos são limitados por reuniões de planejamento de iteração e reuniões de revisão de iteração , enquanto a adoção de reuniões diárias em pé fornece um método simples de comunicação de alto valor para a equipe sem perder tempo com reuniões mais longas.