Post on 26-Jul-2015
Engenharia de Software Unimep/Pronatec
2° Semestre
AULA 16
- Prof. André Bertoletti -
apbertolet@unimep.br
Nossa agenda de hoje
• Desenvolvimento ágil de software
• Metodologias ágeis de desenvolvimento de software
Pilares de um bom software
Relembrando...
Software =
Ferramentas Pessoas Processos + +
Software
Ferramentas
Pessoas
Processos
Ferramentas
Pessoas
Processos
Software
PROCESSOS
Metodologias ágeis de desenvolvimento
X
Metodologias tradicionais (clássicas)
Evo
luçã
o
Metodologias tradicionais (clássicas)
• Década de 90
• Orientadas a planejamento
• Dividida em etapas sequenciais e bem definidas
• Muito utilizada em grandes empresas, com times grandes de desenvolvimento e orçamentos previamente definidos
• Alguns exemplo: Cascata, RUP, etc...
Metodologias ágeis
• Década de 2000
• Orientadas a entrega e colaboração
• Respostas rápidas as mudanças
• Muito utilizada em empresas menores, times pequenos e baixa previsibilidade
• Alguns exemplos: SCRUM, XP, Kanban, etc...
Metodologias VAI E FAZ
• Existem desde sempre
• Não há padrões
• Cada um faz do seu jeito
• Super adaptativas e nada planejadas
• Exemplos: XGH (Extreme Go Horse), e POG (Programação Orientada a Gambiarras), etc...
Agilidade: onde tudo começou...
• Em fevereiro de 2001, alguns membros experientes da comunidade de desenvolvimento de software se reúnem em Snowbird (EUA) para, além de outras atividades, discutir sobre boas práticas adotadas por cada profissional no desenvolvimento de seus trabalhos.
• Deste encontro surge o Manifesto ágil http://www.manifestoagil.com.br
SCRUM
SCRUM • Os projetos são divididos em ciclos tipicamente
mensais (Sprints).
• Sprint representa um período do qual um conjunto de atividades deve ser executado, segundo o Product Backlog (lista de implementações).
• Diariamente as equipes decidem as implementações a serem desenvolvidas.
XP (eXtreme Programming)
XP
• Programação Pareada – Programando e Revisando o mesmo código de preferencia entre 2 a 10 programadores
• Menores ciclos de desenvolvimento possível para atender mudanças constantes.
• Manter constante parceria entre programadores e clientes
• O desenvolvedor é o responsável em analisar, projetar e codificar
• Ela é baseada em valores e princípios exclusivos – Comunicação – Melhor relacionamento possível entre clientes e desenvolvedores.
– Simplicidade - Minimizar o código descartando as funções consideradas desnecessárias
– Feedback – Testes Periódicos para atender expectativas
– Coragem - Abordar mudanças constantes através de comunicação e feedback
– Respeito – Membros se importando uns com outros
Por hoje é só!
Agora é hora de estudar!