Implementar práticas Agile que são colocadas em escala

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Organizações empresariais adotam práticas Agile por muitos motivos. Entre esses motivos, os principais incluem:

  • Reduzir o tempo para comercialização, acelerar a entrega de produtos
  • Aprimorar a eficácia organizacional para gerenciar prioridades que são alteradas
  • Aprimorar a qualidade do software e a previsibilidade de entrega
  • Aprimorar a visibilidade do projeto e reduzir o risco do projeto

À medida que sua organização crescer, você desejará colocar em escala suas práticas para permanecer ágil e cumprir metas que mudam. Para fazer isso, considere estes dois princípios orientadores:

  • Como é o sucesso para você, suas equipes e sua organização? O que é mais interessante: entrega pontual? Qualidade do produto? Previsibilidade? Satisfação do cliente?
  • Retorne aos primeiros princípios, retorne aos princípios e valores compartilhados enumerados no manifesto Agile, conforme observado por Ken Schwaber, um dos fundadores do Scrum:
    • "Valores e princípios são colocados em escala, mas as práticas são sensíveis ao contexto."
    • "Mantenha os valores, mantenha os princípios, pense por conta própria. Uma premissa central do Agile é que as pessoas que fazem o trabalho são as pessoas que melhor podem descobrir como fazê-lo."

Criar ritmo e fluxo

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

  • Cadência compartilhada: sprints e lançamentos regulares estabelecem o ritmo dos negócios. Fazer com que todas as equipes trabalhem em uma cadência compartilhada ajuda em todas as atividades de coordenação e colaboração.
  • Emails 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 um resumo dos resultados do sprint anterior e dos planos do sprint atual.
  • Demonstrações de sprint: um vídeo rápido, de 2 a 3 minutos, que ilustra um novo recurso produzido pela equipe. Links para esses vídeos podem ser incluídos em emails de sprint.
  • Reuniões de demonstração: para informar outras equipes e pedir comentários sobre o software em desenvolvimento, as equipes demonstram o trabalho que fizeram. Realize essas reuniões em intervalos regulares durante todo o ciclo de vida do projeto e inclua nelas todas as partes interessadas.
  • Emails de resumo de bugs: para dar suporte a insights 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 sempre que necessário para lidar com metas sobrepostas, dependências e riscos.

Interagir com os clientes

Envolver os clientes em todo o ciclo de vida do produto é um princípio Agile crucial. Capacite cada membro da equipe a interagir diretamente com os clientes para tratar dos conjuntos de recursos de sua responsabilidade.

  • Comentários contínuos: crie loops de comentários do cliente. Esses loops podem assumir várias formas:
    • Voz do cliente: facilite o processo para os clientes enviarem comentários, adicionarem ideias e votarem nos recursos da próxima geração. Os comentários geralmente são feitos por meio de um site dedicado.
    • Comentários sobre o produto: botões de comentários no produto são outra maneira de solicitar comentários sobre a experiência do produto ou recursos específicos.
    • Demonstrações para o cliente: demonstrações agendadas regularmente que solicitam comentários dos clientes podem ajudar a moldar produtos da próxima geração e manter você no caminho certo para criar aplicativos que seus clientes desejam consumir.
  • Programas de usuário pioneiro: esses programas devem ser desenvolvidos com a ideia de que todas as equipes podem querer participar em algum ponto. Usuários pioneiros obtêm acesso a versões iniciais do software de trabalho e podem fornecer comentários. Geralmente, esses programas funcionam ativando sinalizadores de recursos selecionados para uma lista de usuários pioneiros.
  • Decisões controladas por dados: encontre maneiras de instrumentar seu produto para obter dados úteis e que permitam testar várias hipóteses. Ajude a estimular uma cultura amigável a experimentos que celebra o aprendizado.

Aprimorar a visibilidade do projeto

Quanto mais insights você e suas equipes tiverem sobre a meta, a visão e o progresso do trabalho sendo feito, melhor habilitado você estará a reduzir os riscos e gerenciar dependências.

  • Estrutura de equipe: independentemente do tamanho da organização, estruture-a em torno de pequenas equipes de 6 a 9 escalas. Crie equipes de recursos verticais e autônomas agrupadas em torno de áreas de gerenciamento de portfólio.
  • Estrutura de detalhamento de trabalho: a divisão de metas, recursos ou requisitos grandes em itens menores permanece um aspecto fundamental do gerenciamento de projetos. Ao dividir o trabalho em tarefas de tamanho semelhante, as equipes podem fazer estimativas melhores e identificar riscos e dependências.
  • Exibições consolidadas: use suas ferramentas de acompanhamento online 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 instruir a liderança sobre cenários e prioridades, coletar comentários, definir expectativas e expor problemas entre equipes sobre o recurso.

Capacitar uma força de trabalho produtiva

Algumas práticas Agile específicas que funciona, bem quando colocadas em escala e levam a funcionários mais felizes, engajados e produtivos incluem:

  • Liderança inserida: capacite equipes e líderes dentro da organização a se organizarem e se gerenciarem tanto quanto possível. A autonomia da equipe aumenta a eficácia da equipe de agilidade organizacional. Certifique-se de que as equipes tenham o patrocínio corporativo necessário para ter sucesso.
  • Reuniões diárias: ou reuniões de Scrum ajudam a manter as equipes focadas no que precisam fazer diariamente para maximizar sua capacidade de cumprir os compromissos do sprint. À medida que as organizações crescem, elas devem considerar escalonar essas reuniões para que a participação entre equipes possa ocorrer conforme necessário.
  • Scrum de scrums: reuniões diárias de membros de diferentes equipes Agile para relatar o trabalho concluído, as próximas etapas e problemas ou bloqueios que ocorrem dentro de suas equipes representativas.
  • Comunicações de equipe: forneça e incentive as equipes a compartilhar suas práticas e diretrizes, que elas e outras equipes podem acessar por meio da rede corporativa. Ferramentas comuns usadas para essa finalidade incluem wikis da equipe, OneNotes ou sites de Markdown.
  • Colaboração: incentive comunicações informais de equipe para equipe e a colaboração dentro da equipe. Práticas institucionalizadas como revisões de código, revisões de design e revisões de especificações não só aumentam a colaboração da equipe, mas ajudam a desenvolver a competência corporativa individual e geral.

Aprimorar a cultura organizacional

Você aprimora a eficácia organizacional cuidando da cultura que deseja criar. 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 Agile escalonáveis incluem:

  • Retrospectivas: fazer perguntas como: "O que deu certo?", "O que devemos fazer diferente?", e "O que devemos parar de fazer?" ajuda as equipes a refletir sobre como melhorar seus processos e práticas. As retrospectivas ajudam as equipes a identificar o que está funcionando bem e o que precisa de melhorias. Elas podem ser realizadas a qualquer momento e em qualquer lugar. No entanto, a institucionalização de determinadas retrospectivas em uma cadência regular ajuda a institucionalizar práticas de melhoria contínua. Por exemplo:

    • Retrospectivas de sprint podem ajudar as equipes a identificar áreas de melhoria em uma cadência regular.

    • Retrospectivas de versão podem ajudar as organizações a identificar áreas para melhorar as comunicações e as práticas internas e gerar melhorias para a próxima versão.

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

      Confira o Wiki sobre o recurso de retrospectiva Agile para obter ideias, dicas e ferramentas para planejar e realizar retrospectivas. Confira também a Extensão Retrospectivas do Marketplace.

  • Quadro de acompanhamento de melhorias: boas ideias para melhorar processos podem surgir de qualquer um a qualquer momento. Capturar essas ideias para discutir e decidir como agir com relação a elas rapidamente é fundamental para dar suporte a esforços de melhoria de processo.

    Um quadro branco fornece meios fáceis e visuais para capturar ideias. Além disso, você pode criar uma equipe de acompanhamento de melhoria e capturar as ideias que acompanha em um quadro Kanban eletrônico.

  • Institucionalizar o compartilhamento: compartilhar práticas recomendadas e comunicar ideias ajuda todas as equipes dentro de uma organização a crescer e melhorar. Desenvolver uma cultura de aprendizado é fundamental para dar suporte a essa e a outras atividades de melhoria contínua. Algumas ideias a serem consideradas:

    • Wikis internos

    • Listas de distribuição internas

    • Semanas de hackathon ou 10% de tempo de hack

    • Equipe interna de suporte Agile para dar suporte a equipes que adotam práticas Agile

      The Culture Game fornece um bom recurso para gerentes Agile para ajudar equipes a adotar o Agile e compartilhar melhores práticas.

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

Software de trabalho

"Fornecer software de trabalho com frequência, de algumas semanas a alguns meses, com preferência pelo menor tempo."
"O software de trabalho é a principal medida do progresso."
- Manifesto Agile

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

  • Sinalizadores de recursos: use sinalizadores de recursos para habilitar ou desabilitar o acesso a diferentes recursos. Dê suporte para ativar recursos para os usuários pioneiros para obter comentários sobre o trabalho.
  • Sequências de lançamento: forneça outro tipo de cadência para entregar um ou mais recursos. As equipes de recursos entendem o agendamento pré-planejado de entregar novos recursos e planejam corretamente. As sequências de lançamento podem corresponder à mesma cadência de sprint estabelecida para a organização ou ocorrer em uma cadência diferente. Confira Estrutura Agile em Escala para saber como configurar sprints e sequências de lançamento.
  • Integração contínua: adote processos que eliminam o trabalho manual e, em vez disso, automatize o fluxo de software por meio dos ciclos de teste, compilação e implantação.
  • Código aberto interno: traga o valor e o etos desenvolvidos na comunidade software de código aberto para suas equipes de desenvolvimento internas.

Junto com as práticas acima, você encontrará mais diretrizes sobre como dimensionar ferramentas Agile nos seguintes artigos:

Recursos do setor

Práticas que não são colocadas em escala

  • Estimativa de iniciativas grandes: parte dos métodos de projeto em cascata envolvia a estimativa de recursos e agendamentos. Quanto maiores as iniciativas, menor a probabilidade das estimativas terem qualquer valor. À medida que os projetos crescem, riscos e impedimentos imprevistos 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 modo confiável previsões de longo alcance é problemático. As equipes variam na maneira como estimam seu trabalho e essas variações aumentam ao longo do tempo.
  • Soluções prescritivas de cima para baixo: um tamanho não serve para todos, e uma solução normalmente não se encaixa em todas as equipes. Dar suporte à autonomia da equipe significa permitir que as equipes encontrem as próprias soluções.