•     •   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
Por que o rastreador de tempo do Worksection é a melhor escolha para controlar os recursos do projeto As horas são registradas de memória e frequentemente com atrasos. As planilhas de horas não estão...
2 maio 2025   •   8 min read
Escola PM
Tarefas espalhadas por chats e painéis dificultam o controle da execução do projeto. A gestão precisa gastar a maior parte do seu tempo sincronizando a equipe para descobrir o status atual das tarefas...
1 maio 2025   •   7 min read
Escola PM
Falta de compreensão dos prazos do projeto, constantes atrasos, dificuldade em coordenar processos com os contratados. O orçamento está crescendo e o resultado é constantemente adiado. Esta é a realidade...
30 abril 2025   •   7 min read
Comece agora
Por favor insira seu e-mail verdadeiro 🙂