Pontos Principais
- Em vez de "somente" automatizar o desenvolvimento dos processos, as equipes remotas devem focar nas automatizações que realmente fazem sentido. Esquecer as ferramentas e processos ágeis desnecessários para focar em poucas, porém mais efetivas. Não é necessário utilizar o Slack, Asana, Spark e Skype de uma só vez.
- Manter simples o processo ágil. Não é preciso estar obcecado com o processo, o objetivo principal deveria ser ter o trabalho atual pronto.
- O ágil trata da velocidade da execução e rapidez das entregas. Não existe um escopo perfeito, as entregas serão definidas diariamente.
- As sprints devem ser curtas e realistas. Roma não foi construída em um dia. As etapas do projeto são divididas em meses, semanas, dias, para então serem executadas.
- Executar, mas também medir o que está sendo feito. Assim é possível saber onde será necessário trabalhar mais e qual planejamento ocorreu perfeitamente.
Encontrar desenvolvedores de software frequentemente, de um modo geral, foi um dos meus principais focos há alguns anos atrás. Entretanto, em poucos encontros percebi que momentos assim, mais longos, não aconteciam, e os poucos que aconteciam somente tirava suas cabeças do modo de programação. Porém, também era do meu conhecimento que minha equipe técnica interna, os desenvolvedores e eu tínhamos que nos manter sincronizados ⎼ era o que faltava para ter sucesso no progresso. Logo aprendi sobre o estilo de reuniões ágeis e começamos a conduzir reuniões virtuais por meio do Google Hangout para esclarecer pontos-chave, diminuir cargas de trabalho e manter as responsabilidades.
Várias empresas ao redor do mundo estão tentando se tornar lean. Há um crescimento definitivo em trabalhos distribuídos e ágeis hoje em dia. Duas abordagens diferentes, o desenvolvimento ágil e times remotos de engenharia, hoje em dia se complementam por uma boa razão: quando utilizadas juntas para criar projetos de software, permitem que empresas engajem pessoas ao redor do mundo para construir trechos de código de forma alinhada.
Talvez esteja se perguntando "A que isso pode nos conduzir?". Podemos dizer que nos leva a:
- Ciclos mais rápidos de produção;
- Codificação paralela;
- Habilidades para realizar deploy de forma contínua com poucos impedimentos;
- Menos chances de burnout, um desgaste físico e mental por conta do trabalho.
Os ambientes ágeis são apoiados pela ideia de tornar grupos ou equipes internas mais produtivos. A cultura ágil baseia-se no princípio de colaboração, aprendizagem e planejamento contínuo e interações diretas. Quando os negócios se tornam globais e se expandem para países diferentes, as equipes se tornam mais dispersas com o talento vindo de mercados menos competitivos. A colaboração efetiva entre equipes remotas utilizando ágil, como um dos modelos de desenvolvimento da nova era, tem se provado muito efetivo. Contudo, às vezes o desenvolvimento ágil e as equipes remotas têm atritos e caem em diferentes tipos de desafios como:
- Criar harmonia entre os membros da equipe;
- Coordenar diferentes fusos horários;
- Agendar reuniões quando ambas as equipes estão online ao mesmo tempo por um curto período;
- Colaborar entre culturas diferentes de desenvolvimento.
Para facilitar esta situação conflitante, as empresas requerem uma abordagem de desenvolvimento ágil híbrida, especificamente direcionada para a simplificação e potencialização do desenvolvimento de software remoto. Uma abordagem que, ao invés de alimentar conflitos, ajuda as equipes remotas a resolverem suas prioridades e serem mais produtivas.
Faça funcionar: 6 hacks para equipes ágeis distribuídas
1. Automatize o que faz sentido
A revisão contínua de processos é a chave para alcançar a produtividade no ambiente de trabalho. Ter certeza de que os processos serão revisados um a um, buscando tornar cada processo mais efetivo e simples possível. Investir em uma série de aplicações que eliminem a necessidade de uso de aplicações diferentes para processos diferentes, garantindo caminhos mais rápidos e mais efetivos de realizar tarefas e também garantindo que não existem processos duplicados.
Criar uma cultura de integração contínua é algo muito valioso em projetos com períodos extensos ou ao gerenciar equipes remotas.
A automação economiza tempo em vários sentidos: monitora rapidamente todos os processos de entregas e relatórios e presenteia os participantes com o senso de responsabilidade. Isso tudo é 100% alcançável graças aos últimos avanços tecnológicos. Por exemplo, o Jira foi a escolha feita pelas equipes para planejar e construir produtos. Muitas equipes o escolhem para coletar e organizar ações necessárias, atribuir trabalho e acompanhar as atividades da equipe. E funciona muito bem, sem importar onde as equipes estão baseadas.
Uma pequena história de uso: Vamos dar uma olhada em como a Audi, gigante automotiva alemã, utiliza o Jira no dia a dia de seus negócios.
A Audi emprega milhares de engenheiros, designers, desenvolvedores de software e equipes de qualidade ao redor do mundo. Entretanto, enquanto os escritórios da Audi se espalham pelo globo, seu principal centro de pesquisa e desenvolvimento está situado na Alemanha, empregando +6000 empregados. E por lá começaram a utilizar o Jira para rastrear ações necessárias e o Confluence para a gestão do conhecimento em 2007. Atualmente, ambos são utilizados para apoiar todas as equipes e seus projetos, independentemente do departamento. Na área da facilitação dos testes, a equipe de testes registra no Jira os erros de software do carro durante os testes de direção. Fora das pistas, a equipe utiliza o Confluence para armazenar a documentação, protocolos de departamentos, atas de reuniões, e políticas, ajudando a empresa a se manter eficiente e transparente.
- Google drive para guardar e compartilhar documentos;
- Bamboo e Bitbucket para controle de versão e monitoramento dos códigos enviados;
- Slack para conversas em tempo real, revisões rápidas, mudanças e decisões.
2. Simplicidade no processo Ágil: gaste tempo no trabalho real
O mantra para o sucesso é simples, falar menos e fazer mais. Muitos times ágeis se tornam obcecados pelo próprio modelo de desenvolvimento. O modelo ágil existe para aumentar a produtividade, e se não formos ágeis o suficiente para usar Ágil e ajudar a equipe, então o Ágil falhou.
Para times remotos, por exemplo, a distância pode se transformar em uma justificativa para manter o caminho atual e evitar evoluir a solução quando surgem desafios ou problemas. Isso pode ser improdutivo para todos
Definir um horário diário ou semanal ajudará o time a manter a responsabilidade pelo trabalho que assumiram. Isso garante que os membros do time fazem parte tanto da tomada de decisões quanto da implementação daquela decisão.
Devemos ter certeza de que as reuniões são organizadas no período mais oportuno, alinhando fuso-horários e otimizando a duração conforme percebe-se o engajamento dos funcionários. Também podemos considerar reuniões em horários diferentes, assim equipes com fuso-horários muitos diferentes não precisam carregar o fardo de se ajustarem aos outros. Monitore como essas reuniões afetam a produtividade, reduzindo ou aumentando a frequência de acordo Ao final do projeto, é preciso ter certeza que o resultado final foi compartilhado entre todos os times e que o envolvimento de cada time foi destacado.
Uma pequena história de uso: A Amazon sempre tem sido criadora de tendências quando falamos da adoção de novas práticas de negócios, e a sua adoção generalizada do Scrum é um movimento que é digno de menção. Isso funciona tão bem para a empresa quanto promove uma discreta descentralização da tomada de decisão, o que é desenhado para permitir que os times criem, entreguem e gerem software de alta qualidade em um caminho simples e sem burocracias. Na Amazon, a implementação do Scrum aconteceu dos níveis hierárquicos mais baixos até os de cima, o que permitiu que seus times respondessem a demandas e removessem impedimentos assim que fossem descobertos.
3. O poder da daily: construa um ritual que se transforme em hábito
Por natureza, o Ágil possibilita que detalhes e atividades do projeto a desenvolver em períodos curtos, como protótipos, sejam executados e avaliados, mas as atividades com períodos longos são mais gerais.
O Ágil trabalha com execuções e liberações rápidas; não existe escopo perfeito. Entretanto, o que é feito diariamente define o que será entregue. Atingir metas diárias ou mini-entregas é um grande impulso motivacional paro o time, criando a percepção de estar cada vez mais próximo do resultado final.
Dica de ferramenta:
- Basecamp 3: O Basecamp sempre foi nossa ferramenta de comunicação com o cliente. A nova versão é um pouco mais do que apenas um canal para postar mensagens ⎼ e nos ajuda automatizar tarefas do dia a dia através do seu recurso "to-do list".
4. É tudo sobre sprint
Ter um cronograma é bom mas não deixe as reuniões tomarem o tempo de trabalho dos times.
O nome do jogo é curto e grosso, então manter as sprints curtas conduzirá a uma produtividade melhor e permitirá que o time posso fazer pequenos lançamentos. Afinal de contas, não é apenas sobre lançamentos e produtividade, o mindset do time é que o faz o Ágil nunca estagnar. O planejamento é mais realista por causa das sprints mais curtas e porque é baseado em estatísticas atuais.
Dicas de ferramentas:
Ferramentas como o Jira, quando integradas ao Slack, permitem integrar notificações de eventos importantes (no Jira) e que sejam automaticamente enviadas para canais do Slack. Com isso, os membros da equipe sejam informados em tempo real sobre o progresso da sprint sem precisar esperar por respostas e parar seu progresso.
5. Construa um plano de projeto sólido e que se conecta
Roma não foi construída em um dia, isso levou tempo, esforço e diversas ideias. Da mesma forma, é preciso ter um bom plano de projeto em mãos porque este é o plano de ação que mostrará para sua equipe como um produto ou solução evoluirá ao longo do tempo, não importa onde estejam.
Ter equipes distribuídas significa ter prazos diferentes, o que torna o planejamento mais desafiador porque não se pode ter o mesmo nível de detalhes como quando se tem o time bem próximo. Uma abordagem iterativa como o rolling wave planning pode funcionar melhor em alguns casos, quando se planejam em detalhes as coisas que estão mais próximas (em tempo) e, as coisas que estão mais distantes no momento em um nível macro. Uma vez compartilhado entre múltiplos times ágeis, o plano fornecerá o contexto crucial para o trabalho diário das equipes e continuará sensível às mudanças do cenário competitivo. Basta distribuir em meses, semanas e dias. Os dias deveriam definir as entregas diárias esperadas porque o que será entregue a cada dia é muito importante para o resultado final.
Uma pequena história de uso: Um ecossistema de trabalho ágil promove a cultura de times distribuídos como já demonstrado por algumas grandes empresas da indústria. A Microsoft, por exemplo, tem utilizado com sucesso o modelo ágil no âmbito de toda a empresa.
No começo, tiveram sua parcela de gargalos e isso afetou negativamente a qualidade e o progresso. Contudo, assumiram suas dificuldades e utilizaram frameworks ágeis de terceiros em seus projetos, como o SAFe. Começaram pelo planejamento e arquitetura, passando para a construção de uma funcionalidade e, em seguida, encarando o código. A telemetria foi utilizada para monitorar o sistema em produção e para automatizar testes. Com o desenvolvimento de software ágil, a Microsoft gerenciou as entregas de forma a reduzir de meses para semanas os seus ciclos de lançamento, e também para responder mais rápido aos requisitos dos clientes.
6. Medir, mudar e lançar
Não lance o deploy sem medi-lo. Mais do que nunca, coisas inesperadas acontecem. E quando acontecem, é preciso mudar a estratégia, e ver quais engrenagens mudar e quais não. Ser ágil significa estar disposto a fazer o necessário e isso leva à mudança.
Constra seu próximo plano baseado em dados e métricas de medição.
Para processos ágeis e lean, as métricas básicas são o lead time (a latência entre o início e a execução de um processo), o tempo de ciclo, a velocidade do time e as taxas de abertura e fechamento de atividades. Essas métricas auxiliam o planejamento e ajudam a tomar decisões sobre a melhoria de processos. Não importa se algumas dessas métricas não estão no intervalo esperado ou estão tendendo a direções alarmantes, não assuma o problema. Devemos envolver a equipe, respirar ar fresco e tomar decisões em conjunto sobre como direcionar o problema.
Conclusão
O conceito de equipes ágeis está se expandindo lentamente em direção a empresas ágeis. O ágil é ótimo para o desenvolvimento de software porque foca em times autogerenciáveis, autonomia e visibilidade dentro de um backlog priorizado. O processo de escalar o ágil parece simples: se funcionar em um departamento, basta aplicá-lo em todas as equipes e departamentos para construir uma empresa com ecossistema ágil. É importante lembrar que o mundo é um lugar pequeno até mesmo para equipes distribuídas, e se tornou menor ainda graças à disponibilidade de plataformas de comunicação como o Slack, Jira ou Skype.
Encorajar as mesmas expectativas de comunicação próxima é a chave para manter o processo ágil em equipes distribuídas.
Sobre a autora
Tanya Kumari trabalha como especialista ágil para a Classic Informatics, uma agência de desenvolvimento de aplicativos. Leitora ávida, apaixonada por música e entusiasta de tecnologia, adora estar atualizada sobre os últimos avanços do mundo tecnológico. Quando não está trabalhando em seu último artigo sobre a dinâmica de equipes ágeis, pode ser encontrada perto de uma máquina de café, conversando com colegas sobre as vantagens de se viver um estilo de vida saudável e como alcançá-lo.