Os times remotos e distribuídos podem se destacar no desenvolvimento ágil de software, mas é preciso trabalho e experimentação
Isaac Sacolick, da Inforworld – 21/04/2020 às 8h00
As metodologias ágeis funcionam melhor quando todos da equipe estão juntos em um local. Quando as equipes compartilham um espaço de trabalho fica fácil para os colegas fazer perguntas, parear tarefas de programação e resolver problemas sem agendar reuniões. O uso de tecnologias como de conferência na web, bate-papos em grupo e e-mail não é tão eficaz quanto as interações diretas de pessoa para pessoa.
Dito isso, as organizações podem fazer com que as metodologias ágeis sejam excelentes com equipes remotas e distribuídas, mas é preciso algum trabalho e experimentação. Os membros da equipe devem encontrar o uso ideal das tecnologias e ajustar-se aos estilos de comunicação para garantir a produtividade, a colaboração e a qualidade da equipe.
Com a eclosão do COVID-19, muitas equipes ágeis devem mudar do escritório para o home office. Essa será uma nova experiência para muitas pessoas que não trabalharam em casa por uma parte significativa de suas carreiras e para equipes acostumadas a interações pessoais. Além disso, alguns membros da equipe podem adoecer ou enfrentar outras dificuldades devido à crescente pandemia; portanto, as equipes ágeis devem se adaptar a uma nova maneira de trabalhar.
Este artigo é um guia simples, destinado a ajudar os membros da equipe, times e organizações na transição de equipes ágeis presenciais para equipes altamente distribuídas.
1 – Escolha equipamentos, ferramentas e espaço de trabalho adequados
Se você estiver trabalhando remotamente, verifique se possui uma configuração que funcione para você, sua empresa e sua equipe. Pense nisso como uma mudança de escritório e invista o tempo com antecedência para avaliar as opções e garantir que você tenha tudo o que precisa para ser produtivo, com conforto e um espaço em que seja menos provável que você se distraia.
Algumas alterações que você precisará fazer não ficarão claras até você começar. Se você tiver pouca conectividade, pode ser necessário realocar o roteador sem fio ou alternar para uma conexão com fio.
A localização da sua mesa pode precisar de ajustes se você estiver fazendo muitas videoconferências. Você provavelmente terá que dizer aos membros da família para manter distância quando estiver trabalhando.
2 – Esteja presente e conversar com colegas de equipe
As equipes ágeis conseguem equilibrar o tempo dedicado à colaboração com o tempo dedicado aos esforços concentrados para codificação e outras atividades de desenvolvimento. No escritório, é um pouco mais fácil ver o foco de um colega de equipe, e as equipes ágeis disciplinadas encontram maneiras de evitar distrações e mudança de contexto.
Ao trabalhar remotamente, as equipes precisam estar on-line, mas também compartilham sua disponibilidade. Ferramentas como Slack e Microsoft Teams permitem definir o status de disponibilidade, enquanto outras ferramentas de colaboração permitem silenciar as notificações.
O uso das configurações de status é extremamente importante quando as equipes estão abertas a horários de trabalho flexíveis.
As equipes ágeis devem agendar um horário para as sessões formais de colaboração e realizar o trabalho para concluir as histórias dos usuários, mas os membros da equipe também devem se envolver em pequenas conversas.
As pessoas respondem de maneira diferente aos momentos de estresse e ao trabalho remoto, por isso é importante manter o olho um no outro. Além disso, as pessoas têm diferentes estilos de comunicação on-line e pessoalmente, e há uma nova oportunidade de envolver mais pessoas nas conversas on-line.
Os mestres do Scrum, os líderes técnicos e os proprietários do produto devem fazer regularmente perguntas à equipe sobre seu nível de entendimento em relação aos requisitos, bloqueadores do progresso e se há algo que eles precisam para melhorar sua produtividade e felicidade.
Por fim, os mestres de Scrum e os líderes técnicos de várias equipes devem estar em contato regular entre si. Suas experiências e problemas ao gerenciar suas equipes remotas, provavelmente, não são exclusivas. Compartilhar todos os aprendizados sobre como eles estão conseguindo colaborar remotamente com suas equipes ágeis beneficiaria, sem dúvida, todo o grupo.
3 – Revise abordagens para cerimônias ágeis
As equipes ágeis que mudam para a colaboração remota não precisam reprojetar seu processo ou acabar com as cerimônias ágeis. Mas trabalhar à distância pode exigir que os mestres de scrum repensem como conduzir a reunião, dependendo do tamanho da equipe e das ferramentas de colaboração disponíveis.
Por exemplo, as equipes in loco que examinam o quadro de scrum durante o stand up diário precisam criar uma versão digital dessa cerimônia. Se a equipe é pequena e historicamente experimentou poucos bloqueios que impedem o trabalho de usuários, eles podem acabar com uma reunião e substituí-la por uma reunião de bate-papo agendada. Outras sugestões para equipes ágeis remotas:
- Use ferramentas do quadro branco digital para sessões de planejamento e design de sprint;
- Configurar videoconferência na web para reuniões de compromisso;
- Selecione uma pessoa para compartilhar a tela durante as revisões do sprint;
- Use pesquisas ou aplicativos de baixo código para capturar feedback em retrospectivas.
4 – Comprometa-se com equipes realistas e tarefas individuais
As equipes ágeis que mudam da colaboração pessoal para a remota precisam redefinir suas velocidades de sprint e revisar o nível e a complexidade do trabalho com o qual eles podem se comprometer e concluir realisticamente.
Os mestres do Scrum e os líderes ágeis devem aplicar práticas semelhantes às equipes ágeis recém-formadas e permitir que as equipes se ajustem às novas formas de trabalho.
Por exemplo, comprometer-se com histórias complexas de usuários que exigem contribuições de vários membros da equipe é desaconselhável, porque alguns colegas de equipe podem ficar indisponíveis durante o sprint. Se possível, essas histórias devem ser divididas em pequenas ou atrasadas, se o proprietário do produto puder priorizá-las.
Da mesma forma, as equipes ágeis podem querer evitar se comprometer com histórias que dependem do trabalho de outras equipes. A colaboração adicional pode levar alguns sprints para definir para equipes remotas recém-formadas.
5 – Aumentar o nível de documentação
As equipes de desenvolvimento ágil priorizam o código de trabalho em vez da documentação inicial, mas isso não significa que a arquitetura, APIs e código de documentação não sejam necessários.
Os times que trabalham remotamente por longos períodos podem querer discutir os padrões de documentação e verificar se são necessários esforços mais significativos. Às vezes, documentar o código pode substituir algumas das discussões pessoais da implementação sobre como um módulo de código funciona ou como um colega de equipe está lidando com dívidas técnicas.
6 – Invista em picos, CI/CD e endereçamento de dívidas técnicas
As equipes que esperam trabalhar remotamente por longos períodos podem achar mais fácil se concentrar em histórias mais técnicas do que em histórias que exigem interações com o proprietário do produto e as partes interessadas.
Por exemplo, instrumentar uma experiência do usuário em várias etapas envolve a colaboração entre o proprietário do produto, designers, desenvolvedores e testadores. Pode ser mais difícil coordenar discussões ou desenvolver um entendimento compartilhado das necessidades do usuário final quando as equipes estão começando a trabalhar remotamente.
Existem outras oportunidades para priorizar o trabalho que exige menos colaboração e mais concentração e inovação individual. Priorizar pequenos picos para testar novas ideias é um exemplo, especialmente se um desenvolvedor puder trabalhar em uma pequena prova de conceito com poucas interrupções ou alternância de contexto.
Outra opção é priorizar o endividamento técnico em nível de código, especialmente refatorar módulos de código, adicionar testes de unidade ou melhorar o tratamento de exceções. Uma terceira opção é investir tempo para desenvolver ou melhorar a automação de CI / CD (integração contínua e entrega contínua).
Essas atribuições mais desafiadoras tecnicamente também ajudam os desenvolvedores a se concentrarem em concluir um trabalho em áreas nas quais veem os benefícios diretamente.
7 – Revise as estratégias de implantação e reduza os riscos
Equipes ágeis altamente colaborativas aprendem a trabalhar juntas como equipes de hóquei de alto desempenho. No hóquei, mesmo que o disco se mova rápido e possa saltar irregularmente, os jogadores usam uma mistura de jogadas e improvisações projetadas que permitem tanto o jogo defensivo forte quanto o jogo ofensivo explosivo.
Agora, mova essa equipe de uma arena coberta e peça para eles brincarem em um lago ao ar livre, e eles precisarão de algum tempo para se adaptarem aos elementos. Eles jogarão com a defesa conservadora por um tempo até se sentirem confortáveis com o novo ambiente e recuperarem seu ritmo.
O mesmo vale para equipes ágeis e organizações ágeis de várias equipes. É verdade se as equipes estão trabalhando em sistemas legados ou construindo aplicativos de primeira nuvem usando as práticas mais recentes de devops.
As condições que exigem que as equipes ágeis trabalhem remotamente provavelmente impactarão outros aspectos dos negócios, incluindo operações, expectativas dos clientes e dinâmica da cadeia de suprimentos.
Clientes e usuários finais podem não querer a mesma frequência de implantação, especialmente se essa frequência arriscar a confiabilidade ou o desempenho do aplicativo. Se você possui APIs que funcionam com os fornecedores da sua empresa, esses fornecedores podem ficar menos acessíveis para participar do teste das alterações. Se o aplicativo de software estiver sujeito à conformidade ou supervisão regulatória, poderá ser mais difícil obter as revisões e aprovações necessárias.
As equipes ágeis devem reconhecer o conjunto mais amplo de alterações que afetam o modelo de negócios, os clientes e o ambiente de trabalho de sua organização. Os princípios da organização que impulsionaram tudo, desde a velocidade e a frequência da implantação até os tipos de trabalho e histórias de usuários priorizados, precisarão ser revisados sob uma nova perspectiva operacional.
Uma grande parte de ser ágil, e não apenas seguir práticas ágeis, é reconhecer quando e como mudar.