Experimente Grátis

Veja como aplicar o extreme programming em seus processos de desenvolvimento

Equipe Cronapp

02/07/2018

A transformação digital colocou o desenvolvimento de softwares em um papel de protagonismo no mercado. Criar soluções inovadoras e com velocidade é um negócio extremamente valorizado. Por isso, a escolha da metodologia a ser utilizada se tornou algo fundamental para o sucesso de qualquer empresa desse ramo.

Nesse sentido, o extreme programming (XP) tem ganhado cada vez mais destaque. Suas vantagens vão muito além da rapidez desejada pelos usuários de metodologias ágeis. Ainda assim, é natural que surjam algumas dúvidas sobre seu funcionamento.

Para esclarecê-las, criamos este conteúdo com tudo o que você precisa saber sobre o extreme programming — da definição do conceito até as melhores práticas para implementá-lo. Confira!

O que é extreme programming?

A década de 1990 foi palco para o surgimento de diversas estratégias de desenvolvimento de softwares. Entre elas, o extreme programming foi criado com o objetivo de agilizar esse processo sem colocar em risco a qualidade do produto final — algo também buscado pelas metodologias ágeis.

Entretanto, o diferencial que colocou o XP em destaque foi a eficiência proporcionada pelos seus valores e por suas práticas. O foco principal é a comunicação entre os envolvidos no projeto e a fidelidade que o produto entregue tem em relação ao que foi solicitado pelo cliente final.

Se comparado a outros métodos ágeis, é notável que o XP tem preferência por uma programação orientada a objetos como paradigma principal, ainda que não obrigatório. Além disso, ele contém 4 atividades metodológicas que funcionam como os pilares da gestão. São elas:

  1. planejamento;
  2. projeto ou designing;
  3. codificação;
  4. testes.

Há também alguns princípios básicos que foram elaborados visando garantir o funcionamento do XP — o feedback rápido é um bom exemplo disso. Para manter a agilidade do desenvolvimento, é preciso se manter alinhado às demandas do cliente e aos resultados dos testes. Por isso, essa rapidez de resposta é fundamental.

Outros princípios são a simplicidade, a aplicação de mudanças incrementais, a aceitação das alterações necessárias e a qualidade do trabalho realizado.

Quais são as vantagens de implementar o XP?

Em primeiro lugar, o grande benefício é a adaptabilidade da própria metodologia. Com sua utilização, o time de desenvolvimento conta com a possibilidade de implementar mudanças ao longo do processo para suprir novas necessidades — do cliente, do mercado, das inovações tecnológicas em ascensão etc.

Resumidamente, as práticas são estruturadas visando um processo mutuamente benéfico para os envolvidos. A programação em par, por exemplo, oferece grandes vantagens para os programadores, pois facilita seu trabalho, mas os clientes também se beneficiam, pois o número de falhas e bugs encontrados costuma ser menor com o uso dessa estratégia.

O gestor, por sua vez, ganha o poder de implementar uma cultura de compartilhamento de conhecimento na equipe. Assim, uma eventual ausência de um programador não causa um impacto tão negativo no andamento de um projeto.

Entretanto, é crucial ter em mente que a escolha da metodologia deve partir de uma análise específica das demandas de sua empresa e dos seus clientes. Algumas empresas podem dar preferência para métodos como o Scrum, pois ele se prende menos a registros das atividades.

Para que você possa avaliar essa questão com mais eficiência, mostraremos a seguir as práticas necessárias para a implementação do extreme programming.

Quais são as práticas para a aplicação do XP?

É importante compreender essas práticas como vetores que levam o desenvolvimento de um ponto a outro. Em outras palavras, é uma progressão em direção ao estado ideal de desenvolvimento eficaz. Descreveremos aqui cada uma delas.

Planning game

Planejar o jogo é uma prática que tem como objetivo a reunião de técnicos e clientes para estabelecer as user stories — ou seja, textos detalhados (ou diagramas) que apontem as necessidades do projeto. Em geral, isso é feito em quadros brancos e depois transferido para um documento em sua versão final.

Nesse momento, é importante conscientizar o cliente sobre a importância da sua disponibilidade para colaborar com dúvidas, alterações e sugestões. Essa interação é fundamental para definir as prioridades de cada etapa do projeto.

O planning game pode ser feito semanalmente. No início, a reunião visa estabelecer as funcionalidades do projeto a serem tratadas com prioridade. Enquanto o cliente define essas funções, os desenvolvedores estipulam o tempo necessário para criá-las.

O ideal é que o cliente receba novas funções prontas a cada semana.

Pair programming

A programação em par é uma característica marcante do XP, como destacamos anteriormente. Isso significa que um programador codifica enquanto o outro faz sugestões pertinentes— os papéis podem ser trocados com alguma frequência para otimizar o processo.

A programação ganha em qualidade, pois ambos acompanham o desenvolvimento do código — um segundo olhar está sempre mais apto a identificar falhas.

Testes de aceitação

Também conhecidos como customer tests, são as etapas nas quais o cliente executa testes elaborados em parceria com os desenvolvedores para aprovar ou não um requisito implementado.

Jornadas de trabalho

A sugestão é que as jornadas de trabalho da equipe não ultrapassem as 40 horas semanais de duração. Ao trabalhar com o objetivo principal de desenvolver rápido mas sem perder a qualidade, é fundamental garantir que os programadores estejam descansados.

O trabalho em par e o foco nas prioridades estabelecidas pelo cliente devem dar toda a velocidade que o projeto precisa. Estender demais a rotina de trabalho — tanto diária quanto semanal — pode ser, na verdade, contraproducente.

Horas extras são interessantes quando trazem produtividade para o time. Por isso, é algo a ser adotado com muita cautela. A motivação aos desenvolvedores, por outro lado, não pode faltar.

Reuniões frequentes

Com fases pequenas e muitas versões, é importante manter a comunicação constante entre o time e o cliente. Por isso, invista também em reuniões matinais de 10 ou 15 minutos para alinhar o andamento dos processos e identificar rapidamente os imprevistos.

O time deve ser conscientizado sobre a importância de levantar quaisquer questões relevantes ao andamento do processo — e isso inclui também possíveis melhorias.

Testes constantes

Antes de cada entrega, é preciso realizar testes internamente. O ideal é automatizar ao máximo esse e outros processos, evitando que muito tempo dos funcionários seja gasto nesse tipo de atividade mais mecânica.

Com a implementação de roteiros eficientes de teste, é possível reduzir drasticamente o número de falhas que chegam até o cliente.

Como você pôde ver, essas são práticas simples, mas que tendem a gerar resultados significativos. O extreme programming pode ser um importante aliado para aumentar a excelência dos seus produtos. Faça um teste e veja como a sua equipe pode ser mais produtiva com essa metodologia!

Se você quer saber como o XP pode ser implementado no contexto específico da sua empresa, entre em contato conosco e fale com especialistas no assunto!

Artigos recentes

6 motivos para sua empresa adotar uma estrutura low code

17/01/2019

Conheça 5 ferramentas para aprender a programar

16/01/2019

Alta produtividade

Como empreendedores podem ter alta produtividade com software de tecnologia?

10/01/2019

Artigos recentes

6 motivos para sua empresa adotar uma estrutura low code

17/01/2019

Conheça 5 ferramentas para aprender a programar

16/01/2019

Alta produtividade

Como empreendedores podem ter alta produtividade com software de tecnologia?

10/01/2019