Como executamos projetos ágeis como equipe distribuída estendida dos clientes
Publicados: 2018-12-14Um relatório recente da Computereconomics descobriu que, no período de 2018/19, o processo de desenvolvimento de aplicativos emergiu como o que testemunhou a máxima oportunidade de terceirização – com 56% das organizações em todo o mundo terceirizando seus requisitos de desenvolvimento.
A razão por trás dessa crescente demanda por terceirizar as necessidades de desenvolvimento de aplicativos móveis tem sido a mesma de sempre - Custo menor do que o que teria que ser desembolsado se empregasse desenvolvedores do próprio país, permitindo maior foco no negócio principal e melhor qualidade de serviço.
No entanto, mesmo com a terceirização ocupando um lugar central no setor de desenvolvimento de aplicativos, descobrimos que existem algumas preocupações comuns que os clientes demonstram quando planejam terceirizar seu projeto de desenvolvimento de software fora de sua nação geográfica.
Neste artigo, veremos como a Appinventiv trabalha com clientes offshore usando o ciclo de desenvolvimento ágil distribuído, permitindo um processo de trabalho mais conectado com risco alinhado e modelo de remuneração em todos.
Mas antes de chegarmos à parte em que contamos como operamos como a equipe distribuída de nossos clientes e trabalhamos tão perfeitamente que nos tornamos sua equipe de tecnologia interna estendida, é importante saber o que significa Equipe Ágil Distribuída .
O que queremos dizer com equipe ágil distribuída
Uma equipe distribuída é um conceito usado para explicar o evento em que duas ou mais equipes funcionam em várias localizações geográficas, em vez de um espaço de escritório ou até dois espaços de escritório em uma cidade.
A equipe ágil distribuída depende de tecnologias digitais para interagir perfeitamente e trabalhar em conjunto para o mesmo objetivo – entrega de projetos em tempo hábil.
Por que as empresas investem em uma equipe distribuída de desenvolvimento de aplicativos móveis?
Há uma série de razões que levam as empresas a investir em equipes distribuídas, razões que variam de:
- A escassez de desenvolvedores qualificados em sua nação
- A necessidade de testar o mercado antes que um investimento seja feito para a formação da equipe
- Para aproveitar o benefício da equipe flexível que pode ser aumentada no momento de dimensionar o aplicativo e dissolvida quando a necessidade terminar.
Com a definição e a necessidade agora atendida, vejamos agora como a equipe Appinventiv trabalha como uma equipe distribuída de nossos clientes. Mas antes de pularmos lá, vamos ver rapidamente como é nossa estrutura de equipe ágil distribuída típica –
Abordagem Appinventiv para Desenvolvimento Ágil Distribuído
Muitas vezes recebemos um projeto onde a exigência nos obriga a trabalhar em estreita ligação com os FTEs dos clientes. Nesses casos, torna-se muito importante que não deixemos que a distância em mil milhas entre o trabalho e que sejamos capazes de fazer mudanças e agir no processo de desenvolvimento em tempo real.
Como garantimos a entrega pontual sem nenhum escopo de atraso de comunicação e mal-entendidos é uma pergunta cuja resposta está na Metodologia Ágil Distribuída .
Adequado para empresas de pequena e grande escala, seguir as melhores práticas ágeis distribuídas é muito útil quando temos que trabalhar ao lado de uma equipe que está em outra localização geográfica com um fuso horário absolutamente diferente.
Vejamos o Método de Desenvolvimento Ágil Distribuído que aplicamos em nosso processo de desenvolvimento de aplicativos móveis.
Depois que apresentamos todos os membros da equipe e colaboramos com o software de gerenciamento de projetos, o trabalho propriamente dito começa.
Formulamos o processo de metodologia ágil diária do Scrum . Embora em seu sentido tradicional, o Scrum exija uma reunião presencial de 15 minutos, onde cada participante compartilha o status de suas tarefas e informa a equipe das tarefas que serão realizadas em seguida, é quase impossível seguir o mesmo processo quando metade da equipe está sentado em alguma outra nação geográfica em algum outro fuso horário.
O que fazemos para manter viva a essência da interação face a face no scrum é realizar uma videochamada em um momento determinado, adequado para todos da equipe que trabalham no projeto. Com a ajuda do compartilhamento de tela, nosso Agile Scrum Master executa o backlog de sprint virtual com a ajuda de ferramentas como Trello ou Jira, permitindo que cada membro da equipe atualize para onde o projeto está indo.
O que percebemos é que é muito importante dar a todos os membros da equipe acesso a uma plataforma de rastreamento de tarefas que seja facilmente acessível e atualizável. Também enfatizamos o uso de uma plataforma de comunicação como Skype ou Slack para que todos compartilhem atualizações ou tirem suas dúvidas entre os dois períodos de scrum.
Outra abordagem que seguimos para o processo ágil e scrum diário é que, para cada scrum diferente, nomeamos um scrum master. Assim, cada equipe individual trabalha como uma equipe scrum separada com um scrum master e um product owner – um processo que também é conhecido como Scrum de Scrums.
Neste, todos os representantes do scrum fornecem uma resposta para as seguintes perguntas no scrum –
- O trabalho que a equipe concluiu desde o último Scrum de Scrums
- A equipe de trabalho está planejando fazer antes da próxima reunião Scrum of Scrums
- O bloqueador atual que a equipe está enfrentando
- O bloqueador que pode levar a outra equipe Scrum.
O método permite que todos os principais indivíduos que trabalham no projeto interajam diretamente entre si, algo que sempre resulta em dedicação desde a fase de iniciação até o período de lançamento. Isso garante uma comunicação aberta, clara e transparente entre todas as equipes, onde todos têm voz.
O processo além do scrum de scrums é o mesmo que seguimos na metodologia Agile típica.
Mas o simples fato de que a distância entre nossa equipe e a equipe de nossos clientes está a quilômetros de distância e ainda temos que trabalhar da forma mais integrada possível, trouxe uma série de aprendizados que impulsionamos com a adoção do Distributed Agile. Vejamos quais são esses aprendizados –
Os aprendizados que extraímos trabalhando no processo de desenvolvimento ágil distribuído
1. A criação de uma equipe distribuída é sobre a construção de uma cultura e não de um processo
O que define o sucesso de um projeto que trabalha sob a abordagem ágil para equipes distribuídas não depende de quão bem qualificados são os membros da equipe, mas de quão bem eles são capazes de trabalhar juntos, do senso de propriedade com o qual trabalham e, finalmente, de quão estreitamente alinhados estão com o objetivo do projeto – algo que vem com a cultura e não com a formação de um processo.
2. Apenas projetos SMART são bem-sucedidos
Quando um projeto precisa ser concluído por uma equipe que não está nem no mesmo país e muito menos no escritório, é muito importante que as metas que você definiu para o projeto sigam o SMART – Specific, Measurable, Achievable, Realistic, and Time -emoldurado, conceito para o t.
3. Não há ferramentas alternativas para colaboração online
Não importa quanto custe, você terá que confiar em ferramentas de colaboração online que são em tempo real e têm atrasos mínimos a zero. Em termos de finalização das plataformas de comunicação e gerenciamento de projetos online, você não pode, de forma alguma, diminuir a folga. Você terá que garantir que eles sejam tecnicamente capazes de lidar com suas necessidades.
Agora que vimos os aprendizados que extraímos de nossa extensa experiência de trabalho como uma equipe distribuída, é hora de analisar alguns dos desafios que encontramos durante o processo e como os resolvemos para nos tornarmos um aplicativo ágil distribuído confiável Empresa de Desenvolvimento .
Desafios com a abordagem de desenvolvimento ágil distribuído e como os resolvemos
1. Diferença de Cultura
Normalmente , a abordagem de desenvolvimento de software ágil distribuído exige trabalhar com equipes de diferentes origens culturais. Essa diferença causa atrito por causa de valores e figuras de linguagem diferentes.
Nossa Solução: Trabalhamos de perto com a equipe do cliente nos primeiros dias para que nos acostumemos com suas entrelinhas e contextos.
2. Uma diferença nos fusos horários
O cerne da metodologia ágil distribuída são as equipes que trabalham em diferentes nações geográficas. Em uma situação como essa, é muito comum a ocorrência de um gap de comunicação emergente por causa da diferença de horário.
Nossa Solução: Seguimos o conceito de ágil para uma equipe distribuída em sua essência. Fixamos um horário em que as equipes de todas as nações estão presentes e ativas. Para obter foco e atenção total, pedimos aos nossos colegas de equipe que alterem o horário do escritório no dia do scrum, para que estejam bem dormidos e atentos.
3. Ausência de uma ideia comum de 'Big Picture'
Por causa de uma diferença de localização geográfica, estrutura de trabalho e políticas, pode haver uma discrepância na ideia do Big Picture – o objetivo final do aplicativo móvel. Essa diferença pode causar falta de interesse de alguns membros da equipe e aumento do interesse de outros.
Nossa Solução: Uma reunião de visão no início do projeto e um lembrete em cada scrum, para que todos trabalhem para o mesmo objetivo.
4. Ausência de Propriedade do Código
A ausência de propriedade coletiva do código significa que ninguém é dono do código, é propriedade de toda a equipe e, portanto, quando algo dá errado, o jogo da culpa começa.
Nossa Solução: Aplicamos um sistema de controle de versão para verificar quem está trabalhando em um código e quando e o efeito disso. Desta forma, há total transparência e honestidade na imagem.
Então, esta é a história de como nós da Appinventiv nos tornamos uma equipe distribuída de clientes que pertencem a todos os lugares do mundo.
Quer discutir como elevar o nível do seu desenvolvimento de software ágil distribuído? Entre em contato com nossos estrategistas de aplicativos móveis.