•     •   10 min read

Programação Extrema (XP): Não
é para os Fracos de Coração

A Pro­gra­mação Extrema (XP) é uma metodolo­gia ágil de desen­volvi­men­to de soft­ware. Como out­ras metodolo­gias ágeis, a XP pos­sui suas fer­ra­men­tas, proces­sos e papéis úni­cos. O cri­ador da XP, o desen­volve­dor amer­i­cano Kent Beck, não inven­tou nada com­ple­ta­mente novo, mas tomou as mel­hores práti­cas do desen­volvi­men­to ágil e as ampli­fi­cou ao extremo, daí o nome Pro­gra­mação Extrema.

O autor da metodolo­gia, Kent Beck, lid­er­ou o pro­je­to do Sis­tema de Com­pen­sação Abrangente da Chrysler no final dos anos 90, onde apli­cou pela primeira vez as práti­cas da XP. Ele doc­u­men­tou sua exper­iên­cia e o con­ceito cri­a­do no livro Pro­gra­mação Extrema Expli­ca­da,” pub­li­ca­do em 1999. Este livro foi segui­do por out­ros que detal­havam as práti­cas da XP. Con­tribuidores para o desen­volvi­men­to da metodolo­gia incluem Ward Cun­ning­ham, Mar­tin Fowler e outros.
Difer­ente­mente de out­ras metodolo­gias ágeis, a XP é exclu­si­va­mente usa­da no desen­volvi­men­to de soft­ware. Não pode ser apli­ca­da a out­ros negó­cios ou à vida cotid­i­ana como Scrum, Kan­ban ou Lean. 
O obje­ti­vo da XP é lidar com req­ui­si­tos em con­stante mudança para o pro­du­to de soft­ware e mel­ho­rar a qual­i­dade do desen­volvi­men­to. Por­tan­to, a XP é ade­qua­da para pro­je­tos com­plex­os e incertos.

A XP gira em torno de qua­tro ativi­dades prin­ci­pais: cod­i­fi­cação, teste, design e escu­ta. Além dis­so, a Pro­gra­mação Extrema tem val­ores cen­trais: sim­pli­ci­dade, comu­ni­cação, feed­back, cor­agem e respeito.

13 Práti­cas da Pro­gra­mação Extrema

1. A Equipe Completa

Todos os par­tic­i­pantes do pro­je­to que uti­lizam a XP tra­bal­ham como uma úni­ca equipe. Essa equipe deve incluir um rep­re­sen­tante do cliente, de prefer­ên­cia um usuário final real que con­heça o negó­cio. O cliente define os req­ui­si­tos do pro­du­to e pri­or­iza a fun­cional­i­dade. Anal­is­tas de negó­cios podem aux­il­iar o cliente. Do lado dos execu­tores, a equipe inclui desen­volve­dores, tes­ta­dores, às vezes um coach ori­en­tan­do a equipe, e um ger­ente fornecen­do recursos.

2. Jogo de Planejamento

O plane­ja­men­to na XP ocorre em duas eta­pas: plane­ja­men­to de lib­er­ação e plane­ja­men­to de iteração.
  • Plane­ja­men­to de Lib­er­ação: A equipe de pro­gra­mação se encon­tra com o cliente para deter­mi­nar a fun­cional­i­dade dese­ja­da para a próx­i­ma lib­er­ação, tipi­ca­mente em 2 – 6 meses. Uma vez que os req­ui­si­tos do cliente são fre­quente­mente vagos, os desen­volve­dores os esclare­cem e os divi­dem em tare­fas que podem ser con­cluí­das em um dia ou menos. O cliente deve enten­der o ambi­ente opera­cional onde o pro­du­to fun­cionará.

    As tare­fas são reg­istradas em cartões, e o cliente as pri­or­iza. Os desen­volve­dores então esti­mam o tem­po necessário para cada tare­fa. Uma vez que as tare­fas são descritas e esti­madas, o cliente revisa a doc­u­men­tação e apro­va o iní­cio do tra­bal­ho. Para o suces­so do pro­je­to, é críti­co que o cliente e a equipe de pro­gra­mação joguem no mes­mo cam­po: o cliente escol­he a fun­cional­i­dade gen­uina­mente necessária den­tro do orça­men­to, e os pro­gra­madores alin­ham ade­quada­mente os req­ui­si­tos do cliente com suas capacidades.
  • Plane­ja­men­to de Iter­ação: Real­iza­do a cada duas sem­anas, às vezes com mais ou menos fre­quên­cia. O cliente está pre­sente para definir a fun­cional­i­dade da próx­i­ma iter­ação e faz­er alter­ações nos req­ui­si­tos do produto.

3. Lança­men­tos Pequenos

Os lança­men­tos da XP são fre­quentes, mas com fun­cional­i­dade lim­i­ta­da. Essa abor­dagem facili­ta o teste e a manutenção da oper­abil­i­dade do sis­tema e fornece ao cliente a fun­cional­i­dade de val­or com­er­cial a cada iteração.

4. Testes do Cliente

O cliente especi­fi­ca testes de aceitação autom­a­ti­za­dos para ver­i­ficar a fun­cional­i­dade do pro­du­to. A equipe escreve ess­es testes e os uti­liza para tes­tar o código.

5. Pro­priedade Cole­ti­va do Código

Na XP, qual­quer desen­volve­dor pode mod­i­ficar qual­quer parte do códi­go, uma vez que o códi­go não per­tence ao seu autor, mas a toda a equipe.

6. Inte­gração Contínua

Novas partes do códi­go são integradas ao sis­tema ime­di­ata­mente — equipes XP lançam uma nova build a cada pou­cas horas ou mais fre­quente­mente. Essa práti­ca garante que o impacto das mudanças recentes no sis­tema seja visív­el ime­di­ata­mente. Se uma nova parte do códi­go que­bra algo, iden­ti­ficar e cor­ri­gir o erro é muito mais fácil.

7. Padrões de Codificação

Com a pro­priedade cole­ti­va do códi­go, ado­tar padrões comuns de cod­i­fi­cação é cru­cial para que o códi­go pareça ter sido escrito por um úni­co profis­sion­al. As equipes podem desen­volver seus padrões ou ado­tar os existentes.

8. Metá­fo­ra do Sistema

A metá­fo­ra do sis­tema é uma com­para­ção com algo famil­iar para cri­ar uma visão com­par­til­ha­da den­tro da equipe. Nor­mal­mente, a pes­soa que desen­volve a arquite­tu­ra e vê o sis­tema como um todo elab­o­ra a metáfora.

9. Rit­mo Sustentável

As equipes XP tra­bal­ham com a máx­i­ma pro­du­tivi­dade enquan­to man­têm um rit­mo sus­ten­táv­el. A Pro­gra­mação Extrema des­en­co­ra­ja horas extras e pro­move uma sem­ana de tra­bal­ho de 40 horas.

10. Desen­volvi­men­to Ori­en­ta­do a Testes (TDD)

Uma das práti­cas mais desafi­ado­ras na XP. Os pro­gra­madores escrevem testes antes de escr­ev­er o códi­go a ser tes­ta­do. Essa abor­dagem garante que cada parte da fun­cional­i­dade este­ja com­ple­ta­mente cober­ta por testes. Quan­do os desen­volve­dores envi­am códi­go, testes de unidade são exe­cu­ta­dos ime­di­ata­mente, e todos os testes devem pas­sar, garan­ti­n­do que a equipe está se moven­do na direção certa.

11. Pro­gra­mação em Par

Imag­ine dois desen­volve­dores tra­bal­han­do em um com­puta­dor em uma úni­ca peça de fun­cional­i­dade. Essa práti­ca é a pro­gra­mação em par, a práti­ca mais con­tro­ver­sa na XP. O dita­do duas cabeças pen­sam mel­hor que uma” ilus­tra bem sua essên­cia. De duas soluções para um prob­le­ma, a mel­hor é escol­hi­da, o códi­go é otimiza­do ime­di­ata­mente, e erros são detec­ta­dos antes que ocor­ram, resul­tan­do em um códi­go limpo com­preen­di­do por ambos os desenvolvedores.

12. Design Simples

Design sim­ples na XP sig­nifi­ca faz­er ape­nas o que é necessário ago­ra, sem ten­tar pre­v­er fun­cional­i­dades futuras. Design sim­ples e refa­toração con­tínua cri­am um efeito sinér­gi­co — quan­do o códi­go é sim­ples, é mais fácil de otimizar.

13. Refa­toração

A refa­toração é o proces­so con­tín­uo de mel­ho­rar o design do sis­tema para aten­der novos req­ui­si­tos. Isso inclui remover dupli­cação de códi­go, aumen­tar a coesão e reduzir o acopla­men­to. A XP exige refa­toração con­stante, para que o design do códi­go sem­pre per­maneça simples.

Van­ta­gens e Desvan­ta­gens da XP

A XP é con­tro­ver­sa e fre­quente­mente crit­i­ca­da por aque­les que não con­seguiram imple­men­tá-la. No entan­to, seus bene­fí­cios são evi­dentes quan­do a equipe uti­liza ple­na­mente pelo menos uma práti­ca da XP

Os bene­fí­cios de bus­car a XP incluem:

  • Sat­is­fação do Cliente: Os clientes recebem o pro­du­to de que pre­cisam, mes­mo que ini­cial­mente não ten­ham uma visão clara.
  • Flex­i­bil­i­dade: A equipe faz alter­ações no códi­go rap­i­da­mente e adi­ciona nova fun­cional­i­dade dev­i­do ao design de códi­go sim­ples, plane­ja­men­to fre­quente e lançamentos.
  • Con­fi­a­bil­i­dade: O códi­go sem­pre fun­ciona dev­i­do a testes con­stantes e inte­gração contínua.
  • Facil­i­dade de Manutenção: A equipe pode man­ter o códi­go facil­mente porque é escrito a um úni­co padrão e con­stan­te­mente refatorado.
  • Pro­du­tivi­dade: Pace de desen­volvi­men­to rápi­do dev­i­do à pro­gra­mação em par, sem horas extras e envolvi­men­to do cliente.
  • Códi­go de Alta Qualidade
  • Mit­i­gação de Risco: Os riscos de desen­volvi­men­to são reduzi­dos, pois a respon­s­abil­i­dade é dis­tribuí­da uni­forme­mente, e o pro­je­to não é prej­u­di­ca­do pela saí­da ou chega­da de mem­bros da equipe.
  • Efi­ciên­cia de Cus­tos: Os cus­tos de desen­volvi­men­to são mais baixos, pois a equipe se con­cen­tra no códi­go em vez de na doc­u­men­tação e nas reuniões.

Ape­sar de suas van­ta­gens, a XP nem sem­pre fun­ciona e pos­sui várias fraquezas:

  • Envolvi­men­to do Cliente: O suces­so depende do envolvi­men­to do cliente, o que pode ser desafi­ador de se alcançar.
  • Lin­has do Tem­po Impre­visíveis: É difí­cil pre­v­er os cus­tos de tem­po do pro­je­to, uma vez que a lista com­ple­ta de req­ui­si­tos é descon­heci­da no início.
  • Dependên­cia do Nív­el de Habil­i­dade: XP depende forte­mente do nív­el de habil­i­dade dos pro­gra­madores e fun­ciona mel­hor com profis­sion­ais seniores.
  • Resistên­cia da Gestão: A gestão fre­quente­mente se opõe à pro­gra­mação em par, ques­tio­nan­do a neces­si­dade de pagar dois pro­gra­madores em vez de um.
  • Cus­to: Reuniões fre­quentes com pro­gra­madores podem ser caras para os clientes.
  • Mudanças Cul­tur­ais: Imple­men­tar a XP requer mudanças cul­tur­ais significativas.
  • Fal­ta de Estru­tu­ra: A fal­ta de estru­tu­ra e doc­u­men­tação da XP a tor­na inad­e­qua­da para pro­je­tos grandes.
  • Req­ui­si­tos Não Fun­cionais: Req­ui­si­tos fun­cionais são desafi­adores de descr­ev­er como histórias de usuários em metodolo­gias ágeis.

Princí­pios da XP

No seu primeiro livro, Kent Beck deli­neou os seguintes princí­pios da XP: sim­pli­ci­dade, comu­ni­cação, feed­back e cor­agem. Em uma edição sub­se­quente, ele adi­cio­nou um quin­to princí­pio — respeito.

1. Sim­pli­ci­dade

O desen­volvi­men­to XP começa com a solução mais sim­ples que atende à neces­si­dade fun­cional atu­al. Os mem­bros da equipe con­sid­er­am ape­nas o que pre­cisa ser feito ago­ra e não incor­po­ram fun­cional­i­dades que pos­sam ser necessárias no futuro.

2. Comu­ni­cação

A comu­ni­cação na XP ocorre ao vivo, em vez de por meio de doc­u­men­tação. A equipe se comu­ni­ca ati­va­mente entre si e com o cliente.

3. Feed­back

O feed­back na XP é imple­men­ta­do de três maneiras:
  1. Feed­back do Sis­tema: Por meio de testes con­stantes de módulo.
  2. Feed­back do Cliente: O cliente é parte da equipe e par­tic­i­pa da redação dos testes de aceitação.
  3. Feed­back da Equipe: Durante o plane­ja­men­to, em relação às esti­ma­ti­vas de tem­po de desenvolvimento.

4. Cor­agem

Algu­mas práti­cas da XP são tão não con­ven­cionais que exigem cor­agem e auto­con­t­role constante.

5. Respeito

Respeito na XP sig­nifi­ca respeitar a equipe e auto-respeito. Os mem­bros da equipe não devem faz­er alter­ações que que­brem a com­pi­lação, os testes de módu­lo ou ralen­tem o tra­bal­ho dos cole­gas. Cada mem­bro se esforça pela mais alta qual­i­dade de códi­go e design.

Imple­men­tan­do XP e o Fluxo de Trabalho

Kent Beck recomen­da imple­men­tar a XP para resolver prob­le­mas de pro­je­to. A equipe sele­ciona o prob­le­ma mais urgente e o resolve uti­lizan­do uma das práti­cas da XP. Depois, eles pas­sam para o próx­i­mo prob­le­ma, uti­lizan­do out­ra práti­ca. Essa abor­dagem garante que os prob­le­mas motivem a adoção da XP, e a equipe grad­ual­mente dom­i­na todas as fer­ra­men­tas da metodologia.

Para imple­men­tar a XP em um pro­je­to exis­tente, adote grad­ual­mente suas práti­cas nas seguintes áreas:

  • Testes: A equipe cria testes antes de escr­ev­er novo códi­go e grad­ual­mente refa­to­ra o códi­go antigo.
  • Design: A equipe refa­to­ra con­tin­u­a­mente o códi­go anti­go, tipi­ca­mente antes de adi­cionar nova funcionalidade.
  • Plane­ja­men­to: A equipe deve inter­a­gir de per­to com o cliente.
  • Gestão: Os ger­entes garan­tem que todos os mem­bros da equipe sigam as novas regras.
  • Desen­volvi­men­to: Comece orga­ni­zan­do estações de tra­bal­ho para pro­gra­mação em par e incen­tive as duplas a pro­gra­mar na maior parte do tempo.

Exem­p­lo de um Fluxo de Tra­bal­ho Usan­do XP

Quem Usa a XP

De acor­do com uma pesquisa da Ver­sionOne de 2016, ape­nas 1% das empre­sas ágeis uti­lizam a XP em sua for­ma pura. Out­ros 10% uti­lizam um híbri­do de Scrum e XP.
Emb­o­ra a XP não seja a metodolo­gia mais comum, suas práti­cas são usadas pela maio­r­ia das empre­sas que empregam metodolo­gias ágeis. Por exem­p­lo, a Piv­otal Soft­ware, Inc. atribui seu suces­so à XP.

Piv­otal Soft­ware, Inc.

A Piv­otal Soft­ware, Inc. desen­volve anális­es de negó­cios baseadas em big data e ofer­ece serviços de con­sul­to­ria. Seus pro­du­tos são usa­dos por cor­po­rações como Ford, Mer­cedes, BMW, GAP, Humana, grandes ban­cos, agên­cias gov­er­na­men­tais e com­pan­hias de seguros.

A Piv­otal defende que metodolo­gias ágeis são essen­ci­ais para o desen­volvi­men­to mod­er­no. Entre as vari­antes ágeis, escol­her­am a XP, uma abor­dagem gan­ha-gan­ha para clientes e equipes de pro­gra­mação. Seu dia de tra­bal­ho começa com reuniões ráp­i­das e ter­mi­na às 18:00 — sem horas extras. A Piv­otal uti­liza jogos de plane­ja­men­to, pro­gra­mação em par, testes con­stantes, inte­gração con­tínua e out­ras práti­cas da XP.

O que Ler para Enten­der a XP

  1. Pro­gra­mação Extrema Expli­ca­da,” Plane­jan­do a Pro­gra­mação Extrema,” Desen­volvi­men­to Ori­en­ta­do a Testes” de Kent Beck: Ess­es livros do cri­ador da XP fornecem uma com­preen­são pro­fun­da da metodolo­gia e suas vantagens.
  2. Refa­toração: Mel­ho­ran­do o Design do Códi­go Exis­tente” de Mar­tin Fowler: Um livro de um co-autor da XP expli­can­do os princí­pios e téc­ni­cas de refatoração.
  3. Pro­gra­mação Extrema Apli­ca­da: Jogan­do para Vencer” de Ken Auer e Roy Miller: Um guia práti­co sobre as práti­cas da XP com exemplos.

Fer­ra­men­tas para Imple­men­tar a XP em Equipes

Red­mine

Um geren­ci­ador de tare­fas gra­tu­ito e de códi­go aber­to, com recur­sos como suporte para pro­je­tos múlti­p­los, geren­ci­a­men­to flexív­el de tare­fas, grá­fi­cos de Gantt, ras­trea­men­to de tem­po, geren­ci­a­men­to de doc­u­men­tação e cri­ação de tare­fas via e‑mail.

Base­camp


Um serviço sim­ples e amigáv­el para tra­bal­ho colab­o­ra­ti­vo em pro­je­tos, incluin­do um geren­ci­ador de tare­fas, fóruns, chat inte­gra­do, armazena­men­to de arquiv­os e calendário.

Jira


Um serviço robus­to pro­je­ta­do para desen­volve­dores de pro­je­tos ágeis, com­bi­nan­do um ras­treador de bugs e fer­ra­men­ta de geren­ci­a­men­to de pro­je­tos com muitos recur­sos e opções de sincronização.

Work­sec­tion


Um serviço seguro para tra­bal­ho em pro­je­tos, per­mitin­do definição de tare­fas e con­t­role de proces­sos, ras­trea­men­to de cor­re­spondên­cia, per­son­al­iza­ção de fil­tros, ras­trea­men­to de tem­po e finan­ceiro, e geren­ci­a­men­to de arquivos.

Con­clusão

A Pro­gra­mação Extrema é uma metodolo­gia ágil foca­da na pro­dução de códi­go fun­cional de alta qual­i­dade com uma arquite­tu­ra sim­ples. Seu propósi­to é reduzir a incerteza em pro­je­tos e respon­der de maneira flexív­el às mudanças nos req­ui­si­tos do produto. 

A XP é exclu­si­va­mente para desen­volvi­men­to de soft­ware e não pode ser adap­ta­da a out­ros negócios. 
É uma das metodolo­gias mais desafi­ado­ras de imple­men­tar dev­i­do às suas treze práti­cas. No entan­to, suas práti­cas são ampla­mente uti­lizadas em pro­je­tos ágeis, provan­do sua eficácia.

Os autores acon­sel­ham a dom­i­nar grad­ual­mente as práti­cas da XP enquan­to resolvem prob­le­mas do pro­je­to. Se você perce­ber os bene­fí­cios, con­tin­ue nesse espíri­to. Não há obri­gação de imple­men­tar a XP de for­ma total — afi­nal, as metodolo­gias ágeis devem ser flexíveis na apli­cação, adap­tan­do-se às neces­si­dades da equipe de pro­je­to específica.

esc
Compartilhar
или
Escola PM
Megaplan há muito é uma ferramenta russa popular para gestão de tarefas e vendas, mas até 2025 mais e mais equipes estão em busca de substitutos flexíveis, visuais e seguros. Algumas empresas estão cansadas...
27 junho 2025   •   8 min read
Escola PM
Airtable evoluiu de uma “planilha supercarregada” para um banco de dados completo na nuvem, mas seu conjunto de recursos em expansão elevou os preços. Muitas empresas agora enfrentam uma interface sobrecarregada...
27 junho 2025   •   8 min read
Escola PM
YouTrack é um rastreador de problemas e bugs popular da JetBrains, projetado principalmente para desenvolvedores e equipes ágeis. Contudo, em 2025, o mercado oferece dezenas de plataformas flexíveis que...
26 junho 2025   •   7 min read
Comece agora
Por favor insira seu e-mail verdadeiro 🙂