{"id":28,"date":"2007-06-21T11:33:04","date_gmt":"2007-06-21T10:33:04","guid":{"rendered":"http:\/\/www.dtsato.com\/blog\/default\/Agile\/XP\/?permalink=XP-2007-Dia-3.html"},"modified":"2008-08-16T19:11:37","modified_gmt":"2008-08-16T18:11:37","slug":"xp-2007-dia-3","status":"publish","type":"post","link":"https:\/\/www.dtsato.com\/blog\/2007\/06\/21\/xp-2007-dia-3\/","title":{"rendered":"XP 2007 &#8211; Dia 3"},"content":{"rendered":"<p>Muitas coisas aconteceram no \u00faltimo dia da <span class=\"nobr\"><a href=\"http:\/\/www.xp2007.org\/index.php?option=com_wrapper&amp;Itemid=85\">main track<\/a><\/span>: painel de discuss\u00e3o sobre certifica\u00e7\u00f5es, artigos cient\u00edficos, painel de discuss\u00e3o sobre &#8220;melhores pr\u00e1ticas&#8221;, DSLs e keynote do Kent Beck. No terceiro dia de confer\u00eancia diversos t\u00f3picos foram abordados e, daqui pra frente, participarei apenas de tutoriais e workshops, ent\u00e3o espero que a densidade dos posts diminua :-)<\/p>\n<h3 class=\"heading-1-1\">Painel de Discuss\u00e3o sobre Certifica\u00e7\u00e3o<\/h3>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Certifica\u00e7\u00e3o no mundo \u00e1gil \u00e9 um assunto que est\u00e1 na moda. A <span class=\"nobr\"><a href=\"http:\/\/www.agilealliance.org\">Agile Alliance<\/a><\/span> anunciou recentemente <span class=\"nobr\"><a href=\"http:\/\/www.agilealliance.org\/show\/1796\">sua posi\u00e7\u00e3o<\/a><\/span> sobre o assunto; Scott Ambler colocou sua opini\u00e3o a favor num <span class=\"nobr\"><a href=\"http:\/\/www.ddj.com\/dept\/architect\/199902742\">artigo da DDJ<\/a><\/span>; al\u00e9m disso, muitos debates v\u00eam acontecendo nas diversas listas de discuss\u00e3o, como <span class=\"nobr\"><a href=\"http:\/\/groups.yahoo.com\/group\/scrumdevelopment\/\">scrumdevelopment@Yahoo<\/a><\/span>, <span class=\"nobr\"><a href=\"http:\/\/groups.yahoo.com\/group\/extremeprogramming\/\">extremeprogramming@Yahoo<\/a><\/span> e na nossa <span class=\"nobr\"><a href=\"http:\/\/groups.yahoo.com\/group\/xprio\/\">XP@Rio<\/a><\/span>. A opini\u00e3o dos participantes do painel estava dividida entre:<\/p>\n<p>\u00a0<\/p>\n<ul class=\"star\">\n<li>Contra: Joshua Kerievsky e David Hussman<\/li>\n<li>A Favor: Jeff Patton e Boris Gloger<\/li>\n<li>Em cima do muro: Rachel Davis, representando a Agile Alliance<\/li>\n<\/ul>\n<p>Uma das grandes discuss\u00f5es girou em torno do Certified Scrum Master. Joshua e David argumentaram que \u00e9 um excelente treinamento (eu concordo), por\u00e9m d\u00e1 um t\u00edtulo muito poderoso (para o observador desatento) para um curso de 2 dias sem uma prova no final. Em outras palavras, empresas procuram SCMs sem saber o que eles tiveram que fazer para se tornar um (est\u00e1 escrito na descri\u00e7\u00e3o do  curso na <span class=\"nobr\"><a href=\"http:\/\/www.scrumalliance.org\">Scrum Alliance<\/a><\/span>). Do outro lado o Boris argumentou que, apesar de ser sim uma ferramenta de marketing (muito eficiente, por sinal), foi um programa que propiciou a cria\u00e7\u00e3o de uma enorme comunidade interessada no Scrum e que, de uma forma ou de outra, contribuiu para o aumento na ado\u00e7\u00e3o dos M\u00e9todos \u00c1geis na ind\u00fastria. Sobre esse t\u00f3pico, estou um pouco mais pendente pro lado contra (apesar de ser um SCM) devido \u00e0 fragilidade da nossa ind\u00fastria. Infelizmente as empresas buscam profissionais certificados sem saber o que os torna certificados. Apesar disso, concordo com o argumento do Boris de que a forma\u00e7\u00e3o de uma comunidade \u00e9 importante. Acredito que uma estrat\u00e9gia de longo prazo para populariza\u00e7\u00e3o dos M\u00e9todos \u00c1geis n\u00e3o deve ser t\u00e3o ambiciosa a ponto de querer atingir quantidade e qualidade ao mesmo tempo. Olhando por esse lado, acredito que \u00e9 mais f\u00e1cil (e natural) conseguir a quantidade antes da qualidade. Por isso, acho que os treinamentos de SCM s\u00e3o importantes.<\/p>\n<p>Dentre outras discuss\u00f5es sobre o tema, surgiu a id\u00e9ia de ter uma &#8220;certifica\u00e7\u00e3o&#8221; \u00e1gil mais parecida com o que fazemos na universidade: um curso muito mais longo, muito mais abrangente e que fornece uma base comum de conhecimento para que o aluno possa evoluir. Quando um aluno se forma na gradua\u00e7\u00e3o, n\u00e3o espera-se que ele saia totalmente proficiente. Existe um consenso de que a experi\u00eancia trar\u00e1 benef\u00edcios. Gostei dessa id\u00e9ia de uma &#8220;faculdade \u00e1gil&#8221;. :-)<\/p>\n<p>Outro ponto interessante da discuss\u00e3o foi a separa\u00e7\u00e3o entre habilidade e certifica\u00e7\u00e3o (ou treinamento). Ter uma certifica\u00e7\u00e3o ou participar de um treinamento n\u00e3o \u00e9 garantia de que o participante ir\u00e1 adquirir a habilidade necess\u00e1ria. Isso pareceu ser consenso. O \u00fanico ponto do Joshua foi que ele prefere chamar isso de treinamento ao inv\u00e9s de certifica\u00e7\u00e3o, pois \u00e9 mais realista. Por outro lado, o Boris argumentou que qualquer programa de certifica\u00e7\u00e3o gera um mercado mais atraente para empresas.<\/p>\n<p>Outros assuntos interessantes foram abordados na discuss\u00e3o, mas esse espa\u00e7o \u00e9 muito curto (e minhas anota\u00e7\u00f5es muito sucintas) para expor de forma adequada. Acho que a discuss\u00e3o est\u00e1 boa e deve continuar\u2026<\/p>\n<h3 class=\"heading-1-1\">Artigos Cient\u00edficos<\/h3>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Ap\u00f3s o debate, houve uma sess\u00e3o de apresenta\u00e7\u00e3o de artigos cient\u00edficos, dentre eles o meu. Confesso que fiquei um pouco nervoso por ter que apresentar em ingl\u00eas e um pouco mais nervoso quando vi o Kent Beck na plat\u00e9ia. Mas isso passou assim que comecei a falar (como costumava acontecer quando tinha que tocar piano na frente dos outros.. he he) e acho que correu tudo bem. Ap\u00f3s a sess\u00e3o fui conversar com o Kent Beck (sobre outro assunto) e ele me disse que gostou da minha apresenta\u00e7\u00e3o, o que me deixou muito orgulhoso :-)<\/p>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Dentre os outros papers apresentados, teve um que n\u00e3o gostei (nem o Boris.. he he) sobre um meta-modelo para modelar e medir a efic\u00e1cia de processos \u00e1geis. O exemplo usado foi o Scrum e me pareceu uma tentativa de fazer um framework-de-processos(RUP)-\u00e1gil-gen\u00e9rico, onde outras metodologias \u00e1geis poderiam ser &#8220;instanciadas&#8221;. Enfim, n\u00e3o deu pra entender muito bem a motiva\u00e7\u00e3o para usar aquilo (e eu tamb\u00e9m tenho um certo preconceito quando come\u00e7am a falar de processos com caixinhas parecidas com UML, setinhas e coisas &lt;&lt;entre s\u00edmbolos estranhos&gt;&gt;).<\/p>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Por outro lado, os outros dois papers foram bem mais interessantes. O primeiro foi sobre o <span class=\"nobr\"><a href=\"http:\/\/ebe.cpsc.ucalgary.ca\/ebe\/Wiki.jsp?page=FitClipse\">FitClipse<\/a><\/span>, um plugin do Eclipse para execu\u00e7\u00e3o e edi\u00e7\u00e3o de testes de aceita\u00e7\u00e3o do <span class=\"nobr\"><a href=\"http:\/\/fit.c2.com\">FIT<\/a><\/span>. Ele roda em cima do <span class=\"nobr\"><a href=\"http:\/\/fitnesse.org\">FitNesse<\/a><\/span> e permite a distin\u00e7\u00e3o entre testes que falham por motivos aceit\u00e1veis (ainda n\u00e3o foram implementados) ou por motivos inaceit\u00e1veis (j\u00e1 foram verde e ficaram vermelho depois de um tempo), al\u00e9m de mostrar uns gr\u00e1ficos bonitinhos. O outro foi sobre o <span class=\"nobr\"><a href=\"http:\/\/www.fernuni-hagen.de\/ps\/prjs\/EzUnit\">EzUnit<\/a><\/span>, uma extens\u00e3o do <span class=\"nobr\"><a href=\"http:\/\/www.junt.org\">JUnit<\/a><\/span> que permite a identifica\u00e7\u00e3o mais precisa de qual peda\u00e7o de c\u00f3digo pode ter causado uma falha. O framework permite a defini\u00e7\u00e3o do(s) m\u00e9todo testado(s) (Method Under Test ou MUT) com anota\u00e7\u00f5es (isso achei estranho) ou, para quem \u00e9 pregui\u00e7oso como eu, escreve as anota\u00e7\u00f5es atrav\u00e9s de an\u00e1lise est\u00e1tica e din\u00e2mica do c\u00f3digo. Gostei da id\u00e9ia, mas n\u00e3o tanto dessa parte das anota\u00e7\u00f5es\/an\u00e1lise est\u00e1tica. Concordo com o coment\u00e1rio do Kent Beck no final de que a an\u00e1lise din\u00e2mica, associada aos deltas das mudan\u00e7as efetuadas mais recentemente, d\u00e3o uma informa\u00e7\u00e3o muito boa sobre onde uma poss\u00edvel falha pode estar localizada. Al\u00e9m disso, linguagens din\u00e2micas n\u00e3o permitem an\u00e1lise est\u00e1tica de qualquer forma. Acho\/espero que no futuro vamos usar testes unit\u00e1rios como &#8220;compiladores&#8221; e ferramentas como essa podem facilitar a vida.<\/p>\n<p>\u00a0<\/p>\n<h3 class=\"heading-1-1\">Painel de Discuss\u00e3o sobre &#8220;Melhores Pr\u00e1ticas em Software&#8221;<\/h3>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Antes de mais nada, uma coloca\u00e7\u00e3o da Mary: &#8220;N\u00e3o existe uma MELHOR pr\u00e1tica&#8221;. A partir do momento que consideramos algo como o melhor, deixamos de pensar em formas de melhorar, afinal de contas j\u00e1 temos O MELHOR. Muito bem colocado e os presentes no painel concordaram: Giancarlo Succi, Jutta Eckstein, Robert Beedle e Yael Dubinsky.<\/p>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Os &#8220;painelistas&#8221; (como se escreve isso em portugu\u00eas?) mostraram uma preocupa\u00e7\u00e3o na defini\u00e7\u00e3o e escolha de pr\u00e1ticas muito t\u00e9cnicas. A agilidade prop\u00f5e aspectos humanos que dificilmente s\u00e3o expressados em pr\u00e1ticas espec\u00edficas. Por outro lado, medir e avaliar a ado\u00e7\u00e3o de princ\u00edpios e valores \u00e9 complicado. Robert Beedle defendeu o ponto de que a pr\u00e1tica mais importante \u00e9 a colabora\u00e7\u00e3o. Ela inclui os valores humanos e dirige o resto do processo na dire\u00e7\u00e3o certa. Segundo ele, sua primeira impress\u00e3o sobre XP foi positiva pois servia como uma ferramenta cognitiva para compartilhamento de conhecimento que, mesmo sem saber explicar muito bem como, fazia com que as coisas certas acontecessem. Em outras palavras, se voc\u00ea seguisse as pr\u00e1ticas (e suas sinergias e valores embutidos), voc\u00ea seria capaz de dirigir a produ\u00e7\u00e3o do software certo, ao contr\u00e1rio da abordagem da engenharia de software tradicional que busca a forma certa de produzir software. <strong>Produzir certo vs. Produzir o software certo<\/strong>. Conceitos bem diferentes.<\/p>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Por fim, houve uma discuss\u00e3o sobre como medir o sucesso nos projetos. O Giancarlo defendeu o ponto de que \u00e9 preciso utilizar m\u00e9tricas e objetivos claros para avalia\u00e7\u00e3o do sucesso. Num debate sobre o valor de m\u00e9tricas quantitativas e qualitativas, Robert Beedle disse que para medir o lado humano dos M\u00e9todos \u00c1geis, m\u00e9tricas qualitativas s\u00e3o a \u00fanica solu\u00e7\u00e3o. Por outro lado, Giancarlo disse que \u00e9 mais f\u00e1cil entender dados quantitativos, apesar de serem facilmente manipul\u00e1veis ou mal-interpretados.<\/p>\n<p>\u00a0<\/p>\n<h3 class=\"heading-1-1\">Birds of a Feather: Domain Specific Languages &#8211; Emily Bache<\/h3>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Apesar de n\u00e3o constar na programa\u00e7\u00e3o oficial, a Emily havia mandado uma proposta de workshop que foi recusada e, mesmo assim, decidiu fazer uma sess\u00e3o aberta para interessados em discutir DSLs. Eu achei muito louv\u00e1vel a atitude e, como n\u00e3o programaram nenhum Open Space na confer\u00eancia desse ano, tamb\u00e9m demonstrou o poder da comunidade em adaptar o programa e compartilhar conhecimentos.<\/p>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Nesse workshop, discutimos o conceito de uma DSL que, para minha surpresa, n\u00e3o era consenso. Eu ainda n\u00e3o tive muitas experi\u00eancias utilizando uma DSL numa situa\u00e7\u00e3o onde precisei de verdade, a n\u00e3o ser na defini\u00e7\u00e3o de testes de aceita\u00e7\u00e3o. Por\u00e9m, como disse para os participantes, j\u00e1 houve momentos na minha carreira (antes de saber o que era XP) onde consigo ver uma DSL ajudando a diminuir a dist\u00e2ncia entre especialistas e programadores. Ap\u00f3s diversas discuss\u00f5es surgiram alguns aspectos do que seria uma DSL:<\/p>\n<p>\u00a0<\/p>\n<ul class=\"star\">\n<li>Uma DSL deve maximizar a densidade sem\u00e2ntica: em outras palavras, dependendo do p\u00fablico-alvo (os especialistas no dom\u00ednio), usar muitos par\u00eanteses e s\u00edmbolos de programa\u00e7\u00e3o podem atrapalhar a legibilidade (particularmente em DSLs internas).<\/li>\n<li>Uma DSL deve ser execut\u00e1vel: isso inclui a habilidade de edi\u00e7\u00e3o e execu\u00e7\u00e3o na frente do especialista do dom\u00ednio, trazendo feedback imediato.<\/li>\n<li>Deve ser f\u00e1cil e r\u00e1pido alterar uma DSL: em outras palavras, o especialista de dom\u00ednio deve ser praticamente capaz de escrever na DSL (ler \u00e9 mais f\u00e1cil que escrever).<\/li>\n<\/ul>\n<p>Ainda no t\u00f3pico da densidade sem\u00e2ntica, houve uma pequena discuss\u00e3o sobre se uma DSL deve ou n\u00e3o ser obrigatoriamente leg\u00edvel para o cliente (ao inv\u00e9s do programador). Nesse caso, o rake n\u00e3o seria uma DSL.<\/p>\n<h3 class=\"heading-1-1\">Keynote de encerramento: Ease at Work &#8211; Kent Beck<\/h3>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Para n\u00e3o tornar um post longo ainda mais longo, n\u00e3o vou me estender muito sobre esse keynote. <strong>Kent Beck \u00e9 O CARA<\/strong>. E dessa vez, ao inv\u00e9s de falar sobre aspectos t\u00e9cnicos, metodologias ou empresas, ele deu uma palestra quase como psic\u00f3logo (tudo bem que a esposa dele \u00e9 psic\u00f3loga), para tentar fazer-nos refletir sobre nosso papel como programadores e como encaramos nosso trabalho. Em outras palavras, como fazer com que possamos nos sentir bem com nossas qualidades e defeitos?; como conviver e aceitar que n\u00e3o estaremos sempre no auge ou na lama?; como sair do trabalho com a consci\u00eancia tranquila de que demos nosso melhor?; Como sustentar mudan\u00e7as?; Como sermos mais respons\u00e1veis e transparentes no trabalho?<\/p>\n<p class=\"paragraph\">\u00a0<\/p>\n<p>Como disse, espero que o post de amanh\u00e3 seja mais resumido pois tamb\u00e9m cansa escrever esses relatos\u2026 brincadeira :-)<\/p>\n<p class=\"paragraph\">\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Muitas coisas aconteceram no \u00faltimo dia da main track: painel de discuss\u00e3o sobre certifica\u00e7\u00f5es, artigos cient\u00edficos, painel de discuss\u00e3o sobre &#8220;melhores pr\u00e1ticas&#8221;, DSLs e keynote do Kent Beck. No terceiro dia de confer\u00eancia diversos t\u00f3picos foram abordados e, daqui pra frente, participarei apenas de tutoriais e workshops, ent\u00e3o espero que a densidade dos posts diminua [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[6,10,13,19,26,48,81,94,95],"class_list":["post-28","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-agile","tag-best-practices","tag-certification","tag-conference","tag-dsl","tag-metrics","tag-talk","tag-xp","tag-xp2007"],"_links":{"self":[{"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/posts\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":1,"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/posts\/28\/revisions"}],"predecessor-version":[{"id":124,"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/posts\/28\/revisions\/124"}],"wp:attachment":[{"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/media?parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/categories?post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dtsato.com\/blog\/wp-json\/wp\/v2\/tags?post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}