Adotar uma cultura Agile

Se há uma lição a ser aprendida com a última década de "transformações ágeis" é que não há uma solução única para adotar ou implementar uma abordagem Agile. Cada organização tem diferentes necessidades, restrições e requisitos. Seguir uma prescrição cegamente não resultará em sucesso.

O movimento Agile tem como foco descobrir continuamente maneiras de aprimorar a prática da criação de software. Não se trata de uma reunião diária rápida e perfeita ou retrospectiva. Em vez disso, trata-se de criar uma cultura em que a coisa certa acontece com mais frequência do que o contrário. Atividades como reuniões e retrospectivas têm seu valor, mas não mudarão a cultura de uma organização.

Illustration of people talking.

Este artigo detalha elementos fundamentais de que toda organização precisa para criar uma mentalidade e cultura Agile. As recomendações não devem ser seguidas cegamente. Cada organização deve aplicar o que faz sentido em um determinado ambiente.

Agenda e ritmo

Não há um comprimento perfeito de sprint. As equipes têm obtido sucesso com durações de sprint que variam de uma a quatro semanas. O que mais importa é a consistência.

Selecione uma duração de sprint que funcione para a cultura, o produto e o desejo de fornecer atualizações da sua organização. Por exemplo, a divisão de Ferramentas para Desenvolvedores da Microsoft (cerca de 6.000 pessoas) trabalha em sprints de três semanas. A equipe de liderança não escolheu essa duração de sprint; ela veio com o feedback diretamente das equipes de engenharia. Toda a divisão opera neste cronograma de sprint de três semanas. Desde então, os sprints tornaram-se o coração da organização. Agora, todas as equipes marcham ao ritmo do mesmo tambor.

É importante escolher uma duração de sprint e segui-la. Se houver várias equipes Agile, todas elas devem usar a mesma duração de sprint. Se o feedback impulsiona uma mudança, seja receptivo. Quando a duração certa for aplicada, ficará claro.

Uma cultura de envio

Peter Provost, Gerente Principal de Programas de Grupo da Microsoft, disse: "Não há como trapacear no envio". A simplicidade e a verdade dessa afirmação são um elemento fundamental da cultura Agile. O que o Peter quer dizer é que o envio do seu software ensinará coisas que você não pode e não vai entender a menos que você esteja realmente enviando o seu software.

A natureza humana é atrasar ou evitar fazer as coisas até que seja absolutamente necessário. Isso acontece especialmente quando se trata de desenvolvimento de software. As equipes detectam bugs até o final do ciclo, não pensam em configuração ou atualização até que sejam forçadas a fazê-lo e, normalmente, evitam coisas como localização e acessibilidade sempre que possível. Quando surge esse padrão, as equipes acumulam dívidas técnicas que precisarão ser pagas posteriormente. O envio exige que toda a dívida seja paga. Não há como trapacear no envio. Para estabelecer uma cultura Agile, comece tentando enviar o produto no final de cada sprint. Não será fácil no início, mas quando uma equipe tenta fazer isso, ela rapidamente descobre todas as coisas que deveriam estar acontecendo, mas não estão.

Equipes saudáveis

Não existe uma receita para a equipe Agile perfeita. No entanto, algumas características importantes tornam o sucesso muito mais fácil de alcançar.

Colocalizar equipes sempre que possível

Uma equipe pode obter sucesso com pessoas espalhadas em diferentes regiões? Sim, mas é mais difícil. Quando as pessoas estão localizadas e sentadas na mesma sala, as conversas certas tendem a acontecer. Ainda é possível ter sucesso com equipes localizadas ao redor do mundo e em diferentes fusos horários. Mas não seria uma vantagem para essa equipe se ela não tivesse todos esse obstáculos?

Manter as equipes intactas por um intervalo de tempo razoável

Permita que as equipes dominem a arte de criar software juntas. Quando as equipes são espalhadas, qualquer química que elas tiverem desenvolvido é interrompida. Às vezes, é necessário se reorganizar, mas as equipes normalmente são mais produtivas quando têm tempo para aprender a trabalhar juntas. Como regra, tente manter as equipes intactas por pelo menos 12 meses.

Equilibre a carga de trabalho, não as pessoas

Às vezes, as equipes se atrasam e precisam de ajuda. Uma tática comum para resolver isso é emprestar uma pessoa de uma equipe para outra. No entanto, isso pode ser contraproducente. Uma solução melhor é balancear a carga de trabalho para outra equipe, em vez de balancear a carga de pessoas entre elas. Emprestar uma pessoa de uma equipe para ajudar outra atrapalha ambas as equipes e pode frustrar a pessoa que está sendo transferida, mesmo que temporariamente. Tudo isso afeta a produtividade da equipe e, muito provavelmente, impacta negativamente a capacidade de voltar ao cronograma.

Ao balancear a a carga de trabalho e não as pessoas, é possível que uma equipe já estabelecida intervenha e ajude. Torna-se uma conversa sobre prioridades, não uma conversa sobre pessoas.

Permitir que as equipes possuam áreas de recursos, não camadas de arquitetura

Esforce-se para criar equipes verticais que possuam áreas de recursos. Essas equipes são responsáveis por todo o trabalho necessário para adicionar recursos à sua área, desde o banco de dados até as alterações na interface do usuário. A equipe está capacitada para oferecer e possuir uma experiência completa.

Quando equipes horizontais possuem camadas de arquitetura, nenhuma equipe é responsável pela experiência completa. A adição de um recurso requer a coordenação de várias equipes e exige um nível mais alto de gerenciamento de dependências. A resolução de bugs requer que várias equipes investiguem se possuem o código necessário para corrigir o bug. Os bugs são combatidos à medida que as equipes determinam que o bug não é delas e o atribuem a outra equipe.

As equipes de recursos não têm esses problemas. A propriedade e a responsabilidade são claras. Pode haver espaço para algumas equipes baseadas em arquitetura. Porém, equipes focadas verticalmente são mais eficazes.

Próximas etapas

À medida que as equipes embarcam em sua própria transformação Agile, tenha esses princípios fundamentais em mente. Lembre-se, não há uma receita pronta que funcione para todas as organizações. As transformações Agile são uma jornada. Faça mudanças e aprenda com elas. Com o tempo, a organização desenvolverá a cultura Agile de que precisa.

A Microsoft é uma das maiores empresas Agile do mundo. Saiba mais sobre como a Microsoft adotou uma cultura Agile para o planejamento de DevOps.

Saiba mais sobre como o Azure DevOps permite que as equipes adotem e dimensionem uma cultura Agile.