Implementar práticas ágeis que escalem

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

As organizações empresariais adotam práticas ágeis por vários motivos. Entre estas razões destacam-se:

  • Reduza o tempo de colocação no mercado e acelere a entrega de produtos
  • Melhorar a eficácia organizacional para gerenciar prioridades em mudança
  • Melhore a qualidade do software e a previsibilidade de entrega
  • Melhorar a visibilidade do projeto e reduzir o risco do projeto

À medida que sua organização cresce, você vai querer escalar suas práticas para permanecer ágil e atender às metas em mudança. Para isso, considere estes dois princípios orientadores:

  • Como é o sucesso para você, suas equipes e sua organização? O que é mais interessante: Entrega dentro do prazo? Qualidade do produto? Previsibilidade? Satisfação do cliente?
  • Retorno aos primeiros princípios, retorno aos princípios e valores compartilhados enumerados no manifesto ágil Como observado por Ken Schwaber, um dos fundadores do Scrum:
    • "Os valores e princípios escalam, mas as práticas são sensíveis ao contexto."
    • "Mantenha os valores, mantenha os princípios, pense por si mesmo. Uma premissa central do Agile é que as pessoas que fazem o trabalho são as pessoas que melhor podem descobrir como fazê-lo."

Crie ritmo e fluxo

Ao adotar uma cadência compartilhada e um conjunto de comunicações periódicas, você cria um fluxo constante de atividade em toda a organização. As práticas que ajudam a criar ritmo e fluxo dentro de organizações maiores incluem:

  • Cadência compartilhada: Sprints e lançamentos regulares estabelecem o ritmo do negócio. Ter todas as equipas a trabalhar numa cadência partilhada ajuda em todas as atividades de coordenação e colaboração.
  • E-mails de sprint: para manter a organização e todas as equipes informadas sobre o progresso e os planos das equipes de recursos, cada equipe de recursos pode enviar por e-mail um resumo de seus resultados de sprint anteriores e planos de sprint atuais.
  • Demonstrações Sprint: Um vídeo rápido - 2 a 3 minutos - que ilustra um novo recurso produzido pela equipe. Links para esses vídeos podem ser incluídos em e-mails sprint.
  • Reuniões de exibição: para informar outras equipes e pedir feedback sobre o software em desenvolvimento, as equipes mostram o trabalho que fizeram. Conduza essas reuniões em intervalos regulares ao longo do ciclo de vida do projeto e abra-as a todas as partes interessadas.
  • E-mails de resumo de bugs: Para apoiar informações sobre a qualidade do produto e incentivar a manutenção da disciplina de bugs, compartilhe periodicamente métricas de qualidade com a organização. Essas métricas podem incluir bugs ativos por equipe de recursos, tendências de bugs e bugs por engenheiro.
  • Reuniões de coordenação: realize reuniões que coordenem as equipes em intervalos regulares ou com a frequência necessária para lidar com metas, dependências e riscos sobrepostos.

Interaja com os clientes

Envolver os clientes durante todo o ciclo de vida do produto é um princípio ágil primário. Capacite cada equipe para interagir diretamente com os clientes nos conjuntos de recursos que possui.

  • Feedback contínuo: crie ciclos de feedback do cliente. Estes laços podem assumir muitas formas:
    • Voz do cliente: torne mais fácil para os clientes darem feedback, adicionarem ideias e votarem em recursos da próxima geração. A transmissão de comentários é frequentemente feita através de um sítio Web específico.
    • Feedback do produto: os botões de feedback no produto são outra maneira de pedir feedback sobre a experiência do produto ou recursos específicos.
    • Demonstrações de clientes: demonstrações agendadas regularmente que pedem feedback de seus clientes podem ajudar a moldar produtos da próxima geração e mantê-lo no caminho certo para criar aplicativos que seus clientes desejam consumir.
  • Programas de adoção antecipada: Tais programas devem ser desenvolvidos com a ideia de que todas as equipes podem querer participar como algum ponto. Os primeiros usuários obtêm acesso às primeiras versões do software de trabalho, que eles podem fornecer feedback. Muitas vezes, esses programas funcionam ativando sinalizadores de recursos selecionados para uma lista de primeiros adotantes.
  • Decisões baseadas em dados: encontre maneiras de instrumentar seu produto para obter dados úteis e que possam testar várias hipóteses. Ajude a conduzir para uma cultura amigável à experiência que celebra a aprendizagem.

Melhorar a visibilidade do projeto

Quanto mais informações você e suas equipes tiverem sobre o objetivo, a visão e o progresso do trabalho que está sendo feito, melhor capacitado estará para reduzir os riscos e gerenciar dependências.

  • Estrutura da equipa: Não importa quão grande seja a sua organização, estruture a sua organização em torno de pequenas equipas de 6 a 9 escalas. Crie equipes de recursos verticais e autônomas agrupadas em áreas de gerenciamento de portfólio.
  • Estrutura de detalhamento do trabalho: dividir grandes metas, recursos ou requisitos em objetivos menores permanece uma estabilidade do gerenciamento de projetos. Ao dividir o trabalho em tarefas de tamanho semelhante, as equipes podem fazer melhores estimativas e identificar riscos e dependências.
  • Visualizações consolidadas: use suas ferramentas de acompanhamento on-line para agregar o trabalho e obter conhecimento entre as equipes. Crie painéis para mostrar o progresso e as tendências.
  • Revisões de experiência: essas reuniões, realizadas antes do início do desenvolvimento de um recurso, são usadas para educar a liderança sobre cenários e prioridades, coletar feedback, definir expectativas e revelar quaisquer problemas entre equipes sobre o recurso.

Capacitar uma força de trabalho produtiva

Algumas práticas ágeis específicas que escalam bem e levam a funcionários mais felizes, engajados e produtivos incluem:

  • Liderança incorporada: capacite equipes e líderes dentro da organização para se auto-organizarem e autogerenciarem tanto quanto possível. A autonomia da equipa aumenta a agilidade organizacional e a eficácia da equipa. Garantir que as equipes tenham o patrocínio corporativo necessário para ter sucesso.
  • Stand-ups diários: ou as reuniões Scrum ajudam a manter as equipes focadas no que precisam fazer diariamente para maximizar sua capacidade de cumprir seus compromissos de sprint. À medida que as organizações crescem, elas devem considerar o escalonamento dessas reuniões para que a participação entre equipes possa ocorrer conforme necessário.
  • Scrum of scrums: Encontros diários de membros de diferentes equipes ágeis se reúnem diariamente para relatar o trabalho concluído, os próximos passos e os problemas ou bloqueios que ocorrem dentro de suas equipes representativas.
  • Comunicação da equipe: Fornecer e incentivar as equipes a compartilhar suas práticas e orientações, que elas e outras equipes podem acessar através da rede corporativa. As ferramentas comuns usadas para essa finalidade incluem wikis de equipe, OneNotes ou sites Markdown.
  • Colaboração: Incentive a comunicação informal entre equipes e a colaboração dentro da equipe. Institucionalizar práticas como revisões de código, revisões de design, revisões de especificações não só aumenta a colaboração da equipe, mas ajuda a desenvolver a competência individual e corporativa geral.

Melhorar a cultura organizacional

Você melhora a eficácia organizacional atendendo à cultura que deseja construir. As mudanças de cultura ocorrem quando indivíduos, equipes e organizações adotam uma ou mais práticas de melhoria contínua. Várias práticas ágeis escaláveis incluem:

  • Retrospetivas: Ao fazer perguntas como: "O que correu bem?", "O que devemos fazer de diferente?" e "O que devemos deixar de fazer?" ajudam as equipas a refletir sobre como podem melhorar os seus processos e práticas. As retrospetivas ajudam as equipas a revelar o que está a funcionar bem e o que precisa de ser melhorado. As retrospetivas podem ser realizadas a qualquer hora e em qualquer lugar. No entanto, a institucionalização de certas retrospetivas a uma cadência regular ajuda a institucionalizar práticas de melhoria contínua. Por exemplo:

    • As retrospetivas Sprint podem ajudar as equipes a identificar áreas a serem melhoradas em uma cadência regular.

    • As retrospetivas de lançamento podem ajudar as organizações a identificar áreas para melhorar as comunicações e as práticas internas e impulsionar a melhoria para a próxima versão.

    • Revisões operacionais: normalmente são realizadas mensalmente e incluem representantes de todo um fluxo de valor. Abrangendo um portfólio de projetos e outras iniciativas e usando dados objetivos e quantitativos, projete essas retrospetivas para provocar discussões sobre as dinâmicas que afetam o desempenho entre as equipes.

      Consulte o Wiki de Recursos Retrospetivos Ágeis para ideias, dicas e ferramentas para planejar e conduzir retrospetivas. Consulte também a extensão Retrospetivas do Marketplace.

  • Quadro de acompanhamento de melhorias: Boas ideias para melhorar os processos podem surgir de qualquer um a qualquer momento. Capturar essas ideias para discutir e decidir sobre como agir rapidamente é a chave para apoiar os esforços de melhoria de processos.

    Um quadro branco fornece qualquer meio fácil e visual para capturar ideias. Além disso, você pode criar uma equipe de acompanhamento de melhorias e capturar ideias que você acompanha em um quadro Kanban eletrônico.

  • Institucionalizar o compartilhamento: compartilhar as melhores práticas e comunicar ideias ajuda todas as equipes dentro de uma organização a crescer e melhorar. Desenvolver uma cultura de aprendizagem é fundamental para apoiar esta e outras atividades de melhoria contínua. Algumas ideias a considerar:

    • Wikis internos

    • Listas de distribuição internas

    • Semanas de hackathon ou 10% de tempo de hack

    • Equipe interna de suporte ágil para apoiar equipes que adotam práticas ágeis

      O Jogo da Cultura fornece um bom recurso para os gestores ágeis ajudarem as equipes a adotarem o Agile e compartilharem as melhores práticas.

  • Comunidades de prática: Suporte a disciplinas comuns internas (por exemplo, DBAs, SW Architects, UX design)

Software utilizado

"Entregue software de trabalho com frequência, de algumas semanas a alguns meses, com preferência para o período de tempo mais curto."
"O software de trabalho é a principal medida do progresso."
- Manifesto ágil

À medida que a quantidade de software, recursos e complexidade aumenta, você precisará adotar práticas que o ajudem a produzir soluções consumíveis.

  • Sinalizadores de recursos: use sinalizadores de recursos para habilitar ou desabilitar o acesso a diferentes recursos. Forneça suporte para ativar recursos aos primeiros usuários para obter feedback de trabalho.
  • Trens de lançamento: fornecem outro tipo de cadência para fornecer um ou mais recursos. As equipes de recursos entendem o cronograma pré-planejado de envio de novos recursos e planejam corretamente. Os trens de liberação podem corresponder à mesma cadência de sprint estabelecida para a organização, ou ocorrer em uma cadência diferente. Consulte Scaled Agile Framework para saber como configurar sprints e liberar trens.
  • Integração contínua: adote processos que eliminem o trabalho manual e, em vez disso, automatizem o fluxo de software através dos ciclos de teste, compilação e implantação.
  • Código Aberto Interno: Traga o valor e o ethos desenvolvidos na comunidade de Software Livre para suas equipes de desenvolvimento internas.

Junto com as práticas acima, você encontrará mais orientações sobre como dimensionar suas ferramentas Agile nos seguintes artigos:

Recursos da indústria

Práticas que não são dimensionadas

  • Estimativa de grandes iniciativas: Parte dos métodos de projeto em cascata envolveu a estimativa de recursos e cronogramas. Quanto maiores forem as iniciativas, menos provável é que estas estimativas tenham algum valor. À medida que os projetos crescem, riscos e imprevistos e impedimentos podem surgir, invalidando muitas estimativas.
  • Velocidade: Embora a velocidade da equipe possa fornecer uma métrica útil para obter informações sobre quanto trabalho cada equipe pode concluir durante um ciclo de sprint, você não pode adicionar velocidades da equipe para obter métricas significativas ou úteis. Além disso, usar a velocidade obtida de muitas equipes para concluir de forma confiável previsões de longo alcance é problemático. As equipas variam na forma como estimam o seu trabalho, e essas variações aumentam ao longo do tempo.
  • Soluções prescritivas de cima para baixo: um tamanho único não serve para todos, e uma solução normalmente não se encaixa em todas as equipes. Apoiar a autonomia da equipa significa permitir que as equipas encontrem as suas próprias soluções.