Dicas Rápidas

Quais são as metodologias ágeis?

Atualmente tem se falado bastante sobre metodologias ágeis em projetos de tecnologia. Muitos acreditam que as práticas desse tipo de metodologia funcionam como uma bala de prata que resolverá todos os problemas. Há uma crença que os problemas serão resolvidos instantaneamente. Isso ocorre porquê as pessoas se perguntam, afinal, como algo tão alardeado que vem sendo cada vez mais utilizado pode não funcionar? Mas o que exatamente seriam essas técnicas e práticas? Elas realmente melhoram o desempenho do desenvolvimento? Quais os pontos positivos e negativos?

Em contraponto ao gerenciamento clássico, a metodologia ágil tem como visão promover mais o trabalho em equipe. Dessa forma, ela visa a fácil comunicação entre os membros e a resposta rápida às mudanças, não ficando presa aos processos. Essa ação proporciona diversos benefícios, por exemplo: o cliente não fica no aguardo do entregável ao invés de ficar aguardando ele participar das etapas do desenvolvimento.

Todos esses pontos foram levantados no chamado “manifesto ágil”, em 2001, uma declaração que fundamenta o conceito de metodologia ágil com base em quatro itens fundamentais:

  • Pessoas e interações acima de procedimentos e ferramentas;
  • Software funcionando acima de documentos extensos;
  • Comunicação com o cliente acima de contratos;
  • Mudanças acima de planos determinados.

Metodologias e práticas utilizadas

Desde de 2001 diversas implementações da metodologia ágil foram realizadas. Entre elas, talvez a mais utilizada e conhecida seja o Scrum. O que acaba gerando a confusão de o Scrum ser a metodologia ágil em, mas na verdade ele é uma opção.

Além do Scrum, existem diversas outras metodologias e práticas ágeis. Podemos citar por exemplo o XP (“Extreme Programming”) e Kanban, o TDD (Test-Driven Development) e BDD (Behavior-Driven Development). Todos esses itens são usados em grupos para atingir o objetivo da entrega com qualidade. É possível utilizar a combinação de uma ou mais metodologia ágil. Um exemplo é utilizarmos o TDD com o Scrum e o Kanban board em uma “sprint” para gerenciar as atividades.

Scrum:

Metodologia de gerenciamento de projetos com foco no desenvolvimento iterativo e incremental. Possui três papeis fundamentais que são o “Product Owner” (responsável pelo produto/negócio), Scrum Master (responsável por manter os processos) e a equipe de desenvolvimento.

O processo do Scrum possui os seguintes artefatos:

  • Product Backlog: lista de requisitos mantidos e priorizado pelo “Product Owner”;
  • Sprint Backlog: lista de requisitos selecionados do “product backlog” que serão desenvolvidas durante o próximo “sprint”.

“Sprint”, é um tempo determinado, no qual as atividades serão realizadas (de 2 a 4 semanas). Além disso, ocorrem as reuniões diárias, onde a equipe se reúna de maneira informal para alinhar o andamento das atividades.

XP (Extreme Programming):

É uma metodologia com base em comunicação, simplicidade, feedback, coragem e respeito. Ela possui 4 atividades principais: planejamento, projeto, codificação e testes. Além disso, seus princípios básicos consistem em ter um feedback rápido do cliente, ser simples e aberto a mudanças. Essas mudanças façam parte do processo e focam em um trabalho de alta qualidade. O XP possui diversas práticas, entre elas podemos destacar o “pair programming” ou programação em pares, onde dois programadores trabalham no mesmo código ao mesmo tempo, diminuindo assim a probabilidade de erros.

TDD (Test-Driven Development):

Uma técnica bastante utilizada no mundo do desenvolvimento ágil. Em suma, ela consiste na realização do desenvolvimento baseado em testes, como o próprio nome sugere. Nesse caso são criados primeiro os testes de uma funcionalidade, geralmente utilizando alguma ferramenta de testes automatizados, e então o objetivo é fazer com que o código passe nos testes. Após o sucesso no teste, o código é refatorado (é melhorada a lógica do código, se possível) e enfim ele é submetido novamente aos testes para verificar se ainda continua válido.

Kanban:

Palavra japonesa que significa “cartão”. Essa técnica consiste em manter as tarefas ou atividades em cartões que transitam de uma fase a outra através de um quadro. A ideia é mostrar, de forma fácil e intuitiva, o que precisa ser feito, o que está sendo feito e o que já foi feito.

BDD (Behavior-Driven Development):

Consiste em um modelo de desenvolvimento onde o comportamento das funcionalidades é definido em conjunto com o cliente e escrito em uma linguagem universal, o ubiquitous language, que seria a forma como quem entende do negócio se comunica e dessa forma todos os desenvolvedores também utilizam ela. Cada teste é composto em duas partes, sendo elas: a definição da funcionalidade; e os cenários em que essa funcionalidade será realizada.

Mas qual metodologia eu devo utilizar?

Alguns exemplos de práticas utilizadas nas metodologias ágeis demonstram os fundamentos em que são baseadas. O objetivo sempre é tentar diminuir o espaço na relação com o cliente, estar mais aberto a mudanças e não ficar tão preso à documentação definida no início dos projetos. Mas esses fatores realmente podem melhorar o desempenho dos meus projetos?

A decisão de qual metodologia utilizar deve levar em consideração alguns pontos como tamanho do projeto, complexidade, duração, etc. Projetos de desenvolvimento de software, dada suas características de frequentes mudanças de requisitos e ajustes após a entrega para o cliente, se beneficiam dessas práticas uma vez que conseguem absorver alterações durante o ciclo de desenvolvimento mais facilmente.

Existem diversos estudos de casos de utilização de métodos ágeis que foram bem-sucedidas, como observado no site scrum cases studies, porém podemos verificar algumas dificuldades pelas quais a maioria das empresas passaram durante a adoção. A mudança de cultura dos colaboradores da companhia está como um dos itens de maiores dificuldades. Geralmente as pessoas estão acostumadas com o modelo tradicional e acabam tendo certa resistência na mudança.

Além disso, outros pontos fracos podem ser observados, conforme argumentado no site Aaron Gray. Um dos pontos principais na base Scrum, por exemplo, é que a estimativa de desenvolvimento dada pelos membros seja exata, não levando em considerações dificuldades como desconhecimento da complexidade, trabalhos paralelos e distrações por parte do desenvolvedor.

Mas então devo ou não utilizar uma metodologia ágil?

A resposta é depende. Obviamente que diversos projetos de desenvolvimento de software irão se beneficiar das práticas propostas, onde os clientes muitas vezes não ficam satisfeitos com o que recebem e acabam mudando requisitos durante o desenvolvimento. Um modelo que proporciona menos burocracia para mudanças e acaba gerando entregáveis mais rapidamente para o cliente, tende a satisfazer todos os envolvidos e expor o valor agregado do produto/sistema com mais eficácia.

Os benefícios que os modelos ágeis trazem podem sem dúvida melhorar o desempenho dos projetos. Por outro lado nós não devemos encará-lo como a solução para todos os problemas. O modelo clássico não pode ser encarado como um problema a ser resolvido. Ambas abordagens possuem pontos fortes que devem analisados e assim definir qual melhor caminho a ser seguido.

E-VAL Tecnologia, uma empresa do Grupo E-VAL

A E-VAL Tecnologia atua há mais de 13 anos oferecendo soluções de segurança da informação para o mercado, pioneira em iniciativas no uso da certificação digital no Brasil, tais como, SPB, COMPE, Autenticação, Assinatura digital de contratos, Gerenciamento de Chaves e Proteção de dados e armazenamento de chaves criptográficas para os seguimentos de instituições financeiras, educação e indústria.

Fale conosco, os especialistas da E-VAL Tecnologia terão o maior prazer em atendê-los, contribuindo para o desenvolvimento dos seus projetos e a melhoria contínua da segurança da informação para a sua instituição.

Siga-nos nas redes sociais:
error

Gostou do blog? Compartilhe já :D