Zusammenfassung der Ressource
Metodologias Ágeis
ExtremeProgramming e Scrum para
oDesenvolvimento de Software
- As metodologias ágeis para
desenvolvimento de software são uma
resposta às chamadas metodologias
pesadas ou tradicionais.
- A recomendação final é que o
desenvolvimento de software deveria
ser baseado em modelos incrementais, o
que poderia evitar muitas das falhas
reportadas.
- A idéia das metodologias ágeis é o
enfoque nas pessoas e não em
processos ou algoritmos e elas são
adaptativas ao invés de serem
preditivas.
- Para ser realmente considerada
ágil a metodologia deve aceitar a
mudança ao invés de tentar
prever o futuro.
- Metodologia
Tradicional
- Um exemplo de uma
metodologia tradicional ou
pesada é o modelo em
Cascata [5], que é composto
basicamente por atividades
seqüenciais de levantamento
de requisitos, análise,
projeto, implementação,
teste, implantação e
manutenção.
- As metodologias pesadas
devem ser aplicadas
apenas em situações em
que os requisitos do
software são estáveis e
requisitos futuros são
previsíveis.
- O modelo em Cascata
dominou a forma de
desenvolvimento de software
até o início da década de 90,
- “Indivíduos e interações ao invés de processos e ferramentas.
Software executável ao invés de documentação. Colaboração
do cliente ao invés de negociação de contratos. Respostas
rápidas a mudanças ao invés de seguir planos.”
- Extreme
Programming
- Feedback
constante
- Abordagem
incremental
- A comunicação entre as
pessoas é encorajada.
- 12 práticas
da XP
- Planejamento: consiste em decidir o que é necessário ser feito e o
que pode ser adiado no projeto.
- Entregas freqüentes: visa à construção de um software simples, e
conforme os requisitos surgem, há a atualização do software.
- Metáfora: são as descrições de um software sem a utilização de termos
técnicos, com o intuito de guiar o desenvolvimento do software.
- Programação em pares: a implementação do código é feita em dupla,
ou seja, dois desenvolvedores trabalham em um único computador.
- Projeto simples: o programa desenvolvido pelo método XP deve ser o mais simples
possível e satisfazer os requisitos atuais, sem a preocupação de requisitos futuros
- 40 horas de trabalho semanal: a XP assume que não se deve fazer
horas extras constantemente.
- Cliente presente: é fundamental a participação do cliente durante
todo o desenvolvimento do projeto.
- Integração contínua: interagir e construir o sistema de software
várias vezes por dia, mantendo os programadores em sintonia,
além de possibilitar processos rápidos.
- Código padrão: padronização na arquitetura do código, para que
este possa ser compartilhado entre todos os programadores.
- Testes: a XP focaliza a validação do projeto durante todo o
processo de desenvolvimento.
- Propriedade coletiva: o código do projeto
pertence a todos os membros da equipe.
- Refatoração: focaliza o aperfeiçoamento do projeto do software e
está presente em todo o desenvolvimento.
- Scrum
- A idéia principal da Scrum é que
o desenvolvimento de softwares
envolve muitas variáveis técnicas
e do ambiente, como requisitos,
recursos e tecnologia, que podem
mudar durante o processo.
- Ciclo de
vida da
Scrum
- Pré-planejamento (Pre-game phase):
os requisitos são descritos em um
documento chamado backlog.
- Desenvolvimento (game phase): na
Scrum o controle é feito continuamente,
o que aumenta a flexibilidade para
acompanhar as mudanças.
- Pós-planejamento (post-game phase):
após a fase de desenvolvimento são
feitas reuniões para analisar o
progresso do projeto e demonstrar o
software atual para os clientes.
- Resultados: comparando métodos ágeis
com as metodologias tradicionais
pesadas mostrou que os projetos
usando os métodos ágeis obtiveram
melhores resultados em termos de
cumprimento de prazos, de custos e
padrões de qualidade.