O que é Ágil?

Concluído

Agile é um termo usado para descrever abordagens ao desenvolvimento de software, enfatizando a entrega incremental, a colaboração em equipe, o planejamento contínuo e o aprendizado. Ágil não é um processo, mas sim uma filosofia ou mentalidade para planejar o trabalho que uma equipe fará. Baseia-se no desenvolvimento iterativo e ajuda uma equipa a planear e reagir melhor às alterações inevitáveis que ocorrem no desenvolvimento de software. Vamos ouvir o debate da Teresa e do Guilherme após a versão mais recente.

A Teresa diz que tomou pequenos passos para a sua equipa se interessar no DevOps, mas não houve grande progresso. A equipa está muito ocupada a corrigir erros na última versão e não consegue pensar em mais nada.

Lembre-se de que Irwin, o gerente de produto, forneceu à equipe alguns comentários de clientes bastante críticos sobre o site de jogos de corrida. Não foi divertido resolver estes problemas. O Guilherme e a Teresa escreviam o código e reencaminhavam-no para a Mariana, a responsável pelos testes. A Mariana encontrava sempre erros novos e tinha de devolver novamente o código. O servidor de compilação falhou. Tim não conseguiu fazer com que o site do jogo funcionasse na produção, mesmo depois de trabalhar em desenvolvimento e teste. Todos trabalharam longas horas e perderam alguns fins de semana.

Depois de enviarem o lançamento, Mara e Andy sentaram-se para tomar café. Ambos estavam cansados. Mara estava desanimada, mas Andy teve uma atitude diferente.

Andy: Não sei por que você está surpreso. É difícil preparar o software. É sempre um trabalho árduo. Já alguma vez foi diferente?

Mara: Eu tenho, e acho que poderíamos facilitar as coisas aqui também. Acho que o DevOps pode ajudar-nos.

Andy: Lembro-me que fizemos um exercício de mapeamento de fluxo de valor, mas e agora? Temos de começar a trabalhar na nova versão. Pensei que já não íamos utilizar o DevOps.

Mara: Há muito mais que podemos fazer. Acho que devemos dar o primeiro passo e fazer algum planeamento com o processo Ágil. Podemos utilizar o Azure Boards para nos ajudar.

Andy: O que você quer dizer com Agile?

Mara: Agile é uma abordagem para o desenvolvimento de software. O termo "Ágil" foi cunhado em 2001 no Manifesto Ágil. O manifesto estabeleceu alguns princípios de orientação para uma melhor abordagem ao desenvolvimento de software. O manifesto diz:

Valorizamos:

  • Indivíduos e interações sobre processos e ferramentas.
  • Software de trabalho sobre documentação abrangente.
  • Colaboração com o cliente na negociação de contratos.
  • Responder à mudança ao longo de seguir um plano.

Andy: Olha, se você conhece alguma maneira mágica de facilitar a vida, eu sou totalmente a favor. Os meus filhos estão sempre a dormir quando chego a casa. Mas isto parece muito vago e sem soluções concretas.

Mara: Não é mágica, mas podemos fazer isso aos poucos. O Azure DevOps nos dá as ferramentas necessárias para implementar práticas ágeis. Por agora, quando quisermos planear, podemos utilizar o Azure Boards. Antes de mais, pode explicar-me o processo de compilação e ajudar-me a identificar os principais problemas?

Depois de muito café, Mara e Andy identificam os maiores problemas no processo de construção. Todos os problemas surgiram durante o último lançamento. Depois de o Guilherme sair, a Teresa vê as suas notas e decide fazer algum planeamento com o processo Ágil. Sozinha, ela utiliza o processo Básico no Azure Boards para colocar todos os problemas num único local.

O próximo passo é mostrar o quadro à equipa e envolver todos os membros.

Recomendações para a adoção do Agile

A equipe está se preparando para dar seus primeiros passos para adotar o Agile. Aqui estão algumas recomendações gerais que qualquer equipe pode usar para incorporar o Agile em sua organização.

Criar uma estrutura organizacional que suporte práticas ágeis

Para a maioria das organizações, adotar o Agile pode ser difícil. Requer uma mudança de mentalidade e uma mudança de cultura que desafia muitas políticas e processos existentes dentro da organização. Tradicionalmente, a maioria das empresas utiliza uma estrutura de equipa horizontal. Na prática, isso significa que as equipes correspondem à arquitetura do software. Por exemplo, pode haver uma equipe responsável pela interface do usuário de um aplicativo, outra equipe responsável pelos dados e outra equipe responsável pela arquitetura orientada a serviços.

No entanto, as equipes verticais proporcionam melhores resultados para projetos ágeis. As equipes verticais abrangem a arquitetura e estão alinhadas com os resultados do produto. Por exemplo, pode haver uma equipe responsável pela parte de e-mail do aplicativo, e os membros da equipe vêm de todas as três disciplinas mencionadas anteriormente. Outro benefício da estrutura de equipe vertical é que o dimensionamento ocorre pela adição de equipes.

Orientar membros da equipe em técnicas e práticas ágeis

Quando começam a adotar técnicas e práticas ágeis, algumas equipes decidem contratar coaches externos. Os coaches podem até trabalhar com várias equipes para ajudar a remover obstáculos organizacionais e silos, por isso geralmente têm habilidades de ensino e gerenciais. Eles também podem treinar os membros da equipe em técnicas ágeis, como executar stand-up e reuniões de revisão. Com o tempo, porém, é importante que os membros da equipe desenvolvam a capacidade de orientar uns aos outros. Isto significa que a maior parte do trabalho deve ser feito de forma colaborativa e não por indivíduos que passam a maior parte do seu tempo a trabalhar sozinhos.

Habilite a colaboração em equipe e entre equipes

Se a colaboração é a chave para se tornar bem-sucedido no Agile, quais são algumas das maneiras de incentivá-la? Aqui estão algumas ideias.

Alterações culturais

Ao mudar uma cultura, tenha algumas coisas em mente. É importante que os membros da equipe tenham um lugar tranquilo e confortável para trabalhar. Eles precisam de espaços onde possam se concentrar, sem muitas distrações e ruídos.

As reuniões são um facto da vida e podem sentir que tomam conta da vida profissional de uma pessoa. Para dar aos membros da equipe mais controle, as reuniões precisam de uma agenda e prazos rígidos.

As comunicações assíncronas, como e-mail e mensagens, podem parecer esmagadoras e as pessoas muitas vezes sentem que precisam ser respondidas imediatamente. Deixe claro que nem todas essas comunicações precisam de uma resposta imediata.

Os membros da equipa remota são agora a norma em muitas empresas. Todos precisam se sentir confortáveis com todos os membros de sua equipe e tratá-los igualmente, estejam eles no escritório ou trabalhando fora do local. A colaboração através da comunicação deve tornar-se parte do ADN da organização.

Não podemos enfatizar demais a importância de uma boa comunicação, mesmo quando há divergências. A resolução de conflitos é uma boa habilidade para qualquer equipe ágil.

Equipas multifuncionais

Assim como é importante que os membros da equipe trabalhem de forma colaborativa, também é importante que as equipes colaborem entre si. Equipes multifuncionais adicionam novas habilidades e perspetivas que podem ampliar a capacidade de todos de resolver desafios de forma criativa. As equipas multifuncionais também tornam toda a organização mais coesa. Reduzem as guerras de relva e aumentam a sensação de que todos estão a trabalhar para um objetivo comum.

Ferramentas para colaboração

Boas ferramentas podem ajudar os membros da sua equipe Agile a colaborar de forma mais eficaz, tanto dentro da equipe quanto com outras equipes. Aqui estão algumas sugestões para ajudá-lo a começar:

  • Microsoft Teams: o Teams é um aplicativo que fornece um local de trabalho para bate-papo, reuniões, anotações e armazenamento de arquivos.
  • Skype: O Skype é fácil de usar e uma boa ferramenta de uso geral. Muitas pessoas já o têm instalado.
  • Slack: O Slack fornece muitos canais de comunicação separados, tudo a partir de uma única interface. Você pode organizar esses canais de várias maneiras, como por projeto, equipe ou tópico. As conversas são mantidas e pesquisáveis. É fácil adicionar membros da equipe interna e externa. O Slack integra-se diretamente com muitas ferramentas de terceiros, como o GitHub para código-fonte.

Outras ferramentas comuns incluem Google Hangouts, Asana, Trello, GoToMeeting e monday.com. Tente familiarizar-se com as opções para ver quais delas se adequam às necessidades da sua equipa e da sua empresa.