Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Post on 15-Apr-2017

119 views 0 download

Transcript of Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 6

Introdução a Engenharia de

SoftwareCJR – Empresa Júnior de Computação

Extreme Programming6

1 História

• O “ágil”• Requisitos

• Tecnologia• Pessoas

Habilidade de se mover prontamente com rapidez e facilidade

Mudança constante de requisitos nos projetos, ambiente empresarial (Web) eProcessos organizacionais

Ferramentas e plataformas usadas já não atendiam as necessidades

Comportamento individual é imprevisível e as interações de projeto ficam cadavez mais complexas

1 História

Kent Beck, 1999 e 2004

2 O núcleo

Valores PráticasPrincípios

3 Valores

• Comunicação• Simplicidade• Feedback• Coragem• Respeito

Documentação x Informação para toda equipe, prioriza o oral

Começar desenvolvendo aquilo que é necessário para hoje

Do sistema (testes), do cliente (validação), dos desenvolvedores

Implementar o hoje. Refatorar depois se preciso ou até mesmo jogar o código fora

Respeite a todos (incluindo você mesmo) e não dê commit com código com bug!

4 Princípios

• Feedback rápido• Presumir simplicidade• Mudanças incrementais• Abraçar mudanças• Trabalho de alta qualidade.

Cliente junto, testes de unidade, quanto mais rápido melhor o feedback!

Não adianta prever o futuro. Faça o hoje apenas.

Mudaram os requisitos? OK!

5 Práticas

12 práticas, 4 grandes grupos

5 Práticas12 práticas, 4 grandes grupos

Fine scale feedback Continuous process Shared understanding Programmer welfare

Programação Pareada Integração Contínua Padrões de Programação Passos Sustentáveis

Jogo de Planejamento Refatoração Propriedade Coletiva

Desenvolvimento Orientado a Testes

Pequenas Entregas Design Simples

Time Coeso Metáforas de Sistema

5 Regras

Planejamento

Gerência

Projetando“Codando”

Testes

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Divida em iterações• Pense em pequenas e frequentes entregas• Escreva histórias de usuário• Planejamento de uma iteração começa

apenas quando ela começa

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Reuniões diárias em pé• Defina o tempo da equipe• Meça a velocidade do andamento• Troque as tarefas das pessoas• Corrija o XP quando ele não funciona

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Faça simples• Escolha uma metáfora• Utilize os cartões CRC• Não coloque funcionalidades antes do tempo• Refatore!

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• O cliente deve sempre estar disponível• Utilize os padrões• Crie o teste de unidade antes• Sempre programe em duplas• Apenas uma dupla integra por vez• Lembre-se que o código é de todo mundo

Planejamento

Gerência

Projetando“Codando”

Testes

5 Regras

• Todo código deve ter seu teste de unidade

• Todo código deve passar nos testes antes de ser entregue

Bibliografiahttp://www.extremeprogramming.org/rules.html

http://www.extremeprogramming.org/map/project.html

http://en.wikipedia.org/wiki/Extreme_programming

Renato Leal

renatoleal@cjr.org.br

renatodossantosleal@gmail.com

CJREmpresa Júnior de Computação da UnB

contato@cjr.org.br

renatodossantosleal@gmail.com