Algumas das vantagens do XP são, por exemplo:
O Extreme Programming representa alguns desafios, tais como por exemplo:
Extreme Programming (XP) é uma framework ágil de desenvolvimento de produtos e serviços. O Extreme Programming, criado por Ken Beck nos anos de 1990, tinha com objectivo encontrar uma forma de desenvolver software de qualidade que facilmente se adapta-se aos constantes pedidos dos clientes. Esta abordagem está muito associada ao desenvolvimento de software, porque foi criada nessa área. No entanto, várias equipas ágeis usam diversas técnicas do XP no desenvolvimento de múltiplos tipos de produtos e serviços.
O XP distingue-se de outras frameworks agile porque introduz requisitos que mudam constantemente. Além disso, é uma pequena equipa colocada num único local que desenvolve os produtos ou serviços. Por fim, utiliza tecnologia ou recursos que facilitem a automatização de testes.
O XP, ao contrário do Scrum, inclui um conjunto de 12 práticas. Desse modo, algumas das práticas mais populares de Extreme Programming (XP) são o pairing, test-driven development, e refactoring.
O XP adopta 12 práticas que estabelecem um conjunto de regras e métodos. Muitas equipas ágeis que adoptam outras frameworks, como o Scrum, usam práticas do XP. Isto porque, estas práticas mitigam os riscos de desenvolvimento de produtos, e provem melhores melhores resultados. Vejamos em maior detalhe as 12 práticas:
No início de cada ciclo, os developers e o cliente discutem mas também aprovam as funcionalidades do produto. Em seguida os developers planeiam o sprint, distribuindo tarefas a cada um deles.
O objetivo desta prática é disponibilizar o mínimo produto viável, ou minimum viable product (MVP) o mais cedo possível. Dessa forma, os utilizadores e clientes podem interagir com o produto e perceber como funciona o produto em produção. Além disso, podem também detectar necessidades de ajustamentos e correcções de defeitos. Em seguida, realizam-se pequenas melhorias incrementais com base no feedback obtido.
Esta prática procura que os produtos tenham um design simples e um conjunto de qualidades. Ou seja, o produto deve ser tão fácil e simples de compreender que qualquer pessoa que entre no projecto consiga contribuir. Além disso, deve-se usar uma linguagem simples e comum para facilitar a compreensão de todos.
O design do produto deve ser o mais simples possível e deve-se remover qualquer complexidade. Ou seja, o produto deve ser claro para qualquer pessoa. Dessa forma é mais fácil desenvolver e manter o produto.
As equipas XP usam a técnica de test-driven development, escrevendo primeiro os testes e depois desenvolvendo um produto para passar os testes. Dessa forma conseguem, obter feedback mais rapidamente e incorporar o feedback que deriva dos testes realizados. Além disso, a prática contribui para que o produto desenvolvido esteja em conformidade com os requisitos. Em seguida, consulte este artigo para saber mais sobre test-driven development.
Na prática de refactoring as equipas melhoram o produto já desenvolvido sem adicionar mais funcionalidades. O objectivo desta prática, é desse modo, melhorar a estrutura do produto, removendo redundâncias, inconsistências e desperdícios para dar maior coerência ao produto. Dessa forma, será mais fácil melhorar e manter o produto.
Na prática de pair programming, ou pairing, dois elementos da equipa trabalham em conjunto na mesma estação de trabalho. Desse modo, um desenvolve o produto e o outro revê o trabalho feito, sugere alterações e corrige erros. Dessa forma, esta prática contribui para uma partilha de conhecimento. Ainda mais, o pair programming ajuda a entregar melhor produtos com menos defeitos. Contudo, como pode ser mais demorado, só se deve usar em projectos com uma duração longa. Em seguida, consulte este artigo para saber mais sobre pair programming.
Esta prática responsabiliza toda a equipa pelo desenvolvimento do produto. Desse modo, cada membro deve rever e actualizar o produto por forma a evitar duplicações, incentivando a colaboração da equipa e a promoção de novas ideias.
O objectivo desta prática é manter o produto completamente integrado. Dessa forma, à medida que a equipa desenvolve novos incrementos, vai integrando cada incremento com o produto. Dessa forma, reduz-se os problemas de integração.
O cliente é envolvido nas fases de especificação. Contudo ele também deve participar nas fases de desenvolvimento, para poder responder a todas as perguntas da equipa, definir prioridades e resolver problemas.
A equipa dever ter práticas comuns para desenvolver o produto, usando os mesmos formatos e estilos. Isto porque, a utilização de padrões facilita o desenvolvimento do produto, o refactoring, e a manutenção do produto quando já estiver em produção.
Esta última prática refere-se à qualidade de vida dos developers. Se o XP exige que os developers trabalhem rapidamente, eficientemente e que mesmo assim mantenham um produto de qualidade, estes tem de estar felizes e descansados. Dessa forma, para evitar problemas de excesso de trabalho, estes só devem trabalhar 40 horas por semana para conseguirem equilibrar o trabalho com o descanso e a vida pessoal.
Algumas das vantagens do XP são, por exemplo:
O Extreme Programming representa alguns desafios, tais como por exemplo: