ebook img

eXtreme Programming: Práticas para o dia a dia no desenvolvimento ágil de software (Portuguese Edition) PDF

161 Pages·2015·0.87 MB·Portuguese
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview eXtreme Programming: Práticas para o dia a dia no desenvolvimento ágil de software (Portuguese Edition)

CasadoCódigo Prefácio PrefácioporKlausWuestefeld Poucos são os momentos na vida em que ficamos sabendo de uma ideia e dizemos,nahora:“Estaideiavairevolucionaromundo.” AconteceucomigoquandovipelaprimeiravezoOrkut(quedescanseem paz). Caiu um raio na minha cabeça e eu disse: “Este negócio (rede social) vairevolucionaromundo.” Antes disso, em 1999, quando eu ainda chafurdava na burocracia do CMM e do Unified Process, um estagiário da minha empresa me mandou osprimeiroslinkssobreeXtremeProgramming(XP). Aprincípiomepareceubobagem,como“GoHorse”.Logovi,porém,que KentBeck,oautordeXP,easpessoasdiscutindoametodologianoprimeiro wikidomundoeramsériasesabiamdoqueestavamfalando. Eram,naver- dade,osestudiososdesoftwaremaissérios,embasadoseapaixonadosqueeu játinhavisto. Paraentenderoquefoi,paramim,veraspáginasdeXPnoprimeirowiki do mundo, imagine dois raios simultâneos caindo na sua cabeça: senti que tantoowikiquantoosmétodoságeisiriamrevolucionaroconhecimentoeo desenvolvimentodesoftware. Comecei a evangelizar XP pelo Brasil e palestrei em um evento de Java em Porto Alegre, em 2004. Estavam lá o Daniel e o Guilherme, coautores destelivro. CaiuumraionacabeçadeleseelescriaramogrupoXP-RS,que promoveumuitosencontrosdediscussãosobreoassunto. Agora,onzeanosdepois,escrevemestelivro,maisnecessárioquenunca. CanseidevertimestentandofazerScrumeentregandozerosoftwareem produção,durantemeses,sprintapóssprint.Canseidevertimescomquadros deKanbanlindosnaparedemascomtempodeentrega(lead-time)naordem i CasadoCódigo demeses. Éfácil,hoje,fazerumcursinhodefinaldesemanaqualquer,certificar-se emcharlatanismoágildesoftwareesairditandoregrinhasdecerimôniasque aequipededesenvolvimentodeveseguir. ModelosdegestãocomoScrumouKanban(prefiro)sãoúteisparaajudar aescolherashistóriascertasadesenvolvermas,nofimdascontas,oquefaz essashistóriassairdooutroladocomosoftwarerodandosembugsemprodu- çãoéacapacidadeededicaçãodaequipe,usandoboaspráticasdeartesania desoftware,comoasdestelivro. Sugiroàsequipesqueganhemfluência,quedominemXP“bythebook”, antesdeinventarmoda. Otimemaiságil,queproduziuosoftwaredemaior valor,noprazomaisapertado,nascondiçõesmaispoliticamenteadversas,do qualjáparticipei,foiumtimeondeaplicávamosXPàrisca.Pensemuitobem antesdedecidirquenãoprecisadedeterminadaprática. Quandotestarrecursoscarosoucomplicados,utilizeconstantesquesimu- lemocomportamentodessesrecursos(comestratégiasdedummy,stub,spy,fake emock). Nãoconfundaabrevidadedealgunsdeseusitens,comoessafrase,com faltadeimportância.Estelivroéricoeconciso.Cadaparágrafo,seexplorado, dariaoutrolivro. Jáviumaequipededezenasdeprogramadoresatrasarem meses seu projeto, por insistir em depender de ambientes de homologação complexosemvezdeseguiradicaacima. Outro exemplo: já vi uma equipe de uma empresa de software para o mercadofinanceirodesistirdeprogramaçãoemparessemsaberporque.Está numbreveparágrafodestelivroomotivo: Cuide do espaço físico, a mobília pode dificultar ficar lado a lado progra- mando(porexemploemmesasdecantoouemformatode‘L’).Osprogramado- resterãodoresnocorpodepoisdeumdiadeprogramaçãoemparescompouca ergonomia.Umadicaéadaptaroespaçofísico... Porondecomeçar?Éprecisoadotartodasaspráticasdeumavez? Se tiver que escolher alguma prática pra começar, escolha o teste auto- matizado. Testarsoftwaremanualmente,noséculo21,éantiético,comoum cirurgiãooperarsemlavarasmãos. Aprendaosconceitos,aessênciadaau- tomaçãodeteste. Nãopercatempotentandocontrolartelasprafazertestes. ii CasadoCódigo Separedatelatodocódigodenegócioseteste-odiretamente. Programação em pares junto com revezamento são práticas que encon- tramresistênciatantodosgestoresretranqueirosquantodealgunsmembros daequipemaistímidos(respeitar)ouacomodados(incentivar)masnãode- pendem de mais nada para ser implementadas. Já vi pareamento e reveza- mentotransformarumaequipedesmotivada,àbeiradeagressõesfísicas,em umaequipedereferênciadentrodesuaorganização. Porfim,évitalqueaequipeeseugestor,sehouver,reservemumtempo emtornodeumdia(projetonovo)adoisdias(projetocomlegadomacarrô- nico)porsemanacomautonomiaparaaequipeinvestiremmelhorarconti- nuamentesuaprópriaprodutividade,aprendendotécnicascomoTDDere- fatorandocódigo. Senãohouveressetempoalocadoeaequipeficarsócor- rendoatrásdeincêndiosdecurtoprazo,émelhorlargarolivroagoraporque elesóvaitrazerfrustração. Se,poroutrolado,houvertempoparamelhoria,leveestelivrocomoguia, torçaparacairumraionasuacabeçatambémeboasortenocaminho. AprendaaspráticasdeXP,domine-as,entreguesoftwaredocaralhoe,aí sim,adapte-asetranscenda. — Klaus Wuestefeld, pioneiro em eXtreme Programming no Brasil e Key- noteSpeakerdoAgileBrazil(2010) PrefácioporAlexandreFreire Se eu tivesse este livro que você tem em mãos na virada do milênio, e conhecesseaProgramaçãoeXtremanaépoca,provavelmentehojeseriami- lionário,porqueterialançadocomsucessoaprimeiraredesocialdomundo. Estava trabalhando em uma software house multinacional, baseada em Treviso,naItália,construindoumaredesocialdetimesdefuteboldevárzea paraaDiadora.Masfazíamosissotudousandoo“melhor”,emaisdifundido, processodedesenvolvimentodesoftware,oRUP. Issosignificaqueduranteos3anosemquegasteimeusuoresangue,cons- truindooincrívelsoftwaredestaredesocial,nuncativemosnenhumusuário, além da sócia que fazia demonstrações trimestrais para os diretores da Di- adora. E quando toda a diretoria mudou, e a empresa resolveu cancelar o projeto,foifácilfazê-lo,poisnãotinhasidolançado. iii CasadoCódigo Paramimfoiumaexperiênciamuitofrustrante,afinalcomminhaequipe tinha construído um software maravilhoso, uma rede social onde times de futeboldebairropoderiamcriarumapágina,postarfotos,conseguir“likes” deseusfãseatéorganizarcampeonatos.Eosoftwarefuncionavaqueerauma beleza,oupelomenosfuncionavanaminhamáquina. Eraomaiorprojetodaempresa,queacabouindoàfalênciaquandoper- deuessecliente. Deparei-mecomapergunta:Seráquenãoexisteumjeitomelhordefazer software?Deentregarmaisvalor,maisrápido,paraosnossosclientes?.Come- ceiasestudaroquenaépocaeramasmetodologias“leves”eresolvivoltarpara oBrasileparaafaculdade.Noanoseguinte,participeidaprimeiraturmado LaboratóriodeProgramaçãoeXtremadoIME/USP. E aí que minha vida de desenvolvedor de software mudou. Aprender e praticarProgramaçãoeXtremafoiummarcomuitoimportantenaminhacar- reira,eesperoquecomestelivro,sejaummarconasuatambém. Durantemuitosanosapósesseprimeiroencontro,pratiqueiaPrograma- çãoeXtremacomodefinidanoslivrosdoKentBeck.Comoserroseacertos, comeceiaentendercomoametodologiaeracompleta,ecomocadaparteera preciosa. Também aprendi a fazer algumas coisas bem difíceis muito bem, comoestimarempontos, sóparadescobrirnofinalquenãoprecisavareal- mentefazerisso! Mas na sua jornada, recomendo que não pule essa prática no começo, a sinergia entre as práticas de XP e o fato de que seus valores e princípios suportamtodooconjuntosãoumasdasrazõespelasquaismeapaixoneipor essametodologia. Hojeemdia,acomunidadeágiléforte,tempresençamarcantenoBrasil,e somosaindamaisextremos.Pegamosalgumaspráticasenosdesafiamoslevá- lasaindamaisaolimite!Comashistóriasdeusuárioeojogodoplanejamento evoluímos pra criar também o mapa de histórias. Com integração contínua partimosparafazerdeploycontínuo.Comprogramaçãoemparradicalizamos parafazerprogramaçãoemmultirão. Masalgumascoisaspermanecemparasemprevaliosas,comoasRetros- pectivas. Amelhortécnicaqueconheçoparaumaequipeseaprimorarcon- tinuamente. É tão universal que até já usei em outros contextos que não o iv CasadoCódigo desenvolvimentodesoftware. Se você for aprender só uma das metodologias ágeis, recomendo forte- mentequesejaaProgramaçãoeXtrema. Masexperimente-acompleta, per- cebendocomoosprincípiosevaloresapoiamaspráticas,equeestasmuitas vezessófuncionamporquedependemdasoutras.Éumametodologiaholís- tica,ondeasinergiacontamuito,ecomcertezavaimelhoraramaneiracomo vocêdesenvolvesoftware. Você tem em mãos um guia definitivo para começar sua jornada, apro- veitealeitura. —AlexandreFreire,DiretordeProdutosdaIndustrialLogiceKeynotedo AgileBrazil2014. PrefácioporPauloCaroli Desde2000,tenhoutilizado(eabusado)demetodologiaságeis.Aminha primeirasessãoemumaconferênciainternacionalfoinaOOPSLA2000,em que apresentei o resultado da minha tese de mestrado, algo sobre Orienta- çãoeObjetoseDesignPatterns.Apósminhaapresentação,fuifazertietagem comKentBeckporadmirá-lonosassuntosdesmalltalkedesignpatterns,e acabeicomprandoseunovolivrocomotítuloeXtremeProgrammingExplai- ned. Deu-seinícioumcaminhosemvolta–estavaexpostoeinfectadopela primeirademuitasmetodologiaságeis. NaquelaépocaeumoravanoValedoSilícioeestavatrabalhandoemuma start-up bem legal. Voltei empolgado da conferencia e logo mostrei o livro paraomeugerentedaépoca.Eleriuedisse“Extremeprogramming...please donotgetextremeonourcodebase.Beawareofourclientsanddeadlines”.O livroficounomeucubículo(naquelaépocaatéstart-upstinhamcubículos), edetemposemtemposeuomostravaparaalgumcolegadetrabalho. Testesunitáriosesolitários(somenteeuosliaeusava). Integraçãocon- tínuacommeuprópriocódigo(osoutrosdesenvolvedoresestavamemsuas branches).Eassimerammeusdiasdetrabalhoem2000e2001. Mas eu não estava sozinho. Além de Kent Beck, outros conhe- cidos estavam falando e escrevendo sobre suas experiências com XP. Ward Cunningham populava a C2wiki (http://c2.com/cgi/wiki? ExtremeProgrammingRoadmap) , enquanto Martin Fowler compartilhava v CasadoCódigo no seu site (http://martinfowler.com/articles/xp2000.html) . Mais desen- volvedores eram infectados, e compartilhavam suas experiências. E isso se alastrou até os dias de hoje, época em que XP é ensinado em faculdades, e muitasdesuaspráticassãovisíveisemtodosdepartamentosdeTI. Em2006,entreinaThoughtWorksetrabalheicompessoasqueparticipa- ramdoiníciodestemovimentoágil.Porexemplo,ouviashistóriasdoMartin sobreoprimeiroprojetoXP,oC3(ChryslerComprehensiveCompensation). Vivi e ouvi relatos de experiência sobre a implantações de XP ao redor do mundo. Em2008e2009constateiqueatéprojetosdeoutsourcingnaÍndia estavamusandoXP.Bah,maseuseguiareferenciandoaquelelivrode2000! Em2010,euajudeiatrazeraThoughtWorksparaoBrasil,abrindoseupri- meiroescritórioemPortoAlegre. Aescolhadacidadenãofoisomentepelo famosochurrasco,massimporadmiraçãoaomovimentodeXP,eaexcelente comunidadejáexistente. Conhecieaprendicomcadaumdosautoresdeste livro. Daniel, Dionatan, Rafael e Guilherme estão sempre compartilhando conhecimento.Nestaobra,compartilhamosvalores,práticaseprincípiosde XP. Com muito orgulho, informo que este livro é um resumo do que há de melhornomundoatualdedesenvolvimentodesoftware. Boaleitura, —PauloCaroli,cofundadoreagilecoachdaThoughtworksBrasil. vi CasadoCódigo Agradecimentos Antesdetudo,gostaríamosdeagradeceratodaacomunidadeágilbrasileira, queéumadasmaioresemaisparticipativasnomundo.Temosgrandeseven- tosemnossaáreademétodoságeiscomagilistasmuitoexperientesesomos gratos por isso. Obrigado por todas as trocas de experiências durante esses anosdeagilidadenoBrasil! ÀcomunidadedoantigoXP-RS,oatualGUMA-RS GrupodeUsuários deMétodosÁgeisdoRioGrandedoSul(saibamaisemhttp://www.guma-rs. org),onossomuitoobrigadoporserumgrandegrupofomentadordaagili- dadeedoeXtremeProgramming! Obrigado,emuito,aosnossosbetareadersJamileAlves,MaurícioAniche e Rodrigo Pinho! As opiniões e sugestões de vocês foram essenciais para a melhoriadolivro. ObrigadotambématodasaspessoasdaCasadoCódigo. Vocêsnosde- ramumexcelentesuporteesempreestiveramdispostosacontribuircomesta obra! AosagilistasKlausWuestefeld, AlexandreFreireePauloCaroli, anossa gratidãopelosadmiráveisprefácios! Anossosalunoseclientes,quenospermitempraticareaprenderemcon- junto,eavocêleitor,onossomuitoobrigadoporinteressar-senestetrabalho! Esperamosquealeituradestelivrosejaútileagradável!:-) DedicoestelivroaosdesenvolvedoresprofissionaisdoBrasil,quesepreocu- pamementregarsoftwaredequalidadeebuscamexcelênciatécnica!—Daniel Wildt Agradeçoatodosqueveemnosmétodoságeisumcaminhoparaummundo melhor!Dedicoestelivroaosmeuspaiseirmãos! —DionatanMoura vii CasadoCódigo Dedico à minha família: em especial, para meus pais (Paulo e Liberta) e paraminhaesposaefilha(JulianaeIsabella)! —GuilhermeLacerda AgradeçoàCasadoCódigopelaoportunidade,aoKlausWuestefeld,Ale- xandreFreireePauloCarolipelosprefáciosinspiradores,àVivianpeladedica- ção e paciência durante a revisão deste livro, aos meus amigos e parceiros de jornada,Daniel,DionataneGuilherme!AléméclarodaminhaesposaAlinee meufilhoRafaelHelmJunior,comelesaomeuladotudofazsentido.—Rafael Helm viii CasadoCódigo Sobre os autores DanielWildt Fundadorem2004doXP-RS GrupodeUsuáriosdeeXtremeProgramming doRS,quedepoissetransformounoGUMA-RS GrupodeUsuáriosdeMéto- dosÁgeisdoRioGrandedoSul.Desde2003,umpraticanteinteressadopelo desenvolvimentodecomunidades,organizações,equipesepessoasemtorno daagilidade. Trabalhaemprocessosdemelhoriadastécnicasdeengenharia desoftwareeprocessos,sempreembuscadesimplicidadeedoaprendizado. Ajudapessoasatornarem-semelhoresprofissionais,equipesacrescerempor meiodemelhoriacontínuaeprodutos/serviçosaseremformados. Alémda formaçãotécnica,possuiformaçãodeMasterTraineremProgramaçãoNeu- rolinguística. É CTO na uMov.me (http://umov.me) , coach/instrutor pela Wildtech (http://www.wildtech.com.br) e facilitador no Estaleiro Liberdade (http://www.estaleiroliberdade.com.br). DionatanMoura Coach ágil na Companhia de Processamento Dados do Estado Rio GrandeSul(PROCERGS),auxiliandonaentregademaiorvaloraocidadão por meio da agilidade e inovação. Professor visitante na pós-graduação da UniRitter Laureate International Universities. Mestre e bacharel em Ciên- ciadaComputaçãonaUFRGS.CoordenadordoGrupodeUsuáriodeMéto- dosAgeisdoRS(GUMA-RS)edoGrupodeUsuáriosJavadoRS(RSJUG). FoidesenvolvedorJavaporseteanos,ecoordenadordastrilhasJavadoTDC POA 2013 e 2014. Palestrante em eventos ágeis, como: Agile Brazil, TDC e XPConf; e possui as certificações: CSP, SAFe SA, PMP, CSM, PSM I, CSD, CSPO,OCPJP,CTFL,ITILeMPS-BR.PodeserencontradonoTwittercomo @dionatanmouraepossuiumblog:http://dionatanmoura.com. ix

Description:
Por que projetos falham? Comunicação insatisfatória com o cliente, um empurra a culpa para o outro, tempo desperdiçado, falta de testes e retrabalho... Estas são cenas corriqueiras em um time de desenvolvimento de software. E qual a solução?Neste livro, Daniel Wildt, Dionatan Moura, Guilherme
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.