Acompanhando a velocidade do mercado, o desenvolvimento ágil tem se tornado uma abordagem cada vez mais presente em empresas modernas.
Essa é uma realidade diferente daquela observada quando o conceito foi proposto.
No início, as práticas e a mentalidade do desenvolvimento ágil eram restritas a um conjunto de empresas de alta tecnologia, que correspondiam a um nicho de mercado.
Aos poucos, o modelo foi se expandindo e conquistou os departamentos de tecnologia da informação (TI) de diversas companhias.
Como resultado, hoje, gestores de todas as áreas se inspiram nas metodologias e conceitos do desenvolvimento ágil para conduzir os projetos de suas equipes.
Não porque os processos estão mais tecnológicos e informatizados que nunca, e sim porque a dinâmica do mercado atual exige, mais do que nunca, agilidade e eficiência.
As organizações precisam incorporar essas características na sua cultura, e isso só acontece se forem tomadas ações nessa direção em todos seus setores, não apenas no desenvolvimento de softwares e sistemas.
Neste artigo, vamos falar sobre os seguintes tópicos:
- O que é desenvolvimento ágil?
- Quando o termo desenvolvimento ágil apareceu pela primeira vez?
- Desenvolvimento tradicional x desenvolvimento ágil
- Benefícios do desenvolvimento ágil
- 4 valores do desenvolvimento ágil
- 12 princípios do desenvolvimento ágil
- Como funciona o desenvolvimento ágil?
- Scrum
- Extreme Programming (XP)
- Kanban
- Como colocar o desenvolvimento ágil em prática?
Quer entender o que é desenvolvimento ágil e como aplicá-lo na sua empresa? Siga em frente!
O que é desenvolvimento ágil?
O desenvolvimento ágil é uma abordagem em que softwares são desenvolvidos de forma colaborativa, com equipes multidisciplinares que têm um bom nível de autonomia na execução de seus trabalhos.
Muitos consideram o desenvolvimento ágil como um conjunto de métodos, mas essa visão é, de certa forma, limitada.
Porque um método é um conjunto predefinido de práticas, que podem levar a uma mentalidade mais engessada, algo que mais se parece com o modelo tradicional de desenvolvimento de softwares.
Os métodos são importantes, sim. Fundamentais, pois são modelos já testados que permitem colocar os conceitos do desenvolvimento ágil em prática com mais facilidade.
Antes de se dedicar a estudar a fundo essas práticas, porém, é mais importante conhecer os valores e princípios do desenvolvimento ágil, que explicaremos com mais detalhes depois.
Portanto, o desenvolvimento ágil é, antes de tudo, uma mentalidade, a qual leva a determinados modelos de estruturação dos projetos de criação de softwares.
É uma abordagem voltada para resultados, que potencializa a criatividade, a inovação e, principalmente, a flexibilidade.
Características fundamentais em qualquer empresa que deseja se destacar na Era da Informação, da conectividade, da globalização e da indústria 4.0.
Quando o termo desenvolvimento ágil apareceu pela primeira vez?
Como dito anteriormente, o desenvolvimento ágil é, acima de tudo, uma mentalidade, um conjunto de conceitos que são colocados em prática graças a certas metodologias de gestão de processos.
Várias dessas metodologias, porém, já existiam antes de o termo desenvolvimento ágil se tornar popular.
Alguns exemplos são DSDM, Scrum, Crystal Clear, XP, UP e FDD, todas desenvolvidas ao longo dos anos 1990.
Apesar da existência desses métodos, que levavam a resultados bastante satisfatórios, havia uma cartilha de práticas tradicionais que muitas empresas de tecnologia ainda seguiam.
Foi quando um grupo de desenvolvedores que já haviam experimentado os benefícios do modelo ágil de gerir os processos debateram o assunto em um workshop realizado na cidade de Snowbird, no estado americano de Utah.
Dessa ocasião nasceu o Manifesto para o Desenvolvimento Ágil de Software, também conhecido apenas como Manifesto Ágil.
No site do manifesto, você pode consultar o que ele diz em português. Ele se apresenta da seguinte maneira:
Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo.
Os 17 programadores que o assinaram tinham experiência com metodologias ágeis e observaram que os projetos de sucesso em que trabalharam tinham determinados conceitos em comum.
A partir daí é que o termo desenvolvimento ágil começou a ser usado para se referir a esse conjunto de metodologias – mas, antes disso, como já ressaltamos antes, a um novo tipo de mentalidade na condução dos projetos.
Desenvolvimento tradicional x desenvolvimento ágil
O modelo tradicional de desenvolvimento de softwares é executado em forma de cascata, isto é, para que uma fase do projeto seja iniciada, é preciso que a fase anterior seja concluída.
Nessa abordagem, linear por definição, há uma divisão bastante rígida entre os papéis, marcada pela especialização dos profissionais que realizam determinadas atividades.
Tamanho é o grau de linearidade, rigidez e especialização, que a maioria dos profissionais envolvidos no desenvolvimento tradicional não precisam pensar muito no que estão fazendo, apenas executar o que já foi determinado nas fases anteriores.
Um dos problemas do desenvolvimento em cascata é que, na área da tecnologia, a ideia de um projeto com início, meio e fim e etapas bem delimitadas, é um mito.
Não é que ele nunca tem fim, mas sim que o normal é que ocorram erros, de modo que o trabalho de certa etapa, já concluída, terá de ser repetido, tornando o modelo em cascata extremamente ineficiente.
Afinal, não estamos falando de uma produção industrial normal, e sim de um trabalho da economia do conhecimento, composta por atividades menos determinísticas e repetitivas e mais criativas e propensas ao surgimento de erros.
Já no desenvolvimento ágil de softwares, já se sabe previamente que todas as etapas do projeto serão executadas mais do que uma vez durante o projeto.
Em vez da cascata, os processos são conduzidos na forma de espiral, com pequenos ciclos em que o software é testado e aprovado.
Como a criação de um software ou sistema envolve uma grande quantidade de detalhes, é necessário que o trabalho em andamento seja colocado à prova o tempo todo.
Porque se sabe que erros surgem em qualquer projeto (como um daqueles tantos detalhes ter ficado de fora em certa funcionalidade), e percebê-los na sua última etapa é extremamente contraproducente.
Benefícios do desenvolvimento ágil
Pelo que acabamos de falar, os erros constatados no desenvolvimento ágil são corrigidos organicamente, dentro do andamento natural do projeto.
Por isso, a palavra “ágil”.
Já nas metodologias tradicionais, o retrabalho gera uma nova cascata de etapas, tornando o projeto muito mais longo e custoso do que poderia ser.
Portanto, o primeiro benefício do desenvolvimento ágil de softwares é que ele demora menos tempo para ser realizado e consome menos recursos.
Afinal, é uma abordagem mais flexível, outro ponto positivo desse modelo.
A flexibilidade torna mais fácil a mudança de rumos de um projeto, que pode ser motivada por inúmeros outros motivos além de erros.
Na etapa de testes de determinado ciclo, por exemplo, é possível obter insights e informações novas, algo que não se tinha antes.
Também podem acontecer eventos externos inesperados, relacionados ao público consumidor, à concorrência, ao lançamento de uma tecnologia disruptiva, etc.
Se há flexibilidade no desenvolvimento, é possível adequar o trabalho em andamento à nova realidade que se apresenta.
O desenvolvimento ágil tem ainda a grande vantagem de melhorar o relacionamento e a comunicação entre os profissionais.
Afinal, são quebrados os silos organizacionais (rivalidade e falta de colaboração entre os setores) graças à formação de equipes multidisciplinares.
Além disso, essas equipes têm maior autonomia, o que aumenta sua satisfação, motivação, engajamento e produtividade.
Por fim, o cliente fica mais satisfeito com o atendimento, já que o desenvolvimento ágil foca o tempo todo em atender suas necessidades.
4 valores do desenvolvimento ágil
O grupo de desenvolvedores que assinaram o Manifesto Ágil definiu quatro valores para o conceito criado por eles.
A ideia é valorizar:
- Indivíduos e interações mais que processos e ferramentas
- Software em funcionamento mais que documentação abrangente
- Colaboração com o cliente mais que negociação de contratos
- Responder a mudanças mais que seguir um plano
Não é que os itens da direita não sejam importantes, é bom deixar claro. E sim que os da esquerda devem ser prioridades em relação a eles.
No caso da primeira frase, ela estimula a compreensão de que o desenvolvimento de softwares é uma atividade humana.
Por isso, o engajamento e boa comunicação entre essas pessoas é mais importante do que as ferramentas que elas vão utilizar.
Quanto à documentação do desenvolvimento, ela não deve ser deixada de lado, mas colocar o software em funcionamento sempre é o que importa mais, pois é o que o cliente está esperando.
A terceira frase valoriza a colaboração com o cliente em relação a negociação, para que se crie uma relação de parceiros, e não adversários. Afinal, todos têm o mesmo objetivo.
Por fim, o quarto valor do desenvolvimento ágil vem do reconhecimento de que o mundo dos softwares é um ambiente com muita incerteza.
Em vez de traçar planos engessados e etapas em cascata, portanto, é preciso se preparar para a possibilidade de adaptar o projeto a qualquer momento.
12 princípios do desenvolvimento ágil
Além dos valores de que falamos acima, o Manifesto Ágil traz doze princípios que ajudam a entender melhor do que se trata essa abordagem.
São eles:
- 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 tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente.
- Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo.
- Pessoas de negócio e desenvolvedores 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 indefinidamente.
- Contínua atenção à excelência técnica e bom design aumenta a agilidade. Deve-se analisar a necessidade de implementar a técnica de Design Sprint antes ou depois do desenvolvimento.
- 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 refina e ajusta seu comportamento de acordo.
Como funciona o desenvolvimento ágil?
E na prática, como transcorre o trabalho dos profissionais que seguem o desenvolvimento ágil de softwares?
Não existe uma fórmula, um modelo de trabalho fechado, uma sequência de processos que o profissional deve seguir.
O Manifesto Ágil traz apenas valores e princípios, portanto, é muito mais conceitual.
O que acontece é que existem várias metodologias que ajudam a executar esses conceitos – muitas delas surgidas antes do manifesto, conforme explicamos antes.
Também são criados frameworks para tornar mais ágil o desenvolvimento, unindo sistemas, componentes, ferramentas e guias que podem ser utilizados em diversos projetos.
As especificidades do modelo de gestão de projetos escolhidos podem variar bastante.
O importante é não deixar de seguir os valores e princípios do Manifesto Ágil, criando equipes multidisciplinares, ciclos em espiral e dando autonomia aos times de trabalho.
A seguir, vamos falar sobre algumas de suas principais metodologias.
Scrum
Scrum é uma metodologia ágil na qual os projetos são conduzidos em sprints, com ciclos de trabalho geralmente mensais.
O scrum é marcado pela transparência, pois todos os membros da equipe precisam ter conhecimento dos processos, do status do projeto e dos requisitos de entrega.
Outra característica são as reuniões de acompanhamento.
No começo de um sprint, acontece a Sprint Planning Meeting, para selecionar e priorizar as atividades que serão feitas.
Há também breves reuniões diárias para priorizar o trabalho do dia que se inicia e a Sprint Review Meeting, para apresentar as funcionalidades implementadas no ciclo.
O sprint termina com a Sprint Retrospective, reunião a partir do qual encerra o ciclo e inicia o planejamento do seguinte.
Os projetos conduzidos com a metodologia scrum têm um product owner (que toma as principais decisões, pois lidera o produto), um scrum master (um facilitador da aplicação do scrum) e o dev team, time de desenvolvedores que constróem o projeto.
Extreme Programming (XP)
A metodologia Extreme Programming, que significa programação extrema, também é um conjunto de práticas que tornam os projetos de desenvolvimento mais ágeis e flexíveis.
Só que de uma maneira complementar ao scrum.
O foco é nos testes, ajustes, incrementações e comunicação constante entre os membros da equipe.
Seus cinco valores fundamentais são: comunicação, simplicidade, feedback, coragem e respeito.
Já os princípios básicos são feedback rápido, presumir simplicidade, alterações incrementais, abraçar mudanças e trabalho de alta qualidade.
No XP, todos os programadores têm permissão para modificar o código, que é de propriedade coletiva. Ele deve ser, porém, padronizado, para que pareça que a mesma pessoa o editou.
Os desenvolvedores são incentivados a testar, revisar, corrigir e simplificar o trabalho o tempo todo.
Kanban
Kanban é uma palavra japonesa que significa cartão.
Trata-se de um método de gestão do fluxo de trabalho em que cartões (post-its) são movidos em um quadro conforme o trabalho vai sendo executado.
O quadro (kanban board) é dividido em colunas, cada uma representando uma fase de determinada atividade.
Essa divisão pode ser, por exemplo: backlog, trabalho em andamento, validação e concluído.
Assim, há um controle visual detalhado, a partir do qual todos conseguem saber facilmente qual o andamento de cada detalhe do projeto.
Curiosamente, o método Kanban não surgiu na indústria de desenvolvimento de softwares, mas sim na Toyota, empresa que criou a filosofia lean manufacturing.
Como colocar o desenvolvimento ágil em prática?
O primeiro passo para implementar o desenvolvimento ágil é ler e reler com atenção os valores e princípios do Manifesto Ágil, até se certificar de que entendeu a importância de cada um deles.
Só então é aconselhável partir para o entendimento das metodologias de gestão de processos e projetos, como as três de que falamos acima.
A dica é investir na capacitação da equipe, para que todos entendam bem os modelos de trabalho do desenvolvimento ágil.
E também, dentro do possível, selecionar profissionais com experiência em trabalhar com essas metodologias.
Reconheça entre os colaboradores aqueles que têm boa capacidade de gestão e liderança para conduzir os projetos.
Mas nunca esqueça que a autogestão é importante, ou seja, todos os desenvolvedores precisam estar engajados com os projetos.
Assim, os líderes estarão ali mais para facilitar e mostrar o caminho do que para dar ordens.
Uma receita que resulta em muito mais criatividade e inovação.
Conclusão
Como dito no início deste artigo, o desenvolvimento ágil é amplamente conhecido em empresas e departamentos de TI, mas muitas metodologias podem ser aplicadas em várias outras áreas.
É necessário, porém, fazer uma distinção: o desenvolvimento de softwares é uma atividade do conhecimento, intelectual, e não um trabalho manual e operacional.
Isso faz toda a diferença, pois estamos falando de trabalhos em que há muita subjetividade – muitas vezes, não há certo ou errado, apenas suposições.
Claro que os códigos em si podem ser bastante objetivos, mas estamos falando aqui do desejo do cliente e da interpretação que os desenvolvedores têm disso.
Por isso, ao considerar implementar as práticas de desenvolvimento ágil, pense no quão criativo e suscetível a erros será o trabalho da sua equipe.
As metodologias ágeis tornam os projetos mais flexíveis, diminuindo os riscos por haver testes e homologações o tempo todo.
Ficou com alguma dúvida ou tem uma sugestão sobre o desenvolvimento ágil? Deixe um comentário abaixo.