documentxp
TRANSCRIPT
Paulo MouraWeb Developerstudiosecret.com.br/blogtasafo.wordpres.com
Extreme Programming
Por quê?
Projetos que não são entregues no prazo.
Gastos que superam orçamento.
Funcionalidades que não ajudam o usuário.
Baixa qualidade dos sistemas.
Isso a 40 anos atrás
Não há um único desenvolvimento, sendo em tecnologia ou metodologias de gerenciamento que prometa uma melhoria de uma ordem de grandeza em uma década de produtividade.
NO SILVER BULLET
Complexidade
Essência do software
“programar não é apenasum comportamento humano; é comportamento humano complexo.” Gerald Weinberg
Conformidade
sistemas de software não costumam existir em conformidade comprincípios fundamentais e estáveis.
Maleabilidade
“Software, por sua vez, é apenas pensamento, o que o torna infinitamente maleável.”Fred Brooks
Invisibilidade
“Esta falta não apenas retarda o processo de design dentro de uma mente, como também prejudica severamente a comunicação entre mentes diferentes.” Fred Brooks
Inexistência de princípios básicos
Rápida evolução tecnológica
Baixo custo de manufatura
METÁFORAS
Fábricas de software
Frederick Taylor
Trabalhador do conhecimento
Permitir que os próprios trabalhadores se auto-gerenciem;
Assegurar que os trabalhadores tenham a oportunidade de inovar;
Aprendizado e ensino contínuo; Qualidade é um fator tão o mais
importante que a quantidade; Os trabalhadores do conhecimento
precisam ser tratados como “ativos” e não como “custo”;
Motivação para um programador
A satisfação de montar coisas; A satisfação de montar coisas que são
úteis para outras pessoas; O fascínio de montar objetos que se
assemelham a quebra-cabeças; A satisfação de estar sempre
aprendendo coisas não repetitivas; O prazer de trabalhar em um meio tão
maleável – pensamento puro – que, apesar de maleável, existe, se move e trabalha de uma forma diferente dos objetos do mundo físico;
Lean
Eliminar desperdícios; Amplificar o aprendizado; Adiar decisões ao máximo; Entregar o mais rapidamente
possível; Delegar poder à equipe; Incorporar integridade; Ver o todo;
RUP
Manifesto Ágil
Indivíduos e interações ao invés de processos e ferramentas;Software funcionando ao invés de documentação abrangente;Colaboração com o cliente ao invés de negociação de contratos eResponder a mudanças ao invés de seguir um plano.
Extreme Programming
RefatoraçãoProgramação em parMudanças rápidasFeedback constatante do clienteTestes automatizados
Programação em Par
TDD
Refactoring
TDD
Cliente Presente
Design Iterativo e Incremental
Stand up meeting
Código Coletivo
Integração Contínua
Coragem
Coragem