Você está na página 1de 26

Engenharia de Software

Metodologias Ágeis
Problemas da Forma Tradicional de
Desenvolver Software
 Supõem que é possível prever o futuro.
 Pouca interação com os clientes.
 Ênfase em burocracias.
 (documentos, formulários, processos, controles
rígidos, etc...)
 Avaliação do progresso baseado na evolução
da burocracia e não do código
 Grande quantidade de erros
 Falta de flexibilidade no software desenvolvido
Como Resolver Estes Problemas?

 Melhores tecnologias
 Padrões de projeto (reutilização de ideias)
 Componentes (reutilização de código)
 Middleware/frameworks (aumenta a abstração)

 Melhores metodologias
 As Metodologias Ágeis de Desenvolvimento de
Software são indicadas como sendo uma opção
às abordagens tradicionais para desenvolver
softwares;
Métodos Àgeis de Desenvolvimento
 Comparadas a outras metodologias, produzem pouca
documentação. É recomendado documentar o que
realmente será útil;
 São recomendadas para projetos que:
 existem muitas mudanças;
 os requisitos são passíveis de alterações;
 a recodificação do programa não acarreta alto custo;
 a equipe é pequena;
 as datas de entrega curtas acarretam alto custo;
 o desenvolvimento rápido é fundamental.
 Em essência, as Metodologias Ágeis foram desenvolvidas
com o objetivo de vencer as fraquezas percebidas e reais
da Engenharia de Software (Pressman, 2010).
Métodos Àgeis de Desenvolvimento
 Movimento iniciado por programadores experientes
e consultores em desenvolvimento de software.

 Questionam e se opõem a uma série de mitos


práticas adotadas em abordagens tradicionais de
Engenharia de Software e Gerência de Projetos.

 Manifesto Ágil: Assinado por 17 desenvolvedores


em Utah em fevereiro/2001.
• http://agilemanifesto.org e
http://agilemanifesto.org/iso/ptbr/manifesto.html
Manifesto Àgil
 Indivíduos e interações são mais importantes do
que processos e ferramentas

 Software funcionando é mais importante do que


documentação detalhada

 Colaboração com o cliente é mais importante do


que negociação de contratos

 Adaptação às mudanças é mais importante do


que seguir um plano inicial
Manifesto Àgil – Princípios 1/4

1. Prioridade máxima: satisfazer o usuário através


de entrega rápida e contínua de software com
valor.

2. Mudanças de requisitos, mesmo no fim do


desenvolvimento, ainda são bem-vindas.

3. Entregar software em funcionamento com


frequência de algumas semanas a alguns meses,
dando preferência à menor periodicidade.
Manifesto Àgil – Princípios 2/4
4. Desenvolvedores e pessoas relacionadas aos negócios
devem trabalhar, em conjunto, até o fim do projeto.

5. Construa projetos em volta de indivíduos motivados. Dê a


eles o ambiente e o suporte de que eles precisam, e confie
que eles farão o serviço.

6. Uma conversa face a face é o método mais eficiente e


efetivo de transmitir informações para e dentro de uma
equipe de desenvolvimento.
Manifesto Àgil – Princípios 3/4
7. Software rodando é a principal medida de progresso.

8. Processos ágeis precisam de desenvolvimento sustentável.


Patrocinadores, desenvolvedores e usuários devem
aguentar manter um ritmo constante indefinidamente.

9. Atenção contínua à excelência técnica e para com um bom


projeto melhora a agilidade.
Manifesto Àgil – Princípios 4/4
10. Simplicidade -- a arte de maximizar a quantidade de
trabalho não realizado -- é essencial.

11. As melhores arquiteturas, requisitos e projetos emergem


de equipes auto-organizadas.

12. Em intervalos regulares, a equipe deve refletir sobre como


se tornar mais eficiente, e deve ajustar seu comportamento
de acordo.
Práticas Ágeis
Práticas Ágeis

 Comunicação

 Negociação

 Ciclo de Vida Iterativo

 Gerenciamento Ágil

 Modelagem Ágil

 Visibilidade do Projeto
Entendendo o Cliente
Comunicação
 Evitar telefone sem fio
 Desenvolvedores diretamente com o cliente
Negociação

Abordagem tradicional

4 variáveis do desenvolvimento de Software

Escopo Prazo Custo Qualidade

Fixo Variável
Negociação

Abordagem Ágil

4 variáveis do desenvolvimento de Software

Escopo Prazo Custo Qualidade

Variável Fixo
Ciclo de Vida Iterativo
Ciclo de Vida Iterativo
Evolução Iterativa de Um Produto
Incremental versus Iterativo
Modelagem Ágil
Visibilidade de Resultados - KanBan
Visibilidade de Resultados - KanBan
Visibilidade de Resultados - KanBan
Adiantando outros Métodos Àgeis

http://www.extremeprogramming.org/

http://www.scrumalliance.org/

Você também pode gostar