{"id":1770,"date":"2015-04-24T09:14:07","date_gmt":"2015-04-24T07:14:07","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/?p=1770"},"modified":"2015-04-24T09:55:15","modified_gmt":"2015-04-24T07:55:15","slug":"te-entrenas-para-ser-mejor-programador-descubre-los-coding-dojo","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/uncategorized-ca\/te-entrenas-para-ser-mejor-programador-descubre-los-coding-dojo","title":{"rendered":"\u00bfTe entrenas para ser mejor programador? Descubre los Coding Dojo"},"content":{"rendered":"<p>Un Dojo es donde se practican las artes marciales. Es una palabra japonesa que significa &quot;lugar donde se estudia el camino&quot;, por lo tanto tiene un componente filos&oacute;fico que va m&aacute;s all&aacute; de un gimnasio. En un dojo se trabaja tanto el cuerpo como la mente.<\/p>\n<p>Por lo tanto un coding dojo no es m&aacute;s que un espacio donde poder mejorar nuestras habilidades como programadores.<\/p>\n<p><!--more--><\/p>\n<p>Un Dojo es donde se practican las artes marciales. Es una palabra japonesa que significa &quot;lugar donde se estudia el camino&quot;, por lo tanto tiene un componente filos&oacute;fico que va m&aacute;s all&aacute; de un gimnasio. En un dojo se trabaja tanto el cuerpo como la mente.<\/p>\n<p>Por lo tanto un coding dojo no es m&aacute;s que un espacio donde poder mejorar nuestras habilidades como programadores, al igual que los m&uacute;sicos ensayan antes de los conciertos o los atletas entrenan antes de las competiciones deportivas, los inform&aacute;ticos debemos mejorar nuestras habilidades como desarrolladores de software antes de realizar proyectos para nuestros clientes.<\/p>\n<p>El funcionamiento de un coding dojo es el siguiente, se propone un ejercicio y hay que intentar resolverlo. Si utilizamos la terminolog&iacute;a correcta de los coding dojos tendremos que reescribir la frase de arriba de la siguiente manera. El <strong>facilitador<\/strong> propone una <strong>kata<\/strong> y mediante varios <strong>sprints y pair programming <\/strong>debemos intentar resolverla.<\/p>\n<p>Por eso necesitamos saber que quieren decir cada una de las palabras en negrita:<\/p>\n<ul>\n<li>Facilitador: persona que &quot;dirige&quot; la sesi&oacute;n. Propone la kata, el objetivo y modera los debates<\/li>\n<li><a href=\"http:\/\/www.codingdojo.org\/cgi-bin\/index.pl?KataCatalogue\" target=\"_blank\" rel=\"noopener\">Kata<\/a>: es un ejercicio de programaci&oacute;n, que mediante la pr&aacute;ctica y la repetici&oacute;n, te ayuda a mejorar tus habilidades como desarrollador<\/li>\n<\/ul>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\" size-full wp-image-1766\" alt=\"\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/04\/coding_dojo-2_0.jpg\" style=\"width: 600px; height: 287px;\" width=\"600\" height=\"287\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/04\/coding_dojo-2_0.jpg 600w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/04\/coding_dojo-2_0-300x144.jpg 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/04\/coding_dojo-2_0-370x177.jpg 370w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/p>\n<p class=\"rtecenter\"><span style=\"font-size:9px;\"><em><span lang=\"ca\"><span class=\"hps\">Imagen cortes&iacute;a de <\/span><\/span><\/em>Michael Hultstr&ouml;m<\/span><\/p>\n<ul>\n<li><a href=\"http:\/\/ca.wikipedia.org\/wiki\/Scrum#Sprint\" target=\"_blank\" rel=\"noopener\">Sprint<\/a>: periodo de tiempo del que disponemos para realizar una tarea<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Pair_programming\" target=\"_blank\" rel=\"noopener\">Pair programming<\/a>: Se trata de &quot;picar&quot; c&oacute;digo entre dos, uno programa (driver) y el otro revisa el c&oacute;digo (observer), y cada poco tiempo se intercambian los roles<\/li>\n<\/ul>\n<p>Cada coding dojo debe tener un objetivo, este objetivo debe hacer foco en mejorar una habilidad, ya sea de dise&ntilde;o, de test, de patr&oacute;n de software, &#8230; y se escoge una kata que haga foco sobre el objetivo a conseguir.<\/p>\n<p>Una vez que tenemos el objetivo y la kata hacemos un sprint para intentar resolverla. Una vez finalizado sprint se abre un periodo de debate, donde, entre todos, comentamos &iquest;que ha ido bien?, &iquest;donde nos hemos atascado?, &iquest;c&oacute;mo podemos mejorar?, &iquest;qu&eacute; debemos evitar?, &#8230; A continuaci&oacute;n, se empieza un nuevo sprint.<\/p>\n<p>En funci&oacute;n de la kata, el objetivo o los participantes, en este nuevo sprint se pueden introducir modificaciones en el enunciado (a&ntilde;adir un requisito m&aacute;s, borrar todo los c&oacute;digos hecho hasta ahora y empezar de nuevo, a&ntilde;adir una restricci&oacute;n, intercambiar parejas, &#8230;.) y de nuevo un debate al finalizar. Y se van haciendo sprints y debates hasta finalizar el coding dojo.<\/p>\n<p><span lang=\"es\" tabindex=\"-1\"><span title=\"A t\u00edtol d'exemple, si un coding dojo dura 2h es pot fer una breu presentaci\u00f3 de la kata (5 minuts), dos sprints de 45 minuts i dos debats 10-15 minuts.\">Como ejemplo, si un coding dojo dura 2h se puede hacer una breve presentaci&oacute;n de la kata (5 minutos), dos sprints de 45 minutos y dos debates 10-15 minutos. <\/span><span title=\"O b\u00e9 3 sprints de 30 minuts i 3 debats de 10 minuts.\n\n\">O bien 3 sprints de 30 minutos y 3 debates de 10 minutos.<\/span><\/span><\/p>\n<p><span lang=\"es\" tabindex=\"-1\"><span title=\"Despr\u00e9s d'aquesta explicaci\u00f3 de ben segur que encara teniu dubtes:\n\n&nbsp;&nbsp;&nbsp;&nbsp;\">Despu&eacute;s de esta explicaci&oacute;n seguro que todav&iacute;a tiene dudas:<\/span><\/span><\/p>\n<ul>\n<li>Qu&eacute; IDE utilizamos?<\/li>\n<\/ul>\n<p class=\"rteindent1\">Utiliza aquel que m&aacute;s conozcas, para centrarte en la kata y no en el entorno.<\/p>\n<ul>\n<li>&iquest;Qu&eacute; lenguaje de programaci&oacute;n utilizamos para resolverla?<\/li>\n<\/ul>\n<p class=\"rteindent1\">Esta respuesta dependen del facilitador o bien de ti mismo. Si el facilitador quiere hacer foco en un lenguaje de programaci&oacute;n en concreto seguramente ser&aacute; fijado, si no utiliza aquel en el que t&uacute; quieras mejorar o te sientas m&aacute;s c&oacute;modo.<\/p>\n<ul>\n<li>&iquest;Qu&eacute; hacemos con el c&oacute;digo al finalizar?<\/li>\n<\/ul>\n<p class=\"rteindent1\">Tirarlo, borrarlo, eliminarlo. El objetivo es mejorar tus habilidades como desarrollador, no que tengas c&oacute;digos de ejemplo para cuando te encuentres casos similares. Si practicas menudo y mejoras tus habilidades cuando te encuentres casos similares los podr&aacute; resolver f&aacute;cilmente.<\/p>\n<ul>\n<li>&iquest;Cu&aacute;nta gente puede asistir el coding Dojo?<\/li>\n<\/ul>\n<p class=\"rteindent1\">Depende, se pueden hacer coding dojos con m&aacute;s de 30 personas o bien entre 4 o 5, incluso t&uacute; solo. Cada d&iacute;a antes de empezar a desarrollar haces un sprint de 30 minutos para resolver una kata concreta.<\/p>\n<p>Como reflexi&oacute;n final: los &uacute;ltimos a&ntilde;os en el inLab FIB hemos cambiado muchas cosas, cambiamos de nombre (antes nos dec&iacute;amos LCFIB), hemos arrancado el programa TalentSI (un programa de formaci&oacute;n interno) entre nuestros colaboradores en formaci&oacute;n y hemos empezado a utilizar las metodolog&iacute;as Agile para desarrollar proyectos de software. Todos estos cambios se pueden ver reflejados en una sola liturgia, los Coding dojo. Mejoramos nuestras habilidades para desarrollar proyectos que satisfagan nuestros clientes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un Dojo es donde se practican las artes marciales. Es una palabra japonesa que significa &quot;lugar donde se estudia el camino&quot;, por lo tanto tiene un componente filos&oacute;fico que va m&aacute;s all&aacute; de un gimnasio. En un dojo se trabaja tanto el cuerpo como la mente. Por lo tanto un coding dojo no es m&aacute;s [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1763,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[495,458,1],"tags":[],"experteses":[15,570,17,27],"class_list":["post-1770","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticias","category-noticies","category-uncategorized-ca","experteses-entorns-i-serveis-tic-de-suport-a-laprenentatge-i-per-a-la-gestio-dels-processos-universitaris","experteses-entorns-i-serveis-tic-de-suport-a-laprenentatge-i-per-a-la-gestio-dels-processos-universitaris-es","experteses-entornosyserviciosticdesoportealaprendizaje-es","experteses-knowledgeyserviceengineering-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/1770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=1770"}],"version-history":[{"count":0,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/1770\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/1763"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=1770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=1770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=1770"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=1770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}