Quando o assunto é metodologias ágeis de desenvolvimento, provavelmente você vai pensar em Scrum, Kanban, Lean e Smart. Todos esses métodos culminaram no Manifesto Ágil, uma declaração composta por 12 princípios e 4 valores que orientam a construção de softwares.
Estas metodologias são muito interessantes - ainda mais se você está começando a se familiarizar com esse universo. Porém, como veremos neste post, não devemos nos apegar a estes processos, e sim adaptá-los às demandas de cada negócio e produto digital.
Além disso, precisamos compreender que o desenvolvimento ágil de softwares envolve não apenas metodologias da engenharia, como também do design, que atua como peça-chave na solução de problemas.
Criado para potencializar resultados, o Manifesto Ágil reúne ações, ferramentas e estratégias utilizadas no desenvolvimento de softwares.
Tudo começou em meados dos anos 90, quando profissionais da área questionaram as metodologias tradicionais, julgando-as pouco efetivas, ou mesmo impraticáveis.
A insatisfação era justa: indústrias e tecnologias se modificam com tanta velocidade que, muitas vezes, os ‘métodos pesados’ simplesmente não conseguem acompanhar o passo. Além disso, nem sempre os clientes conseguem definir, de forma clara e objetiva, os requisitos de um software, tornando tudo ainda mais difícil.
A saída foi criar novos processos, capazes de se adaptar às constantes mudanças de mercado e indefinições iniciais de um projeto. Foi aí que surgiram as metodologias ágeis de desenvolvimento de software, ‘uma coletânea de diferentes técnicas e métodos, que compartilham os mesmos valores e princípios básicos.’ (COHEN et al, 2003, p.2).
Anos mais tarde (no início de 2001, para ser mais exata), 17 criadores e representantes destas novas metodologias se reuniram para discutir alternativas. Eles foram enfáticos ao dizer que não eram contrários à implementação de processos ou ao uso de metodologias. Na verdade, defendiam a modelagem e a documentação, contanto que não fossem em excesso. Priorizavam agilidade e flexibilidade, afinal, todo planejamento tem suas limitações e todo projeto está sujeito a adversidades e surpresas.
Juntos, eles definiram o Manifesto Ágil, que até hoje é uma referência no desenvolvimento de softwares. Tal documento expressa os valores fundamentais das metodologias ágeis e seus 12 princípios.
As metodologias ágeis de desenvolvimento são baseadas em 4 valores essenciais:
Perceba como, atualmente, esses valores foram absorvidos por diversos negócios, especialmente startups e empresas digitalmente maduras.
Agora, vamos aos 12 princípios do Manifesto Ágil:
Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado;
Mudanças nos requisitos são bem-vindas, mesmo em uma etapa mais tardia do desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente;
Trabalhar com ciclos de produção curtos, entregando softwares funcionais simples para testar hipóteses e colher aprendizados;
Desenvolvedores e demais profissionais devem trabalhar diariamente em conjunto por todo o projeto;
Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho;
O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face;
Software funcionando é a medida primária de progresso;
Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante por tempo indeterminado;
Atenção contínua à excelência técnica e bom design aumentam a agilidade;
Simplicidade - a arte de maximizar a quantidade de trabalho não realizado - é essencial;
As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis;
Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então ajusta seu comportamento de acordo com o que foi definido.
Se você trabalha com desenvolvimento de softwares há algum tempo, deve saber de cor e salteado os métodos ágeis abaixo. Mas, se esta é a sua primeira viagem, então é bom prestar atenção às próximas linhas. Elas podem ser interessantes para seu negócio. 😉
O Scrum é uma das metodologias ágeis de desenvolvimento mais conhecidas do mercado. Foi criado por Ken Schwaber e Jeff Sutherland para facilitar a gestão de projetos e a organização de equipes.
Funciona assim: cada membro do time possui funções e responsabilidades específicas no processo. Enquanto o Product Owner gerencia demandas, prazos, metas e processos, alinhando com a equipe as necessidades e objetivos do cliente; o Scrum Master coordena o trabalho de todos, delegando papéis e acompanhando a execução das tarefas para que tudo ocorra conforme o esperado. Aos demais profissionais da equipe, damos o nome de ‘dev team’ (time de desenvolvimento).
O Scrum é dividido em Sprints, que são os intervalos entre as entregas definidas para o desenvolvimento das etapas. Cada Sprint tem um Increment, isto é, um objetivo final a ser atingido. Assim que cada fase é concluída, ocorre um Sprint Review, ou seja, uma revisão do produto. Feito isso, o dev team, o product owner e o scrum master realizam um Sprint Planning para determinar o objetivo da etapa seguinte e o que será feito (plano de ação).
Esse processo é cíclico e termina apenas quando o desenvolvimento do produto é concluído.
O kanban é uma técnica de gerenciamento de atividades que pode ser aplicada em diversos momentos.
Tenho um amigo, por exemplo, que o utiliza para gerenciar os livros que ele quer ler, está lendo e concluiu a leitura.
Parece insano? Nada disso! O Kanban é ótimo para quem quer ter uma visão do todo e também dos detalhes. Funciona da seguinte forma: Um quadro, físico ou digital, é dividido em 3 colunas. Da esquerda para direita temos ‘para fazer’, ‘fazendo’ e 'feito.
Cada tarefa é anotada em um cartão e ‘passeia’ pelas colunas conforme o andar da carruagem.
Kanban criado no Pipefy, plataforma de gerenciamento cocriada aqui na ateliware. Saiba mais. (Imagem: blog Pipefy)
Embora esta metodologia ágil de desenvolvimento seja bastante simples, exige atualização e acompanhamento constante por parte da equipe. Ou seja, ela precisa estar comprometida e engajada com o método.
Você encontra uma versão digital do kanban no Pipefy, um produto cocriado aqui na ateliware.
A metodologia Lean é indicada para validação de ideias e hipóteses, conferindo maior agilidade no desenvolvimento de produtos digitais ou físicos.
Seu maior objetivo é identificar e eliminar possíveis desperdícios. Por isso, o método Lead contribui para a redução de custos e de complexidade das tarefas, além de otimizar a produtividade, as entregas e o compartilhamento de informações.
O Lean é dividido em 3 passos: construir, medir e aprender. Seu criador (Eric Ries), recomenda a criação de um PMV (Produto Mínimo Viável) durante o desenvolvimento de um software. O PMV (ou MVP, em inglês) é uma versão simplificada e funcional do produto, utilizado para validar ideias e gerar aprendizados para que a versão final atenda ao máximo às expectativas do mercado e do negócio.
O método Lean inspirou a criação do Design Sprint, que é capaz de gerar soluções em apenas uma semana.
Assim como o Kanban, você pode aplicar o Smart em diferentes contextos. Basicamente, esta metodologia ágil de desenvolvimento foi criada para traçar metas objetivas e realistas.
O método Smart é baseado em 5 princípios, sendo:
Diante de cenários incertos e competitivos, as empresas estão percebendo a necessidade de implementar processos mais ágeis e eficientes. Todas as metodologias que vimos acima podem te ajudar nisso - mas você não deve se prender à elas.
Como assim?
Durante uma GOTO Conference, Dave Thomas, um dos criadores do Manifesto Ágil, destacou o seguinte: não devemos substituir os princípios pelos processos. Ou seja, não devemos esvaziar o significado de agilidade.
Ser ágil não é seguir esta ou aquela metodologia, e sim:
A forma como você vai fazer isso vai depender da equipe e estrutura disponíveis, metas de negócio e, até mesmo, do nível de maturidade digital.
Portanto, antes de seguir um passo a passo ou outro, reflita: por que você está fazendo isso? Onde você quer chegar?
E o design? Como ele pode contribuir para o desenvolvimento ágil de softwares?
Na construção de qualquer produto digital ou físico, o design desempenha 3 papéis fundamentais:
Para satisfazer as demandas dos usuários, precisamos compreender quais são. Por isso, o ideal é mapeá-las desde o início do projeto. Este mapeamento é realizado a partir de uma análise de jornada e do comportamento do público-alvo. Durante esse processo investigativo, coletamos informações para identificar:
Aqui na ateliware, chamamos esse processo de Discovery. Nele, utilizamos metodologias do design thinking e do double diamond para mapear pontos de atenção e oportunidades.
Tudo começa com uma coleta de informações, que pode ser realizada a partir de pesquisas qualitativas e quantitativas. Depois, analisamos os resultados e confrontamos com as necessidades do negócio. Esta etapa é conhecida como UX Research.
Feito isso, definimos o road map, ou seja, o caminho que iremos percorrer até o lançamento do produto. No road map consta tudo o que precisa ser feito, quais são as prioridades e quando ocorrerão as entregas.
Exemplo de road map. (Imagem: Roadmunk)
No Discovery também temos o user flow, os wireframes e os protótipos.
O user flow é um desenho de todas as funcionalidades mínimas que o produto deve conter, assim como da sequência de passos executados pelo usuário para atingir determinado objetivo. Nele também começamos a trabalhar a arquitetura da informação, compreendendo o que irá dentro de cada tela e o que cada campo deve conter, por exemplo.
Exemplo de user flow. (Imagem: Dribbble)
A partir dessas funcionalidades, criamos os wireframes, que são representações (geralmente em baixa fidelidade) de todas as telas. Aqui, o objetivo é avaliar se o fluxo funciona e como a estruturação da página e das informações vai ficar.
Exemplo de wireframe de baixa fidelidade. (Imagem: Ergomania UX)
Já nos protótipos, verificamos se as telas estão funcionando. Ao clicar em um botão, por exemplo, ele me leva para onde deveria? Esse caminho faz sentido? Precisa ser reajustado? De que forma? Este teste deve ser realizado, preferencialmente, com os usuários do produto para colher feedbacks do que precisa ser alterado e evitar vieses cognitivos.
Estes testes com wireframes servem para validar ideias, diminuindo o risco de lançar um produto falho, que não faz sentido.Além disso, poupam recursos durante o desenvolvimento, pois telas de baixa fidelidade exigem menos tempo para serem construídas.
À primeira vista, este processo pode parecer um pouco oneroso. Porém, o tempo investido em design no início de um produto certamente irá economizar recursos mais à frente.
Imagine desenvolver e lançar um software sem verificar se ele realmente está de acordo com o que os usuários e com o que o seu negócio precisa. Certamente ele precisará de muito mais manutenção e terá sua escalabilidade prejudicada.
Utilizar metodologias ágeis de desenvolvimento não é fazer tudo às pressas, mas agir com eficiência para evitar problemas no futuro.