Introdução ao eXtreme Programming

Compartilhe:

No universo de desenvolvimento de softwares, é essencial manter a produtividade e a qualidade nos projetos. Nesse sentido, métodos ágeis como o eXtreme Programming são importantes aliados no trabalho dos desenvolvedores.

O que é Extreme Programming?

O XP, como é conhecido o eXtreme Programming, é um método ágil para desenvolvimento de softwares, que tem como foco a agilidade das equipes e a qualidade dos projetos.

Esta Programação Extrema (na tradução do XP para o português), é de fácil aplicação para desenvolvedores experientes ou iniciantes e em todo tipo de equipe, pois se adapta bem a mudanças que acontecem durante a construção de produtos.

Com alguns princípios que ajudam a nortear o trabalho, o XP contribui para proporcionar a execução dos projetos garantindo os prazos e o orçamento, visando a satisfação tanto para os clientes quanto para as equipes.

Quais são os princípios do XP?

Para garantir a entrega e a qualidade do início ao fim, o eXtreme Programming estabelece 4 princípios que norteiam o desenvolvimento de software.

Simplicidade

Esse princípio se refere à criação de um pano de fundo onde cada desenvolvedor constrói uma solução simples e funcional, principalmente para que no futuro não seja extremamente difícil mudá-la.

Com isso, é possível levantar dos requisitos básicos até a codificação e respectivos testes automatizados, promovendo mais facilidade e evitando a construção antecipada de funcionalidades que jamais serão utilizadas.

Comunicação

Como em todo projeto, com o eXtreme Programming a comunicação é imprescindível para que não haja ruídos e inconsistências entre as equipes de alta performance e eventuais usuários.

Neste princípio, o foco é otimizar o entendimento das pessoas envolvidas com o mínimo de formalidade, maximizando a interação entre todos e promovendo um gerenciamento mais eficiente.

Feedback

Uma das mais conhecidas formas de melhorar um produto ou serviço é ouvir das pessoas informações que variam desde a usabilidade até as dificuldades e problemas encontrados.

É um princípio que abrange não só as equipes, mas também o próprio cliente. Os programadores escrevem o código e aplicam testes e tem informações sobre a qualidade do produto; já os clientes utilizam os produtos e dão feedback sobre as suas experiências.

Coragem

Por fim, é preciso coragem para lidar com os inúmeros cenários que se apresentam no desenvolvimento. Tanto para dizer “não” quando necessário quanto para refazer do zero um código que não está funcionando como deveria.

Para que o projeto seja executado da melhor forma, é preciso ir a fundo no problema para gerar a solução dele, pois assim é possível evitar grandes dores de cabeça no futuro.

Como funciona o eXtreme Programming?

Desafios do Extreme Programming

Na teoria, o método do XP parece fácil e intuitivo. Por um lado isso é verdade.

Mas, no decorrer dos desdobramentos de um software, podem aparecer muitos desafios. Por isso, para que tudo funcione perfeitamente, é preciso considerar alguns dentre muitos aspectos importantes do eXtreme Programming. Destacamos alguns deles:

Presença do cliente

Para potencializar o desenvolvimento do sistema, é necessário incluir o cliente de forma ativa e colaborativa. Desta forma, construir com iterações curtas é ideal para que seja possível resolver dúvidas e responder a mudanças de cenários durante a construção da solução.

Em um contexto ideal, é muito proveitoso quando o cliente dispõe  de uma pessoa qualificada que tenha visão do negócio e possa fornecer informações assertivas sobre o produto. Assim, o planejamento se torna mais robusto, simples e atende corretamente às necessidades do cliente.

Metáfora

Este é um modo de transmitir a realidade do cliente fazendo analogias entre o sistema em desenvolvimento e as expectativas criadas. O objetivo é facilitar a arquitetura do sistema, fornecendo uma linguagem compreensível entre cliente e desenvolvedores.

Planejamento eficiente

É necessário ter um bom mapeamento das interações do XP, que são os períodos de uma ou duas semanas em que um conjunto de soluções é desenvolvido. Por isso, a cada início de interação, é preciso priorizar de forma colaborativa o que deve ser feito.

As interações são elaboradas a partir de histórias, que são casos simplificados de uso. Se elas forem grandes demais, é necessário dividi-las em tarefas de curta duração e pensá-las de acordo com o que agrega mais valor ao cliente, considerando este como parte importante do processo.

Testes constantes

Para garantir a programação com o eXtreme Programming, é preciso testar antes para também garantir qualidade. Existem dois tipos de testes: o teste de unidade e o teste funcional.

O primeiro é um conjunto de testes feitos para verificação de erros; já o segundo é para assegurar junto ao cliente se o sistema de um modo geral atende ao que foi proposto. Ambos em conjunto contribuem para assegurar o bom funcionamento do sistema.

Padronização do código

Como há muitas pessoas envolvidas no desenvolvimento de um único software, é preciso estabelecer diretrizes para nortear o trabalho de todos e promover unidade.

E já que tudo é feito em partes, isso evita inconsistências no produto que podem gerar problemas futuros na revisão do código. Por isso, é importante haver coletividade e sincronia entre todas as pessoas que constroem o sistema.

Integração contínua

No desenvolvimento em partes, é necessário constantemente integrar as novas funcionalidades à versão atual do sistema com o objetivo de minimizar as inconsistências e erros no código fonte.

Isso pode ser garantido integrando várias vezes ao dia. Uma forma muito simples de viabilizar isso é separando uma máquina apenas para a integração, que carrega as alterações enquanto estiver livre.

Releases curtos

Em eXtreme Programming, pequenas versões do produto são importantes para o processo de entendimento e validação das soluções, possibilitando os testes pelo cliente previamente.

Desse modo, haverá um número maior de feedbacks tanto dos clientes quanto dos programadores. O resultado é mais aprendizado para potencializar a correção dos defeitos do sistema e aumentar o envolvimento do cliente, levando à melhoria do produto.

Qual a diferença entre Scrum e XP?

Por serem ambos métodos ágeis, possuem várias semelhanças. Dentre eles, podemos destacar no que diz respeito ao gerenciamento e controle de atividades, melhoria da comunicação e cooperação entre equipes, e visão clara de problemas e soluções.

Contudo, o Scrum é uma maneira ampla de gerir projetos que não depende de uma área de conhecimento. No XP é diferente, pois sua aplicação foca no desenvolvimento de sistemas de softwares.

É possível utilizar ambos os métodos de forma integrada: o Scrum, para fazer a gestão da criação do software; e o eXtreme Programming, para os inúmeros desdobramentos específicos da área de desenvolvimento, como os testes automatizados ou a refatoração de código, por exemplo.

Que tal aprender a combinar Scrum e XP na prática? Conheça o nosso treinamento completo com técnicas de engenharia de software e de facilitação!

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Sobre o autor(a)

Trainer na K21

Avelino Ferreira é formado e mestre em Ciência da Computação. Teve uma longa trajetória na TI, começando como programador e chegando a gestor de diversos times de criação de produtos digitais. Conheceu e começou a adotar as melhores prática de de Métodos Ágeis em 2008. Desde então, se dedica a auxiliar outras empresas na construção da cultura ágil. Atualmente, é Consultor e Trainer na K21

Artigos relacionados

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Políticas explícitas são o alicerce invisível que mantém times ágeis funcionando com eficiência e harmonia. No contexto do Kanban, elas são mais do que simples regras: são acordos claros que orientam decisões, promovem transparência e evitam confusões. Apesar disso, muitas…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Há algum tempo escrevemos o artigo sobre o Cemitério Mexicano. Ele fala sobre a importância de comemorar quando descartamos ideias ruins antes que elas entrem no nosso fluxo de trabalho como projetos, iniciativas, novos produtos ou serviços. Naquele artigo citamos…

Introdução Muitas empresas confundem a Gestão de Objetivos Estratégicos (OKR) com as operações diárias, conhecidas como (BAU), gerando desalinhamento de expectativas, excesso de Objetivos e KRs e iniciativas que na verdade são tarefas do dia a dia. Em parceria com…

Avelino segurando um microfone e uma camiseta preta escrita Agile. Ele é pardo, barba e cabelos grisalhos.

Mapa de Empatia Quando estamos tentando criar produtos e serviços é importantíssimo entender quem são os nossos potenciais consumidores. Existem diversas formas de fazer isso, mas eu gostaria de apresentar o Mapa de Empatia criada por Dave Gray, A ideia…