Publicado em 31 de maio de 2019
O desenvolvimento ágil de software não é um assunto de interesse exclusivo de programadores e entusiastas da TI. Na busca por diferenciais competitivos para lidar com um mercado tão acirrado, diversas empresas encontraram nessa prática uma ferramenta estratégica importante. Entretanto, as dúvidas que permeiam o tema também são muitas.
Afinal, o que é exatamente uma metodologia de desenvolvimento ágil? Quais são as premissas em torno do processo? As diferenças entre cada método são realmente significativas? Quais são as principais tendências que devemos conhecer?
Elaboramos este artigo para responder a essas questões, mostrando tudo o que você deve entender sobre desenvolvimento ágil e seus impactos nas organizações. Confira!
Uma metodologia de desenvolvimento ágil compreende um conjunto de práticas para criar um software de forma eficiente e rápida. No entanto, entender exatamente o que isso significa implica observar a origem desse processo. Afinal, termos como eficiência e rapidez são comuns em qualquer tipo de estratégia para criação de softwares. Então, o que há de novo, afinal?
O fator essencial a ser compreendido é a filosofia ágil. Trata-se de uma mudança fundamental no mindset dos profissionais da área que ocorre, mais especificamente, após o lançamento do Manifesto Ágil, em 2001.
Após algumas décadas de ascensão da computação como importante ferramenta de evolução tecnológica, especialistas do assunto se uniram para discutir como o desenvolvimento poderia ser otimizado. A partir disso se estabeleceu um novo modo de pensar o assunto, que é a chamada filosofia ágil.
Essa nova percepção aponta, grosso modo, que é mais benéfico priorizar indivíduos e interações, em vez de processos e ferramentas. Em outras palavras, é melhor investir na colaboração com clientes, parceiros e patrocinadores do que trabalhar em torno de processos definidos e ferramentas adquiridas.
Trata-se da priorização de um software em funcionamento antes de elaborar uma documentação tão abrangente. Para entender melhor os meandros dessa mudança de direcionamento, é importante conhecer as premissas dessas metodologias.
O Manifesto Ágil é uma declaração na qual são destacados alguns valores tidos como essenciais para o desenvolvimento mais eficiente e rápido de softwares. O foco em pessoas em vez de processos e o funcionamento do software em vez de documentação extensa, mencionados anteriormente, são alguns dos pontos de destaque.
Para complementar, é importante destacar ainda dois outros valores. Em primeiro lugar temos a questão da colaboração com o cliente. Os estudiosos do assunto notaram que a negociação de contratos tornava mais rígida a estrutura de desenvolvimento: tentava-se elaborar um projeto de escopo amplo e abrangente, o que comprometia o tempo de entrega e a própria eficiência.
Por isso, a proposta é aproximar os principais interessados no projeto — ou seja, os clientes — para que eles estejam envolvidos no desenvolvimento. Isso nos leva ao segundo ponto: a priorização da resposta rápida às mudanças, em vez de seguir um plano imutável.
Com o cliente por perto, é possível identificar com mais rapidez às novas demandas e as necessidades de melhoria do software. Consequentemente, o projeto vai sendo aperfeiçoado ao longo da sua criação: um protótipo é entregue, o cliente testa e elabora um feedback, os desenvolvedores dão continuidade ao trabalho e o projeto segue para um novo estágio.
Tudo isso nos leva a uma característica essencial das metodologias ágeis: a importância de colocar o software para funcionar. Se antigamente o produto era entregue pronto, agora ele é colocado rapidamente em operação, mesmo que em uma versão prototípica, para depois ser desenvolvido e aperfeiçoado de forma rápida e flexível.
Isso não significa, no entanto, que todos os métodos (workflows) propõem uma mesma estrutura de gestão e desenvolvimento.
Existem diversos métodos para desenvolver softwares seguindo os valores da filosofia ágil. Alguns deles, entretanto, se destacaram e ganharam mais espaço no mercado. É o caso do Scrum e do eXtreameProgramming (XP).
O termo “Scrum”, emprestado do meio esportivo (mais especificamente do rugby), se refere ao reinício da partida após uma interrupção. No ambiente do desenvolvimento ágil, isso significa retomar o processo depois de uma ação específica.
Nele os projetos são divididos em etapas, ou sprints. Cada sprint é um ciclo com duração (time box) de, geralmente, um mês. O objetivo é viabilizar a entrega de protótipos a serem rodados rapidamente. Enquanto isso o projeto é testado e são feitas melhorias, adições e remoções de funcionalidades, revisões etc.
A cada nova etapa é feita uma reunião de planejamento com os colaboradores (cliente e demais envolvidos) para preparar o próximo sprint.
A eficiência do XP é evidente, dado o fato de que o método data de 1990 e se adaptou à filosofia ágil para continuar produzindo ótimos resultados. Grosso modo, ele se baseia em três pilares principais: agilidade no desenvolvimento, qualidade no produto entregue e economia de recursos.
Para isso, ele propõe a adoção dos seguintes valores:
feedback;
respeito;
coragem;
comunicação; e
simplicidade.
O método se aprofunda em algumas práticas que visam ao fortalecimento desses valores.
Por mais que o Manifesto Ágil seja um grande marco, o mercado não está estagnado desde então. A transformação digital e a evolução tecnológica como um todo são fatores que causam grandes impactos, principalmente na forma de pensar o desenvolvimento de softwares. Nesse sentido, uma das principais tendências em vista é o uso do DevOps.
Mas, afinal, o que é isso?
O Devops é uma tendência voltada para a automação de processos, otimização de building e releases dos nossos dados. Seu objetivo é não só alcançar resultados melhores no modelo atual de execução das atividades, mas propor uma mudança na própria forma de pensar essas atividades e a interação com os clientes.
Esse método adota métricas, esquemas de monitoramento, processos virtualizados e cloud computing (computação em nuvem). O grande diferencial é sua capacidade de elevar a um novo patamar a comunicação entre desenvolvedores e clientes.
Outra tendência importante é o Design Thinking, um método que busca o entendimento de requisitos e a identificação de oportunidades de inovação. Ele conta com uma abordagem bastante ágil no processo de concepção, entendimento e validação de ideias.
São métodos que, assim como outras ferramentas, podem ser combinados para promoverem resultados cada vez melhores. Nesse sentido, vale destacar a importância de um gestor que entenda bem a filosofia ágil, domine diferentes frameworks e seja capaz de engajar a equipe no trabalho com o cliente.
Estamos diante de uma movimentação intensa e com diversas oportunidades. Por isso, esteja atento às novas tendências e coloque o desenvolvimento ágil para trabalhar a seu favor. Os resultados, como você viu aqui, são extremamente positivos!
Gostou do conteúdo? Então curta a página do Instituto Atlântico no Facebook e fique por dentro das principais tendências em tecnologia e inovação