top of page

Gerenciamento de projetos — Capítulo 2 - …E por fim, chegou o ágil.

  • Foto do escritor: Andressa Siqueira
    Andressa Siqueira
  • 14 de ago. de 2020
  • 4 min de leitura

Atualizado: 22 de nov. de 2024

Já falamos, de forma superficial sobre os modelos prescritivos no artigo anterior — Se quiser ler, basta clicar aqui — e agora vamos falar das metodologias ágeis.



Atualmente as metodologias ágeis mais conhecidas são: Extreme Programming (XP), Scrum, Lean Development, Feature-Driven Development (FDD), Kanban, RUP, Crystal, Dynamic Systems Development Method (DSDM) e OpenUP.



Vamos falar de cada uma especificamente mais a frente, ok? Hoje vamos nos concentrar no conceito geral…


Mas o que é um metodologia ágil?


Calma pequeno gafanhoto… irei te explicar…


Metodologia ágil: Também conhecido como Agile, é uma forma de gestão e desenvolvimento de software que permite no planejamento e execução interativa e incremental dividindo o problema em produtos menores e que tem como objetivo entregar um software funcional regulamente. Ou seja, é um conjunto de prática que é baseado no manifesto ágil.


Podemos dizer que agilidade em TI é: “a habilidade de criar e responder a mudanças, buscando a obtenção de lucro em um ambiente de negócio turbulento”[1]; ou ainda, a capacidade de balancear a flexibilidade e a estabilidade.



Essas metodologias surgiram como uma alternativa á metodologia de gestão tradicional de projetos de desenvolvimento software.


Cada iteração é um mini-projeto de duração entre 1 e 4 semanas que incluem as fases de levantamento de recursos e requisitos, desenvolvimento de código, teste, documentação e entrega ao cliente do mini-projeto de forma funcional. Esse entrega pode ser um novo processo ou funcionalidades, melhorias de performance ou correção de erros.


E o que é o manifesto ágil?


O Manifesto Ágil é uma declaração de valores e princípios essenciais para o desenvolvimento de software que nasceu de uma reunião de 17 profissionais da área de TI em Fevereiro de 2001.


O manifesto reúne 4 valores e 12 princípios que devem ser mantidos, onde:


Valores:


1 . Indivíduos e interações mais que processos e ferramentas

Processos e ferramentas são importantes porém devem ser simples e uteis. O desenvolvimento de qualquer sistema é uma atividade humana e que as interações de qualidade entre as pessoas presentes no projeto são necessárias para que exista um pleno entendimento das necessidades e do que é esperado.


2 . Software em funcionamento mais que documentação abrangente

O maior indicador de sucesso do projeto é a entrega de um sistema útil, funcional e que esteja alinhado com as necessidades do cliente. Clientes querem é resultado!!!

Quer dizer que a documentação não é importante Andressa? — Opa, nunca disse isso! A documentação é importante sim não é necessário documentar cada virgula…. Simplifique documentando somente o que é necessário e agregue valor!!


3 . Colaboração com o cliente mais que negociação de contratos

Para que se tenha um bom trabalho sem a necessidade constante de acertos e cliente satisfeito é necessário dialogo entre todos em busca de um único objetivo! Devemos atuar em conjunto com o cliente e não “contra” ele ou ele “contra” a gente.

Claro que é importante ter contrato, para ter certeza que os dois lados vão cumprir o combinado…. mas lembre-se que ninguém melhor que seu cliente conhece o negócio dele e suas necessidades!


4 . Responder a mudanças mais que seguir um plano

Cada vez mais as necessidades mudam rapidamente de acordo com o mercado ou objetivos das pessoas e empresas. E você deve estar preparado para essas mudanças… A desenvolver um software e produtos é um ambiente de alta incerteza fazendo necessário adaptar o plano a todo momento.


Princípios:

  • Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.

  • Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.

  • Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos.

  • Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.

  • Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.

  • O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara.

  • Software funcional é a medida primária de progresso.

  • Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes.

  • Contínua atenção à excelência técnica e bom design, aumenta a agilidade.

  • Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.

  • As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.

  • Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.



Apesar de cada uma das metodologias citadas lá em cima terem suas diferenças, podemos dizer que elas seguem de forma geral as seguintes práticas[3]:

  • Equipes Auto Gerenciáveis: É importante que a equipe atue em conjunto para tomar as melhores decisões, ao invés de haver um gerente que dita o caminha, há um líder que atua como facilitador;

  • Comunicação: É essencial a constante comunicação entre a equipe de desenvolvimento e a área de negócio;

  • Preferência por Equipes Pequenas: É consenso que equipes pequenas são mais produtivas, evitam conflitos e falhas de comunicação;

  • Uso de TDD (Test-Driven Development): É uma técnica que permite a realização de testes contínuos e não apenas na conclusão do sistema;

  • Planejamento Incremental: Ao invés de planejar o software como um todo, o planejamento é feito de forma sistêmica. O todo é determinado, mas o planejamento é feito por etapas;

  • Entregas menores: Uso de incrementos pequenos de software, entregando novas funcionalidades em meses ou semanas, ao invés de anos;

  • Uso de Refatoração: Melhoria constante do código, tornando-o mais fácil de manter;

  • Integração sistêmica continua: Sempre que um incremento está pronto, ele é integrado ao sistema como um todo.

Referências:

  1. HIGHSMITH, J. Agile Project Management — Creating Innovative Products. Pearson Education, 2004. (Visto em 30/08/2019)

  2. Site: http://metodologiaagil.com/ (Visto em 30/08/2019)

  3. Site http://metodologiaagil.com/


Comments


Assine a newsletter e fique sempre por dentro dos artigos que escrevo 

Obrigado(a)!

CONTATO

Obrigado pelo envio!

© 2020 por Andressa Siqueira. Orgulhosamente criado com Wix.com

bottom of page