Com certeza se você já teve contato, ou até mesmo já trabalhou com desenvolvimento de sistemas em que a organização de tarefas e times era essencial para o sucesso de um projeto, já ouviu falar sobre as metodologias ágeis. De forma geral, essas metodologias são empregadas nos ciclos de trabalho como forma de organizar, facilitar e documentar as pequenas entregas ao longo do desenvolvimento de um projeto maior.
Começou-se a falar das metodologias ágeis a partir dos primeiros anos de século XXI, mais especificamente com o Manifesto para o Desenvolvimento Ágil de Softwares de 2001. Esse documento foi criado por um grupo de desenvolvedores com o intuito de descobrir as melhores maneiras para desenvolver softwares e ajudar os outros a fazer o mesmo.
O grupo seguiu uma cartela de princípios para sustentar as ideias que nasceram desse documento, sendo alguns deles:
- Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado;
- Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo;
- Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente;
- Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo.
Em resumo, os métodos ágeis surgiram como uma alternativa aos tradicionais, em que uma entrega é feita após meses de trabalho - e os usuários precisam esperar todo esse tempo para visualizar qualquer melhoria, passando a ser um desenvolvimento contínuo, baseado em feedbacks e possibilitando entregas mais rápidas e ágeis.
Exemplos de metodologias ágeis
Como falamos anteriormente, o foco das metodologias ágeis de trabalho é justamente dinamizar o desenvolvimento através da divisão de um grande projeto em pequenas entregas. Entendido isso, passamos para alguns exemplos de métodos ágeis:
SAFe
O Scale Agile Framework é um método ágil de trabalho com foco em disseminar a qualidade e agilidade das entregas a nível organizacional, ou seja, não restringe-se apenas a um projeto específico ou um único squad. Essa metodologia foi desenvolvida em 2011 por Dean Leffingwell e Drew Jemilo para ajudar as empresas e entregar resultados (desenvolvimento de produtos ou serviços de software) que atendesse às necessidades de mudança constante dos clientes.
Segundo os próprios criadores, para a implementação desse método existem 10 princípios básicos a serem seguidos:
- Ter visão econômica;
- Aplicar o pensamento sistêmico;
- Variabilidade;
- Ciclos rápidos e integrados;
- Objetivos para avaliar a solução ao longo do ciclo de desenvolvimento;
- Trabalho enxuto;
- Sincronização;
- Motivação dos times;
- Descentralização;
- Organização em torno do valor.
ASD
Acrônimo de Adaptive Software Development, o método ASD tem foco na colaboração, prototipação constante e auto-gerenciamento das equipes. Foi desenvolvido por Jim Highsmith, como uma forma de ajudar as empresas na resolução de problemas de alta complexidade baseado em um ciclo de aprendizagem colaborativo.
Esses ciclos que mencionamos são compostos por três fases, sendo elas: Especulação, em que se definem os objetivos, metas e requisitos básicos para o desenvolvimento de determinado projeto. Em seguida, a colaboração é o momento em que se cria confiança para criticar, levantar hipóteses, e comunicar-se entre si. Por fim, une-se todos os aprendizados ao longo dos dois primeiros ciclos na fase de aprendizado, para que se possa identificar o que foi bom e o que precisa ser adaptado.
Algumas características fundamentais do ASD são:
- Definição de objetivos muito claros, mas adaptáveis ao longo do processo;
- Atividades focadas no desenvolvimento do software como um todo ao invés de tarefas individuais;
- Adaptável a mudanças que ocorram ao longo do percurso de desenvolvimento.
SCRUM
Considerado hoje o principal framework utilizado no desenvolvimento de softwares, a metodologia SCRUM é dividida em ciclos de desenvolvimento chamadas de Sprints, que geralmente dura de 2 a 4 semanas (dependendo das necessidades do time e/ou do projeto específico). No início de cada sprint acontece uma reunião para planejar as prioridades e identificar o que precisa ser realizado. Coloca-se, então, esse planejamento de atividades em um backlog.
No início de cada dia de sprint ocorre uma rápida reunião, que chamamos de Daily Sprint (com duração de em média 15 minutos), em que cada membro da equipe fala sobre o que fez no dia anterior e o planejamento para o dia atual.
Ao longo do tempo de duração da Sprint os times reúnem-se para compartilhar o andamento do desenvolvimento, identificar as próximas etapas e analisar as dificuldades e pontos de melhoria.
Segundo o próprio criador do método, existem 10 fundamentos básicos do SCRUM:
- Uma reunião por dia, em média 15 minutos, para coordenar os esforços, alinhar a equipe e descobrir os obstáculos do progresso;
- Torne o Trabalho Visível, colocando em um board (físico ou digital) o que foi feito, o que precisa ser feito e o que está sendo feito naquele momento - o famoso To Do, Doing e Done;
- Equipes pequenas trabalham mais do que equipes grandes;
- Antes de cada reunião, todos os envolvidos precisam ter uma compreensão clara de qual é a entrega da reunião;
- Mantenha a equipe com cargos mais horizontais, e esqueça os títulos hierárquicos;
- Faça uma coisa de cada vez e, assim, evite distrações e interrupções desnecessárias;
- Atribua pessoas da equipe para se dedicar 100% a um único projeto;
- Priorize o que precisa ser priorizado, concentrando-se no projeto de maior valor (seja qual for);
- Não torne nenhum membro da equipe como herói, pois isso evidencia uma disfuncionalidade de funções;
- Medir quantas horas um funcionário dedica a um projeto é uma métrica sem sentido.
KANBAN
Uma das metodologias de organização de trabalho mais utilizadas mundo afora, o Kanban não restringe-se apenas ao desenvolvimento de softwares mas também a atividades de gestão pessoal e organizacional. Foi desenvolvido pela Toyota, durante o período de expansão dos negócios como forma de criar um fluxo de trabalho mais eficiente.
Essa metodologia aplicada ao desenvolvimento de veículos da empresa otimizou os processos além de minimizar consideravelmente o desperdício de recursos. Tudo isso tornou a rotina de trabalho mais eficaz, e a entrega dos produtos mais ágil e precisa.
No desenvolvimento de software o Kanban não apenas é bastante eficaz, como também possui pouca complexidade para a implementação. Um quadro de gerenciamento das atividades se movimenta de acordo com o progresso de cada tarefa, e assim as metas e prioridades estão listadas em um único lugar e a equipe pode visualizar as demandas pendentes e o que já foi realizado.
Alguns princípios do Kanban são:
- Priorizar rotinas: Identificando as atividades que precisam ser desenvolvidas primeiro, o trabalho fica muito mais orientado e a entrega é feita com mais eficiência;
- Necessidade de evolução: A cada tarefa existem pontos que precisam ser melhorados ou adaptados;
- Hierarquia interna: É importante entender qual o papel de cada um no desenvolvimento de determinado projeto, para que se saiba a quem recorrer quando acontecer eventuais problemas;
- Incentivo a liderança e autonomia: Ao mesmo tempo que é relevante ter uma pessoa responsável por motivar e orientar o time, como a figura de um líder, os demais precisam ter autonomia nas suas tarefas.
Benefícios de usar essas metodologias no desenvolvimento dos produtos digitais
Os benefícios de aplicar os métodos de trabalho ágil vão além dos processos de trabalho e de um entrega de qualidade, chegando portanto até o cliente final que consegue ter mais visão sobre o que está sendo desenvolvido, dar feedbacks constantes em relação às suas expectativas e pontos que acredita precisar de melhorias, e visualizar o resultado mais rápido.
Para a empresa, os clientes satisfeitos e participativos são o grande trunfo. Mas não só isso. Organizar as demandas sob uma ferramenta ágil aumenta consideravelmente a economia de recursos (sejam humanos, financeiros ou de tempo).
Para os pesquisadores Andrea Tomasini e Dhaval Panchal, no artigo Growing Agile…Not Scaling, estabelecer a melhoria contínua em uma organização como um todo exige o desenvolvimento de bastante disciplina, infraestrutura e, acima de tudo, abertura e confiança.
“Embora a mudança de cultura seja um desafio para todas as organizações, existem abordagens e ferramentas que podem ajudar a entender onde cada um está e também a projetar em conjunto em que direção evoluir para criar o contexto certo para apoiar a estratégia atual. Somente dessa forma, as mudanças permanecerão e serão de responsabilidade das pessoas dentro da organização, e não da instituição que a governa.”
Na décima pesquisa anual sobre State of Agile, da empresa VersionOne, as empresas que adotaram métodos ágeis de gerenciamento e desenvolvimento de projetos observaram um aumento de 87% na capacidade de gerenciar mudanças de prioridade, 85% de acréscimo na produtividade das equipes e 84% de melhora na visibilidade do projeto.
Um dos autores da pesquisa, Lee Cunningham afirmou que penetrou em organizações cada vez maiores ao longo dos anos e agora é predominante em todo o espectro de organizações, desde startups até empresas multinacionais.
“Lidar com a mudança cultural organizacional necessária – começa com uma maneira completamente diferente de pensar sobre como os negócios são feitos. [...] As transformações ágeis fracassadas nos ensinaram que a mudança cultural deve ser conduzida de cima para que essa mudança seja eficaz, generalizada e duradoura.”
São múltiplas as formas de otimizar e aprimorar as rotinas de trabalho, né? Agora você já conhece algumas das metodologias mais utilizadas no mercado e pode escolher a certa para seu time, e que se encaixe nas especificidades do seu produto.