Toda a vez que leio um livro ou artigo sobre metodologias ágeis para o desenvolvimento software eu sempre concordo que os conceitos são bons e fazem todo sentido. O único problema é que na prática eu precisaria contratar uma equipe genial de Engenheiros de Software pra fazer a teoria funcionar 100%. Os livros são bons como ponto de partida para testar novas abordagens para as metodologias, mas implementar metodologias ágeis com regras rigorosas é justamente o que pode causar resultados ruins — especialmente quando se trabalha com recursos “limitados”.Considerando o futebol como uma figura de linguagem:

Um técnico de futebol profissional jamais usaria as mesmas técnicas para treinar um time da Série A com um clube regional de uma divisão inferior. Eles têm um nível completamente diferente de jogadores, diferentes objetivos e por isso a formação/métodos de trabalho devem ser aplicadas de formas diferentes para alcançar bons resultados.A maioria das Startups fora do Vale do Silício não tem orçamento para contratar uma equipe genial de desenvolvimento. Na verdade essas Startups muitas vezes começam com os desenvolvedores juniores e inexperientes que podem construir um MVP sem se preocupar com a qualidade do código ou processos.

Os verdadeiros problemas costumam aparecer depois do modelo de negócio ser validado e a fase do MVP ter terminado. Geralmente o que acontece é uma aplicação errada de metodologias ágeis que provavelmente não se encaixa na equipe nem no produto implementado. O pior é que mesmo quando os desenvolvedores se queixam dos processos os responsáveis por ele tendem seguir a risca a teoria e muitas vezes pensam que o problema está nas pessoas e não o processo.

Na minha experiência uma boa metodologia ágil deve evoluir ao longo do tempo imitando o processo de desenvolvimento de produto que precisa ser enxuto(lean), simples e limpo para que o processo não seja mais importante do que o trabalho em si. Se eu ouvir minha equipe falando muito sobre a metodologia é um sinal de que o processo não é tão suave e simples como ele deveria ser e provavelmente a equipe não está trabalhando da maneira mais eficiente possível. Em minha opinião uma metodologia ágil precisa ser um processo invisível que sirva como suporte para ajudar a equipe de tecnologia atingir as metas o mais rápido possível e da maneira mais eficaz e eficiente.

New ParagraphConsidere por um segundo que o processo de desenvolvimento é um produto que você precisa medir e analisar os resultados e feedback. Depois de cada “sprint” você precisa olhar para trás e ver o que deu errado para saber o que você precisa melhorar ao longo do tempo. Claro que para fazer isso você precisa testar diferentes abordagens que podem ou não funcionar na primeira iteração.

Aqui estão alguns pontos que você deve levar em consideração quando for estabelecer uma metodologia ágil.

  1. Analise o tipo do projeto
  2. Analise a maturidade e tipo de equipe (distribuído vs local)
  3. Escolha uma metodologia ágil como uma base (Kanban, Scrum, XP, LSD …)
  4. Altere a metodologia e adapte ela para o projeto e equipe
  5. Teste ao longo de aproximadamente duas “sprints”
  6. Analise os dados (velocidade, feedback da equipe e dos stakeholders, qualidade da entrega), e ajuste conforme necessário
  7. Repita 5 ou 6 vezes ao longo do tempo

A metodologia precisa facilitar a agilidade de implementação, a comunicação da equipe e a qualidade da entrega. Às vezes isso é mais complicado em uma startup porque é necessário ter um hábito semanal sobre a metodologia usada enquanto muitas vezes o foco é em implementar o produto e bater metas.

Um grande exemplo de quando a metodologia precisa ser revista é, por exemplo, quando alguns casos de uso de um único produto começam a afetar múltiplos sistemas e equipes de desenvolvedores.Um sinal de que processo está funcionando é quando outras áreas da empresa começam a usar alguns dos conceitos implementados em tecnologia para conseguir melhorar o desempenho. Isto geralmente acontece quando uma startup chega no seu “momentum” e a tecnologia não só conduz o desenvolvimento do produto, mas também inspira outras áreas do negócio.

Uma boa implementação de um processo de desenvolvimento ágil deve envolver todos os membros da equipe (CTOs, gerentes de produto, gerentes de projetos e desenvolvedores) para que todos estejam na mesma página.Este assunto é muito amplo e isso é obviamente uma abordagem muito teórica e genérica para o problema, É apenas meu ponto de vista com base nas experiências adquiridas ao longo dos anos.Vou tentar ir me aprofundar mais neste assunto nos próximos artigos.

Artigo originalmente publicado em inglês no Pulse pelo Ricardo Parro

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>