Please enable JavaScript.
Coggle requires JavaScript to display documents.
XP
Extreme Programming - Coggle Diagram
XP
Extreme Programming
O que é?
"Metodologia ágil para equipes pequenas a médias desenvolvendo software com requisitos vagos ou que mudam frequentemente!"
Kent Beck, criador do XP
Contexto
Criado em 1996, o eXtreme Programming (XP) é um método que facilita o trabalho das
equipes e aprimora a qualidade dos projetos.
-
-
Esta metodologia foi criada para produzir o software que o cliente precisa seguindo as
especificações à risca.
Baseia-se na revisão permanente do código, testes freqüentes, participação do usuário final, refatoramento contínuo, integração contínua, planejamento, design e redesign a qualquer hora.
Valores do XP
-
-
Feedback: XP sugere que feedback é importante, pois possibilita que as pessoas aprendam cada vez mais
-
As 12 práticas do XP
-
-
Design simples
O design está presente em todas as etapas do XP:
- O projeto começa simples e se mantém simples através de testes e refinamento do design (refatoramento).
Todos buscam design simples e claro. Em XP, isso é levado a níveis extremos:
- Não é permitido que se implemente nenhuma função adicional que não será usada na atual
iteração.
Implementação ideal é aquela que:
- Roda todos os testes.
- Expressa todas as idéias que você deseja expressar.
- Não contém código duplicado.
- Tem o mínimo de classes e métodos.
-
-
-
Integração contínua
Projetos XP mantêm o sistema integrado o tempo todo:
- Integração de todo o sistema pode ocorrer várias vezes ao dia.
- Os testes (unidade e integração) devem ser executados.
-
Benefícios:
- Expõe o estado atual do desenvolvimento (viabiliza lançamentos pequenos e freqüentes).
- Estimula design simples, tarefas curtas, agilidade.
- Oferece feedback sobre todo o sistema.
- Permite encontrar problemas de design rapidamente.
Propriedade coletiva
Em um projeto XP, qualquer dupla de programadores pode melhorar o sistema a qualquer momento.
Todo o código em XP pertence a um único dono: a equipe:
- Todo o código recebe a atenção de todos os participantes resultando em maior comunicação.
- Maior qualidade (menos duplicação, maior coesão).
- Menos riscos e menos dependência de indivíduos.
-
-
-
Padrões de codificação
O código escrito em projetos XP segue um padrão de codificação, definido pela equipe:
- Padrão para nomes de métodos, classes, variáveis.
- Organização do código.
Todo o código parece que foi escrito por um único indivíduo, competente e organizado.
Código com estrutura familiar facilita e estimula:
- Posse coletiva
- Comunicação mais eficiente
- Simplicidade
- Programação em pares
- Refinamento do design
Metáfora
-
Equipes XP mantêm uma visão compartilhada do funcionamento do sistema:
- Pode ser uma analogia com algum outro sistema que facilite a comunicação entre os membros da equipe e cliente.
Facilita a escolha dos nomes de métodos, classes, campos de dados etc:
- Serve de base para estabelecimento de padrões de codificação.
Exemplos:
- "O SOFTWARE É COMO UMA FLOR, SE NÃO FOR REGADA E BEM CUIDADA ELA MURCHA E MORRE!!!"
- "SEU SOFTWARE É COMO UM MOTOR DE UM CARRO, SE NÃO TROCAR O ÓLEO E NÃO CUIDAR DA MECÂNICA VAI CHEGAR UMA HORA QUE ELE NÃO VAI FUNCIONAR MAIS!!!"
SEMANA DE 40 HORAS
Projetos XP estão na arena para ganhar:
- Entregar software da melhor qualidade.
- Obter a maior produtividade dos programadores.
- Obter a satisfação do cliente.
Projetos com cronogramas apertados que sugam todas as energias dos programadores não são projetos XP!!!
- Semanas de 80 horas levam à baixa produtividade.
- Produtividade baixa leva a código ruim, relaxamento da disciplina, dificulta comunicação, aumenta a irritação e o stress da equipe.
- Tempo ganho será perdido depois.
Projeto deve ter ritmo sustentável por prazos longos:
- Eventuais horas extras são aceitáveis quando produtividade é maximizada no longo prazo.
-
-
Processos do XP
COMO IMPLANTAR
-
Dificuldades culturais (deixar alguém mexer no seu código, trabalhar em pares);
Dificuldades devido à mudança de hábitos (manter as coisas simples, escrever testes antes de codificar, vencer o medo de refatorar);
QUANDO NÃO USAR XP
-
Situações onde o feedback é demorado (testes muito difíceis, arriscados e que levam tempo, programadores em ambientes físicos distantes e sem comunicação eficiente)
Os 5 princípios do XP
Feedback Rápido:
Se refere à prática de obter comentários e informações sobre o trabalho que está sendo realizado o mais rápido possível. Isso envolve a colaboração constante entre desenvolvedores, clientes e outras partes interessadas. O feedback rápido permite identificar problemas, ajustar o curso e tomar decisões informadas para garantir que o software atenda às necessidades dos usuários.
Assumir Simplicidade:
O princípio de "Assumir Simplicidade" enfatiza a importância de manter as coisas o mais simples possível no desenvolvimento de software. Isso significa evitar a adição de funcionalidades desnecessárias e complexidades que não agregam valor. Os desenvolvedores são encorajados a escolher as soluções mais simples que atendam aos requisitos, pois a simplicidade facilita a manutenção e o entendimento do código.
Mudança Incremental:
O XP promove o desenvolvimento incremental, o que significa construir o software em pequenos incrementos. Em vez de tentar definir todos os requisitos no início do projeto, os requisitos são adicionados e ajustados à medida que o projeto avança. Isso permite que as equipes respondam às mudanças nas necessidades do cliente e mantenham a flexibilidade ao longo do processo de desenvolvimento.
Abraçando Mudanças:
No XP, a mudança é vista como algo inevitável e até mesmo desejável. Em vez de resistir às mudanças nos requisitos ou no ambiente de desenvolvimento, as equipes de XP as acolhem. Elas são capazes de se adaptar rapidamente às mudanças, graças à sua abordagem incremental e ao feedback constante. Isso ajuda a garantir que o software permaneça relevante e atenda às necessidades em constante evolução dos usuários.
Trabalho de Qualidade:
O princípio do "Trabalho de Qualidade" enfatiza a importância de manter altos padrões de qualidade em todo o processo de desenvolvimento. Isso inclui a prática de testes frequentes, programação em pares (onde dois desenvolvedores trabalham juntos em uma tarefa), revisões de código e outras técnicas para garantir que o software seja robusto, confiável e seguro. A qualidade é uma parte fundamental do XP, e os desenvolvedores são incentivados a buscar continuamente a excelência em seu trabalho.