Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Daniel Pohren
eXtreme
Principais Problemas
Atrasos no cronograma
Direitos do Cliente
Planejamento Geral, definindo o que pode ser realizado, quando e a que custo Ver e acompanhar o andamento do projeto e, principalmente, o progresso do SW, passando por testes definidos em conjunto com a equipe Mudar de idia, substituir funcionalidades, sem pagar custos exorbitantes Ser informado de mudanas no cronograma, em tempo de escolher e reduzir o escopo Poder cancelar o projeto a qualquer momento e ainda assim ter um sistema funcionando, refletindo o investimento realizado at o momento
Direitos do Desenvolvedor
Saber o que necessrio, com declaraes claras de prioridade Produzir trabalho de qualidade o tempo todo Pedir e receber ajuda da equipe, superiores e clientes Fazer e atualizar suas prprias estimativas Aceitar as suas responsabilidades, ao invs de t-las impostas
Desenvolvimento de SW no passado
Processos Tradicionais
Analisar, projetar e s depois iniciar codificao
Ter certeza do que se sabe hoje ser exatamente o que se quer amanh Mudana de requisitos depois de concluda a fase de anlise e projeto (Play not to loose)
Custo
Tempo
Desenvolvimento de SW hoje
Processos modernos incentivam pequenas iteraes
Mudanas em etapas posteriores se tornam mais baratas
Adotar a mudana
- A Engenharia de SW diferente das outras engenharias - Componentes, frameworks, BDs podem absorver o alto custo da mudana (play to win)
Custo
Tempo
Manifesto gil
Estamos evidenciando maneiras melhores de desenvolver software fazendo-o ns mesmos e ajudando outros a faz-lo. Atravs desse trabalho, passamos a valorizar:
Interao entre pessoas MAIS QUE processos e ferramentas; Software em funcionamento MAIS QUE documentao abrangente; Colaborao com o cliente MAIS QUE negociao de contratos;
eXtreme Programming
Disciplina de desenvolvimento de SW, voltada para equipes pequenas e mdias, com requisitos vagos ou que mudam freqentemente Criado por Kent Beck, Ron Jeffries e Ward Cunningham Principal tarefa a codificao nfases - Menor em processos formais de desenvolvimento
- maior em disciplina rigorosa
Aborda
TDD, participao do cliente como membro da equipe, reviso permanente do cdigo, refactoring, integrao contnua, refinamento contnuo da arquitetura, planejamento
Valores do XP
Comunicao
Prticas valorizam a comunicao, no limitada a procedimentos formais
Simplicidade
Feedback
Coragem
Variveis de um Projeto
Processos Tradicionais
Tempo Escopo Custo
Manipula-se a Qualidade
eXtreme Programming
Tempo Qualidade Custo
Manipula-se a Escopo
Ciclo de Vida
Cliente
Implementa funcionalidades
Desenvolvedor
Escolhe Prioridades
Define escopo
Desenvolvedor
Estima T-F-C
Prticas XP
Prximos passos
- Planejamento de release (cliente prope as funcionalidades e desenvolvedores avaliam) - Planejamento da iterao (define as funcionalidades da iterao e os desenvolvedores estimam)
Cada lanamento possui funcionalidades prioritrias para a iterao Lanamento pode ser destinado a
- usurio/cliente (testa, avalia e oferece feedback) - usurio/final (sempre que possvel)
Benefcios
Melhor qualidade de cdigo (refactoring, testes) Reviso constante do cdigo Nivelamento da equipe Maior comunicao
TDD
Obter tarefa
Criar Cdigo de Teste para a tarefa Codificar Fazer Refactoring
Benefcios
- Expe o estado atual de desenvolvimento - Oferece feedback - Estimula agilidade e verses freqentes do SW
Metfora (Metaphor)
Englobam
Avaliaes de arquiteturas Algoritmos componentes e frameworks BDs Servidores de aplicao, Web Utilizao de artefatos e ferramentas
Mercado
HP Ford Symantec Motorola Chrysler BMW Borland IBM First National Bank Thought Works CC Pace Systems Industrial Logic Moore Workshare Xerox Siemens Object Mentor Objective Solutions ImproveIt Brasil Telecom Embrapa Qualiti APOENA Software Livre Argonavis CETIP Secretaria da Fazenda SP Smart Tech Consulting iQualy IME-USP EverSystems PowerLogic Consultoria UFRJ PUC-Rio Surya Tecnologia Bluestar Technology
Pesquisas na Web
Pesquisas na Web
Pesquisas na Web
Principais Eventos XP
Adotando e Escalando XP
Adote as prticas em doses homeopticas
- No seja afobado, saboreie a mudana - Enfatize o problema mais importante
Dificuldades culturais
Deixar algum mexer no seu cdigo Pedir ajuda nsia de tentar prever o futuro Escrever testes antes de codificar Refatorar com freqncia (superar o medo)
- Equipes grandes e distribudas geograficamente - Perda do controle sobre cdigo - Feedback demorado
Adotando e Escalando XP
XP e os processos geis valorizam as pessoas
Bons desenvolvedores criam bons SWs
Processos mtodos
geis
so
suplementos
aos
outros
- So atitudes - So efetivos - No um ataque documentao e sim a criao de documentos que tem valor - No so para todos
Consideraes Finais
XP uma disciplina de desenvolvimento gil de SW baseada em comunicao, feedback, simplicidade e coragem Para usar XP preciso fazer com que a equipe se una em torno de prticas simples, obtendo feedback e reajustando estas prticas para cada situao particular XP pode ser implementada aos poucos, porm, a maior parte das prticas so essenciais Nem todos os projetos so bons candidatos para XP XP no para todo mundo, mas todo mundo pode aprender com XP
Principais Fontes
http://agilemanifesto.org http://www.agilemodeling.com http://www.extremeprogramming.org http://www.xprogramming.com http://www.pairprogramming.com http://www.martinfowler.com http://wwwobjectmentor.com http://www.c2.com http://www.xispe.com.br http://www.naphta.com.br/xpmanager.html
XP-RS
http://www.xp-rs.org
Guilherme Lacerda (APOENA) e Daniel Wildt (BlueStar) Criada em 05/04 aps evento do RSJUG Aproximadamente 240 inscritos Principal idia: criar reunies mensais e fortalecer XP no RS
Muito Obrigado!
eXtreme
Programming