<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

	<channel>
		<title>Magazine - metodologias-agiles</title>
		<link>http://www.genbetadev.com</link>
		<description>
Información sobre el sector de los desarrolladores, el desarrollo de aplicaciones, para móviles, desarrollo web, bases de datos, frameworks y lenguajes de programación		</description>
		<pubDate>2013-05-19 04:51:08</pubDate>

		<generator>http://www.genbetadev.com</generator>
                    <item>
      <title><![CDATA[SaveInformaticOS, debatiendo sobre el futuro de la profesión de informático]]></title>
      <link>http://www.genbetadev.com/trabajar-como-desarrollador/saveinformaticos-debatiendo-sobre-el-futuro-de-la-profesion-de-informatico</link>
      <guid>http://www.genbetadev.com/trabajar-como-desarrollador/saveinformaticos-debatiendo-sobre-el-futuro-de-la-profesion-de-informatico</guid>
      <pubDate>Mon, 08 Apr 2013 17:27:44 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img alt="Save InformaticOs" src="http://img.genbetadev.com/2013/04/650_1000_saveInformaticOS-2.jpg" class="centro_sinmarco" /></p>

	<p>Creo que casi todos hemos escuchado alguna vez que la profesión de informático es la que mejor futuro tiene.  No parece nada extraño si pensamos en este mundo hiperconectado de internet, apps móviles y todo tipo de tecnologías que surgen tan rápidamente. ¿Pero a qué precio muchos profesionales de la informática que trabajan en el sector lo están pagando malgastando sus carreras profesionales? </p>

	<p>Si queremos <strong>defender la profesión de informático y mantenerla como la profesión de futuro</strong> que siempre ha sido, debemos revisar qué nos mueve y cómo debemos adaptarla. Con esta motivación surge el evento <strong>SaveInformaticOs</strong> que reunirá a profesionales, empresas, clientes, estudiantes y docentes entorno a este <strong>Open Space el día 27 de Abril en la Universidad Politécnica de Madrid</strong>.</p>

	<p><!--more--></p>

	<p>El formato <strong>Open Space</strong> es una modalidad dinámica sin agenda previa en la que se propone de forma conjunta los temas a tratar en los diferentes tracks al comienzo del evento. Cualquiera que tenga una propuesta la puede exponer y “venderse” al resto de asistentes para que asistan a su charla o corrillo de ideas. Se votan las mejores propuestas y se participa libremente en la que más nos apetezca, siempre con la posibilidad de ir de charla en charla (la famosa regla de los 2 pies). Podéis conocer más sobre el <a href="http://reeelab.com/blog/2013/02/16/manual-de-instrucciones-para-un-open-space/">formato Open Space en el blog de reelab</a> que explica a la perfección sus reglas.</p>

	<p>Durante estos días, seguro que habréis escuchado <strong>debates interesantes sobre la profesión de informático</strong>. Muchos de ellos iniciados entorno a la perspectiva de este evento. Entre ellos, <a href="http://saveinformaticos.reeelab.com/2013/04/07/por-que-se-muere-nuestra-profesion/">el tremendo cáncer de nuestra profesión como son las “cárnicas”</a> que trafican con horas/hombres ¿Cuantos buenos programadores se han perdido por la <strong>desmotivación de ese tipo de trabajos</strong>? La desmotivación estacan nuestra carrera de técnicos, quedando con el tiempo obsoletos. Cada vez más <a href="http://saveinformaticos.reeelab.com/2013/04/04/la-vision-marciana/">los jóvenes tendrán la habilidad innata de programar</a> y crear su propio hardware o software, pero en las universidades no sabrán aprovechar esos talentos con clases alejadas de la realidad. <strong>La sociedad evoluciona y nosotros, los informáticos, quedamos anclados.</strong></p>

	<p>Por todos estos motivos, creemos que un Open Space que libere las mentes y fomente que todos los implicados dialoguen sobre el futuro de la profesión es importante. Pasando por temas como el trabajo, <strong>el cambio hacia un nuevo paradigma en que la metodologías ágiles</strong> se adopten de pleno y, sobre todo, que seamos consciente cómo se hacen bien las cosas y olvidar las prisas/ñapas. </p>

	<p>Es necesario el <strong>esfuerzo de los profesionales y las empresas</strong>. Seguro que muchos profesionales que están motivados con su profesión y tiene la intención de hacer bien las cosas se animarán a contar en las distintas charlas cómo trabajan y dar ideas para mejorar la profesión de informático.</p>

	<p>Podéis encontrar más información en el sitio web de <a href="http://saveinformaticos.reeelab.com/">SaveInformáticos</a>, así como leer la opinión de buenos profesionales que participan activamente en el evento. </p>

	<p>Más información | <a href="http://saveinformaticos.reeelab.com/">SaveInformáticOS</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Pilas de Producto, hablando de Scrum]]></title>
      <link>http://www.genbetadev.com/metodologias-de-programacion/pilas-de-producto-hablando-de-scrum</link>
      <guid>http://www.genbetadev.com/metodologias-de-programacion/pilas-de-producto-hablando-de-scrum</guid>
      <pubDate>Sun, 11 Mar 2012 09:23:40 +0000</pubDate>

      <author>Juan Quijano</author>
      <description><![CDATA[
      <p><img alt="Product Backlog Team Foundation Service" src="http://img.genbetadev.com/2012/03/productbacklog.jpg" class="centro_sinmarco" /></p>

	<p>La Pila de Producto, o Product Backlog, es un artefacto del marco de trabajo para la gestión agile de proyectos de desarrollo de software, <span class="caps"><span class="caps">SCRUM</span></span>. Y que es, en líneas generales, <strong>una lista ordenada u priorizada de las tareas</strong> que componen un proyecto de aplicación.</p>

	<p>Aunque <span class="caps"><span class="caps">SCRUM</span></span> no lo define, el formato que más se utiliza para la tarjeta de trabajo que compone una Pila de Producto es la <a href="http://www.genbetadev.com/metodologias-de-programacion/historias-de-usuario-una-forma-natural-de-analisis-funcional">Historia de Usuario</a>. Sin que haya mayores problemas en utilizar Casos de Uso, o una lista de tareas.</p>

	<p>Lo importante es que el propio esfuerzo de realizar la división en tareas <strong>implica una organización del trabajo y una primera visión del alcance</strong> del proyecto. Es decir, qué es lo que se quiere obtener después de semanas o meses de trabajo.</p>

	<p><!--more--></p>

	<p><h2>Construcción</h2><br />

La Pila de Producto, según Scrum, es propiedad del Dueño del Producto. Es decir el cliente final o su representante. Esto suena un tanto utópico ya que <strong>es muy difícil encontrar a un cliente que le pueda o quiera dedicar el tiempo y dedicación</strong> que requiere una gestión Agile de un proyecto, pero para esto tenemos la figura del Proxy.</p>

	<p>Persona que <strong>se empapa del dominio y de lo que quiere el cliente final</strong>, para ejercer las labores de Dueño del Producto, y por ello quien, asesorado por el Scrum Master, define las historias de usuario que componen el Product Backlog.</p>

	<p>Teniendo en cuenta <strong>que es un artefacto vivo y que va a sufrir modificaciones tanto de prioridad como de alcance</strong> durante todo el proyecto, se construye una primera Pila de Producto que comprenda la descripción de las funcionalidades esperadas a alto nivel.</p>

	<p>En este momento el Product Backlog empieza a mostrar sus ventajas. Es un punto inicial para gerencia, si hubiese que presentar una oferta al cliente, en <strong>la estimación en tiempo y dinero</strong> del coste del proyecto. Ya que la definición del alcance la genera el propio cliente, o las personas que más saben sobre lo que quieren que realice la futura aplicación.</p>

	<p>Por otra parte, <strong>el equipo adquiere la primera visión del proyecto</strong>. Cual es el objetivo y la motivación que ha llevado al cliente a pensar en que un desarrollo de software puede ser una ventaja o una solución a sus necesidades. En definitiva, porque es una mejora.</p>

	<p>Y el cliente puede observar de forma visual y cómoda <strong>todo el trabajo que representa el construir su proyecto</strong>, decidir las funciones que más valor le aportan y detectar que cosas puede dejar en duda, por si no fuera necesario o interesante de construir.</p>

	<p>Otra gran ventaja de utilizar Pilas de Producto es que <strong>permite encapsular una metodología Agile, como Scrum, dentro de un proceso formal de gestión de proyectos</strong>. Es decir, puedo cumplir con los artefactos clásicos de Toma de requisitos, Análisis funcional, Análisis Técnico, etc. Y, simultáneamente construir el Product Backlog (<em>aunque con más esfuerzo</em>) para empezar a desarrollar y ha obtener software que funcione de forma iterativa.</p>

	<p>Hasta que dirección se dé cuenta que <strong>el esfuerzo dedicado a la documentación exhaustiva es dinero tirado a la basura</strong> en la mayoría de los casos.</p>

	<p><h2>Gestión y mantenimiento</h2><br />

<img alt="Burn Down" src="http://img.genbetadev.com/2012/03/dd347827_fig09_L(en-us).jpg" class="centro" /></p>

	<p>El seguimiento de la Pila de Producto es una gestión relativamente sencilla pero que <strong>genera decisiones importantes</strong> y fundamentales en el proyecto.</p>

	<p>En cada iteración, se realiza una revisión de las tareas del Product Backlog que han sido completadas y el Dueño del Producto tiene la potestad de repriorizar las tareas que quedan por realizar. O, como casi en todos los casos, <strong>hay que añadir nuevas tareas</strong> que no fueron detectadas en la construcción inicial de la Pila de Producto o que han surgido durante el proyecto.</p>

	<p>Y aquí emerge otra ventaja de este artefacto. Ya que tenemos las historias de usuario estimadas y, como veremos más adelante, una media de velocidad del equipo, podemos darnos cuenta de forma temprana que el alcance no se va a poder completar en los plazos iniciales, por lo cual <strong>el cliente debe decidir qué cosas no se realizaran</strong> para poder añadir las tareas nuevas.</p>

	<p>En una alegoría, un desarrollo Agile es como un cántaro. Lo puedes llenar de agua hasta el borde. Pero <strong>por cada gota que añadas de más, debes ser consciente que saldrá otra del recipiente</strong>. Ya que este no se puede estirar, al igual que pasa con el tiempo. <em>Aún no se han inventado los días de 25 horas</em>.</p>

	<p><h2>BurnDown y velocidad</h2><br />

La <strong>herramienta visual que nos facilita el conocimiento del estado actual</strong> del proyecto, basado en la Pila de Producto, es el BurnDown Chart.</p>

	<p>Es <strong>un eje de ordenadas simple</strong> en donde en la horizontal tenemos una medida temporal. Ya sean fechas, o iteraciones. Mientras en el vertical tenemos una medida de cantidad de trabajo ha realizar. Ya sea por estimaciones en trabajo (horas o puntos de esfuerzo), número de tareas, etc.</p>

	<p>Con ello, según va pasando el tiempo, obtenemos una línea descendente (o ascendente, según la orientación de la gráfica) en donde se visualiza de forma sencilla el estado del proyecto. Que cosas se han realizado, cuanto queda por realizar, <strong>si se ha variado el número de tareas</strong> o si se está dentro del alcance del proyecto.</p>

	<p>Otra métrica que se puede obtener a partir del BurnDown es la velocidad del equipo. Por ejemplo, si veo en la gráfica que cada sprint de dos semanas el equipo, de media, es capaz de completar 230 puntos de esfuerzo, <strong>puedo afinar la estimación del número de tareas que me entran dentro del alcance</strong> del proyecto y tomar decisiones correctivas lo antes posible.</p>

	<p>Y si en un sprint se han completado 150 puntos de esfuerzo, <strong>está claro que tengo un impedimento</strong> que ha llevado al equipo a trabajar por debajo de su ritmo habitual y que debe ser localizado, señalado y corregido.</p>

	<p><h2>Conclusión</h2><br />

<img alt="LeanKitKanban" src="http://img.genbetadev.com/2012/03/LeanKitKanban.jpg" class="centro" /></p>

	<p>El Product Backlog, o Pila de Producto, es un &#8220;<em>must have</em>&#8220;. Es decir, algo que todo equipo que considere <strong>la implantación de la filosofía Agile y sus metodologías asociadas</strong>, debe estar dispuesto a construir, mantener y utilizar.</p>

	<p>Es importante comprender que <strong>el objetivo no es reportar a dirección o al cliente del trabajo realizado</strong>, aunque se pueda utilizar de esa forma. Si no que el equipo y el cliente sean conscientes del estado actual del proyecto y poder mantener una previsión del alcance de los desarrollos a futuros.</p>

	<p>Es un mecanismo que provee de la visión del proyecto, que ayuda a que los errores salgan pronto y de forma llamativa para corregirlos lo antes posible; que permite ajustar el alcance de acuerdo a las necesidades reales y cambiantes de los clientes; y todo esto de una forma poco costosa para el proyecto y, a diferencia que en metodologías clásicas, no bloqueante. Es decir, <strong>mientras lo construyo o lo modifico el equipo no para de construir ni se queda detenido</strong> a la espera del documento funcional de turno.</p>

	<p>En GenbetaDev | <a href="http://www.genbetadev.com/metodologias-de-programacion/historias-de-usuario-una-forma-natural-de-analisis-funcional">Historias de usuario, una forma natural de análisis funcional</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Equipos dispersos: teletrabajo en un entorno ágil]]></title>
      <link>http://www.genbetadev.com/trabajar-como-desarrollador/equipos-dispersos-teletrabajo-en-un-entorno-agil</link>
      <guid>http://www.genbetadev.com/trabajar-como-desarrollador/equipos-dispersos-teletrabajo-en-un-entorno-agil</guid>
      <pubDate>Thu, 01 Mar 2012 09:15:00 +0000</pubDate>

      <author>Dani Jimenez</author>
      <description><![CDATA[
      <p><img alt="Teletrabajo, equipos dispersos" src="http://img.genbetadev.com/2012/03/650_1000_91.jpg" class="centro" /></p>

	<p>El <strong>teletrabajo</strong>, deseado por unos, necesario para otros y del que huyen los que dicen que se aburrirían si trabajasen en casa.  Pero, <strong>¿Se puede trabajar en equipo desde casa?</strong> ¿Se puede utilizar <strong>metodologías ágiles</strong> desde casa? ¿Puedes trabajar en casa y sentirte arropado por tu equipo? ¿Puedes ser igual o más productivo desde casa? Pues bien, sí, sí, sí y sí.</p>

	<p>Quiero empezar explicando, para evitar confusiones, la diferencia entre <strong>equipos dispersos</strong> y equipos distribuidos. La diferencia es simple, los <strong>equipos distribuidos</strong> son distintos equipos que tienen que colaborar juntos y que están en ubicaciones distintas. Por su parte los equipos dispersos son integrantes de un mismo equipo que están separados geográficamente.</p>

	<p><!--more--></p>

<h2>Difícil elección</h2>

	<p>Quien diga que es fácil trabajar desde casa, miente vilmente, sobre todo si es en equipo. Necesitas un &#8220;entrenamiento&#8221; previo, <strong>disciplina y un compromiso por encima del resto del equipo</strong> para que vaya todo rodado. Te vas a enfrentar a innumerables peligros: soledad, escasez de comunicación, incomprensión&#8230;</p>

	<p>Partimos de que idealmente no debería haber más de siete integrantes por equipo y de que sería una locura pensar que podría funcionar un equipo si todos sus miembros trabajasen separados. Si es sólo una persona la que trabaja desde casa, se puede conseguir que el equipo funcione casi como si estuvieran juntos. Con dos personas, la cosa se complica, pero con un poco de esfuerzo se puede conseguir. A partir de dos personas la situación se vuelve inmanejable, coordinarse con más de tres personas en remoto puede ser tan complejo que puede minar la moral del equipo.</p>

<h2>Si no confías en nadie, nadie va a confiar en ti</h2>

	<p>La premisa más importante para que un equipo disperso sea un equipo competitivo, en el que todos reman al unísono para conseguir los objetivos, es la confianza. En un equipo convencional, en el que todos trabajan juntos, la confianza entre unos y otros debería ser palpable.</p>

	<p>Sin embargo, <strong>alguien que entra nuevo a un equipo no debería irse a trabajar a casa</strong> desde el minuto 1, el equipo no confiaría en él, tendrían dudas de su forma de trabajar, de si realmente hace todo lo que dice o de si se moja igual que el resto. Por su parte, la persona desde casa pensaría parecido del resto, se sentiría incomprendido y aislado.</p>

	<p>Por eso es necesario que, antes de dar el paso, trabaje un tiempo codo con codo con sus compañeros, hacer piña, para que no sólo haya confianza, si no también compañerismo. La persona desde casa tiene que conocer al dedillo la forma de trabajar de cada uno de sus compañeros y viceversa. Y no sólo eso, también tiene que conocer la dinámica del equipo, como es el daily scrum, las retrospectivas, las planificaciones, las demos&#8230;</p>

	<p>Una vez que está en casa es importante que vuelva <strong>cada X tiempo a trabajar unos días a la oficina</strong> para darle continuidad a esa confianza, aprender como usar las nuevas herramientas que se hayan podido empezar a utilizar, trabajar junto a nuevos compañeros que se hayan incorporado y, como no, para tomar unas cervezas y hacer un poco de team building. Cuanto más lejos están, las visitas a la oficina suelen ser menos frecuentes y es precisamente por eso por lo que deben prolongarse durante más días.</p>

<h2>be agile my friend</h2>

	<p>Si has llegado hasta aquí, seguro que te habrás hecho muchas preguntas: ¿Y qué hay del <strong>daily scrum</strong>? ¿Y de las retros? ¿La <strong>planificación</strong>? ¿Quién tuvo la brillante idea de cambiar el nombre a los petit suisse por Danonino? En cuanto a las 3 primeras, tu aliado principal va a ser Skype, Gtalk o algún programa similar que te permita hacer videoconferencia. En cuanto a la cuarta, tu aliado principal va a ser un psicólogo.</p>

<h3>Daily scrum</h3>

	<p>La recomendación que se suele dar para el <strong>daily scrum</strong> en remoto es que <strong>no hagas videoconferencia</strong>, son 15 minutos y con problemas técnicos puede retrasar más que agilizar la reunión diaria, puede valer una simple llamada por teléfono con manos libres.</p>

	<p>Mi recomendación es justo la contraria, que utilices videoconferencia, siempre que dispongas de buena conexión, ya que ayuda a mantener el foco de la conversación (al equipo en general) y a que la persona en casa vea algún signo de vida humana</p>

	<p><strong>Consejos</strong>:<br />

<ul>
                <li>Hay que ser puntuales, no vale un llámame cuando puedas</li>
                <li>Si es posible, que la persona que habla en cada momento vaya girando el monitor para que la persona de casa le pueda ver</li>
                <li>Ponte en la piel del que está en casa y no cruces conversaciones. Prueba de empatía: La próxima vez que haga una visita a la oficina que otro integrante del equipo coja un portátil y se vaya a una sala emulando al de casa.</li>
                <li>Tarjeta roja: hay veces que la cosa se va de madre, ayuda que el que está en casa, ya que no puede dar una colleja, saque una tarjeta roja cuando empieza a perder el hilo</li><br />

</ul></p>

<h3>Retros y planificación</h3>

	<p>Si la visita a la oficina no se va a prolongar varios días es mejor <strong>evitar que coincida con la retro o la planificación</strong>, una videoconferencia con Skype debería ser suficiente. Seguro que es mucho más provechoso para todo el equipo que esa visita la dedique a trabajar con los compañeros, a poner puntos en común o a hacer tareas de análisis.</p>

	<p><strong>Consejos:<br />

</strong><br />

<ul>
                <li>Si la planificación la haces con <strong>planning poker</strong> cada uno debe tener su juego de cartas o puedes utilizar una herramienta online si así lo prefieres.</li>
                <li>Hay que hacer un esfuerzo por explicar bien las cosas, hay que evitar expresiones como &#8220;esto de aquí&#8221; ya que no todos están viendo lo que es eso de ahí.</li>
                <li>Si hay que mostrar detalles sobre algo prueba la videoconferencia desde el móvil y acerca a la persona de casa a esos detalles.</li>
                <li>Si crees que es imprescindible que todos estén en estas reuniones, la solución es simple, que estén :)</li><br />

</ul></p>

<h3>Pair programming</h3>

	<p>Es mucho más sencillo de lo que a priori parece, para que sea algo natural, habitual y rápido simplemente hay que saber elegir las herramientas adecuadas. Herramientas que permitan la comunicación entre ambos y que den la posibilidad de compartir el escritorio y de que pueda ser controlado en cualquier momento por las dos partes.</p>

	<p><strong>Consejos:</strong><br />

<ul>
                <li>No lo dudes, hazlo. El <strong>pair programming</strong> ayuda muchísimo al equipo y no tienes excusa para no hacerlo.</li>
                <li>Skype para compartir escritorio se queda bastante cortito, sin embargo <strong>Teamviewer</strong> va de lujo en este sentido.</li>
                <li>Para que os deis cuenta de hasta que punto funciona el pair programming en remoto, recomiendo que lo hagáis incluso entre los miembros del equipo que estén en la misma oficina: no se tiene que mover nadie de su sitio y si en un momento dado uno tiene que mirar documentación mientras el otro pica código puede hacerlo.</li><br />

</ul></p>

<h2>Disclaimer</h2>

	<p>Evidentemente no quiero sentar cátedra con todo esto, simplemente compartir experiencias personales y &#8220;trucos&#8221; que han surgido como <strong>ideas en las retrospectivas</strong>. Y, claro está, lo que en unos equipos funciona en otros puede convertirse en un impedimento. Espero por lo menos que ayude a aquellos que quieran dar el paso a trabajar en casa y a aquellos jefes que son reacios a &#8220;soltar la correa&#8221; a sus empleados.</p>

	<p>En Genbeta Dev | <a href="http://www.genbetadev.com/metodologias-de-programacion/test-de-metodologias-agiles-que-metodologia-es-mejor-scrum-kanban-o-scrumban">Test de metodologías ágiles, ¿Qué metodología es mejor: Scrum, Kanban o Scrumban?</a></p>

	<p>	<div class="nota"></p>

	<p>		<p><img alt="Avatar de Dani Jimenez" src="http://img.genbetadev.com/2011/09/02295ba58e858897d012c25d8b80b66c.jpeg" class="derecha"/><br />
</p>

	<p>Dani Jiménez es responsable del área de i+d/labs y desarrollo móvil en <a href="http://www.idealista.com">idealista.com</a>, dónde lleva trabajando 8 años, y cofundador y desarrollador de <a href="http://worldtaximeter.com/">worldtaximeter.com</a>, servicio creado en 2007. Lleva varios años inmerso en el desarrollo con metodologías ágiles, pasando por Scrum y Kanban. </p></p>

	<p>Fruto de las tareas de innovación tecnológica ha participado activamente en la arquitectura de <a href="http://idealista.com/">idealista.com</a>, así como en el desarrollo de aplicaciones con spring framework, aplicaciones para dispositivos móviles y diversos procesos escalables.</p>

	<p>	<p>	<p>	</p><p>Puedes seguirlo en Twitter: <a href="http://twitter.com/danibto">@danibto</a> <br />
</p>

	<p></div></p></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Pon un tablero Kanban en tus desarrollos]]></title>
      <link>http://www.genbetadev.com/metodologias-de-programacion/pon-un-tablero-kanban-en-tus-desarrollos</link>
      <guid>http://www.genbetadev.com/metodologias-de-programacion/pon-un-tablero-kanban-en-tus-desarrollos</guid>
      <pubDate>Tue, 27 Dec 2011 18:17:31 +0000</pubDate>

      <author>Juan Quijano</author>
      <description><![CDATA[
      <p><img id="image78341" src="http://img.genbetadev.com/2011/12/leankitkanban.jpg" class="centro" alt="LeanKitKanban portada" /></p>

	<p>Uno de los mayores males que azota la productividad de las empresas de desarrollo de software es la <b>metodología de desarrollo ASM: A Salto de Mata.</b> Es decir &#8220;<em>Aquí lo pillo y aquí lo mato</em>&#8220; o dicho de otra forma, la inexistencia de un método de producción ordenado. </p>

	<p>Además, la nula visibilidad del flujo de trabajo<strong> produce efectos muy perniciosos</strong> como son la simultaneidad de los proyectos por encima de la capacidad de los desarrolladores o la existencia de la figura del &#8220;Hero&#8221; en contrapunto al equipo y el conocimiento compartido. </p>

	<p>El Kanban (del japonés: kanban, donde <strong>kan </strong>significa &#8220;<em>visual</em>,&#8221; y <strong>ban </strong>significa &#8220;<em>tarjeta</em>&#8220; o &#8220;<em>tablero</em>&#8220;) es, en la versión nacida y evolucionada en Toyota, una completa y compleja metodología de señalización. Pero en este artículo me refiero a la simple <strong>herramienta visual compuesta por el tablero y las tarjetas que soporta</strong>. </p>

	<p>Es el primer paso que deben completar los desarrolladores para <strong>iniciar el camino de convertirse en un equipo Agile </strong>de desarrollo. </p>

	<p><!--more--></p>

	<p><h2>Descripción general del tablero</h2><br />
El concepto de<strong> Kanban es tan sencillo como poderoso</strong>. En un tablero dibujaremos tantas columnas como pasos por los que deba de pasar una tarea en nuestro flujo de trabajo. Por ejemplo, en desarrollo las columnas más comunes son ToDo, que son las tareas pendientes de ser iniciadas; Doing, que son aquellas que se están realizando; Testing, como indica su nombre son las tares que están en proceso de QA; y finalmente la columna de Done, aquellas que están acabadas (el difícil concepto de Done Agile). </p>

	<p>Las tareas, plasmadas en postit, se van moviendo de derecha a izquierda completando cada una de las etapas. Se pasan hacia adelante o hacia atrás, aunque esto último siempre ha de ser considerado como un fallo. Pero esto no sería realmente de gran utilidad si no fuera por <strong>el concepto de <span class="caps">WIP</span> (Work In Progress)</strong>. Este número que se coloca en el encabezado de la columna es el que indica cuantas tareas máximas (o mínimas) puede haber de forma simultanea en una etapa.  </p>

	<p><h2>Flujo de trabajo</h2><br />
Con este simple mecanismo convertimos nuestro tablero en un indicador visual de los problemas de nuestro flujo de trabajo. Si hemos llegado al límite <span class="caps">WIP</span> de una columna,<strong> no podemos añadir más tareas</strong>. Siendo obligatoria acabar con una de las que están en esta etapa para mandarla a la siguiente, o asumir el fracaso de una de las tareas y reiniciarla mandándola a la columna de la izquierda. Esta claro que aquí tenemos un cuello de botella y que es necesario que el equipo encuentre el impedimento que lo produce. </p>

	<p>También puede ocurrir al contrario, que una columna esté continuadamente vacia o con muy pocas tareas en relación a su <span class="caps">WIP</span> máximo. Lo cual puede indicar que <strong>hay un cuello de botella en alguna etapa anterior o que la carga de trabajo es muy baja</strong>.  </p>

	<p>Sea cual sea la incidencia en el flujo de trabajo, con un tablero Kanban obtenemos de un vistazo el estado del trabajo en todo momento y, en mucho casos, algo más importante como es <strong>que las personas que deciden sean consciente de una forma muy sencilla de la realidad de los proyectos</strong>.</p>

	<p>Además cumplimos dos conceptos Agiles: los errores y <strong>los impedimentos son muy visibles y se ven muy pronto</strong>, y la comunicación que produce es la de cara a cara, que es la preferente a cualquier otra. </p>

	<p><h2>Prioridades y Filas</h2> <br />
Otra ventaja de utilizar un Kanban es la prioridad de las tareas. Partiendo de la base que <strong>quien más sabe de desarrollar es el equipo de desarrollo</strong>, y quien más sabe de la importancia de las tareas es el dueño del producto (o el cliente), una de las trampas en las que más caemos los programadores es en priorizar nosotros la importancia de las tareas del proyecto y después que nos digan eso de &#8220;<em>es obvio que esto es más importante</em>&#8220;. </p>

	<p>Así que en un Kanban las tareas han de ser priorizadas para evitar este tipo de confusión que tantas horas extras y frustración produce. <strong>Las tareas técnicas obviamente las prioriza el equipo</strong>, que es el que sabe desarrollar; y yo prefiero empezar por las más difíciles y dejar las más sencillas para el final. </p>

	<p>Otra práctica que nos permite el tablero es el pintar filas o carriles. Es una forma de dividir un tablero en diferentes proyectos que comparten las mismas etapas. O se pueden dividir en tres filas que implican la criticidad de las tareas: 
	<ul>
		<li><strong>ASAP</strong>. Aquí se sitúan las tareas que algún día se harán. No están priorizadas ni se sabe cuando van a realizarse. Está pensado para aquellas que se dejan para los tiempos muertos y que, al no tener prioridad, cualquier tarea es más prioritaria que ella. </li>
		<li><strong>Priority</strong>. Tareas que han sido priorizadas y que están en el flujo de trabajo normal. </li>
	</ul>
	<ul>
		<li><strong>Fire</strong>. Tarea que provoca que todo el equipo, a veces toda la empresa, deje lo que esté haciendo y se centre al completo a resolver esta tarea hasta que llegue a Done. Se puede reforzar señalando de forma inequívoca que personas están involucradas en la tarea y que no deben ser interrumpidas en ningún caso. Por ejemplo con chalecos reflectantes.</li>
	</ul></p>

	<p>Más información | <a href="http://www.presionblogosferica.com/2010/01/28/kanban-vs-scrum-en-castellano/">Kanban vs Scrum en Presión Blogosférica</a>, <a href="http://www.scrummanager.net/">Scrummanager</a>, <a href="http://www.leankitkanban.com/">LeanKitKanban</a><br />
En GenbetaDev | <a href="http://www.genbetadev.com/metodologias-de-programacion/test-de-metodologias-agiles-que-metodologia-es-mejor-scrum-kanban-o-scrumban">Test de metodologías ágiles, ¿Qué metodología es mejor: Scrum, Kanban o Scrumban?</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Test de metodologías ágiles, ¿Qué metodología es mejor: Scrum, Kanban o Scrumban?]]></title>
      <link>http://www.genbetadev.com/metodologias-de-programacion/test-de-metodologias-agiles-que-metodologia-es-mejor-scrum-kanban-o-scrumban</link>
      <guid>http://www.genbetadev.com/metodologias-de-programacion/test-de-metodologias-agiles-que-metodologia-es-mejor-scrum-kanban-o-scrumban</guid>
      <pubDate>Thu, 29 Sep 2011 07:55:48 +0000</pubDate>

      <author>Dani Jimenez</author>
      <description><![CDATA[
      <p><img id="image77704" src="http://img.genbetadev.com/2011/09/super-abuela-3.jpg" class="centro" alt="test de metodologías" /></p>

	<p>Hay quien se empeña en crear una guerra de metodologías ágiles, que si mejor Scrum, que no que mejor Kanban&#8230; Mi opinión es que hay que saber elegir la metodología adecuada  según tu modelo de desarrollo y las necesidades que este tenga, no hay una mejor que otra, simplemente hay una más apropiada que otra.</p>

	<p>Como ayuda a la hora de tomar esta decisión, propongo un pequeño <strong>test  para poder escoger la metodología ágil  más adecuada </strong> (10 sencillas preguntas al más puro estilo revista adolescente), ya sea porque tienes la intención de &#8220;volverte ágil&#8221; o bien porque ya estás utilizando alguna pero hay algo que chirría:</p>

 <!--more-->

<h3>1. ¿Te enfrentas únicamente a proyectos grandes?</h3>

	<p>Ten en cuenta que si te decantas por Scrum, lo normal es que hagas sprints de entre dos y cuatro semanas (puedes hacerlo de más o de menos, aunque no es recomendable) por lo que si los proyectos son grandes cobra mucho sentido que vayas haciendo entregas graduales al cliente. Si por el contrario son proyectos muy pequeños, o algunos de ellos lo son, conviene que te plantees la siguiente pregunta.</p>

 
<h3>2. ¿Tiene sentido que todas o casi todas las funcionalidades que desarrollas esperen un mínimo de 2 semanas para estar en producción? </h3>

	<p>En Kanban cuando finalizas un work item este acaba en producción. En equipos acostumbrados a resolver incidencias o en equipos de investigación parece difícil justificar ante el cliente que lo que ya tienes solucionado o desarrollado tiene que esperar 2 semanas para tenerlo disponible.</p>

 
<h3>3. ¿En tu empresa hay Legacy Code y requiere bastante mantenimiento? </h3>

	<p>En el mundo ideal de muchos agilistas tenemos una cobertura del 100% , un código limpio, claro y libre de bugs. En el mundo real de la mayoría de los mortales, cada vez lo  hacemos mejor, vamos mejorando nuestra cobertura y cada vez nos salen menos bugs, pero &#8220;haberlos haylos&#8221;. Además, no siempre hemos sido &#8220;tan buenos&#8221; y siempre hay legacy code que hace aguas por algún sitio.</p>

 
<h3>4. ¿Tienes que entregar un release plan? </h3>

	<p>Esto sucede en la mayoría de los equipos de desarrollo, no obstante la respuesta afirmativa a esta respuesta está altamente ligada a la primera pregunta que planteo, cuando el proyecto es grande hay que proporcionar al cliente un calendario de entregas de funcionalidades de su producto. Cuándo previenes que a lo largo de tu proyecto van a surgir numerosas tareas inesperadas es complicado proporcionar un release plan.</p>

 
<h3>5. ¿A menudo te encuentras con numerosas tareas &#8220;no esperadas&#8221; con prioridad alta?</h3>

	<p>Las dichosas tareas no esperadas son unas rompe-sprints, son al tablón lo que Belén Esteban a Tele5, sea el momento que sea siempre aparecen por algún lado. ¿De verdad quieres que sigan apareciendo? ¿No es mejor tenerlas controladas? Si tienes sprints y siempre te acaban colando este tipo de tareas, quizá Kanban o Scrumban se adapten mejor a tu equipo.</p>

 
<h3>6. ¿En tu equipo hay gente especializada en, por ejemplo, QA o despliegue en producción? </h3>

	<p>Esta pregunta es muy importante, los equipos que siguen Scrum por definición han de ser multidisciplinares, si tenemos alguién especializado en algo, ¿No nos sirve? ¿Ponemos a alguien con años de experiencia a dedicarse a otras áreas de trabajo?</p>

 
<h3>7. Ante varios productos, ¿puedes alternar la prioridad de un producto sobre otro? </h3>

	<p>Si tienes dos productos de una dimensión importante tienes que ir dando más prioridad a uno frente al otro en cada sprint, para que al menos un cliente encuentre jugoso el  fín del sprint, a no ser que a ambos clientes les puedas ofrecer un flujo constante y regular de entregas.</p>

 
<h3>8. ¿Pueden añadirte tareas más prioritarias sin previo aviso? </h3>

	<p>Tienes que pensar muy detenidamente cómo vas a poder afrontar o reaccionar ante una tarea que de repente cobra una prioridad máxima, ya sea una que ya estaba en el backlog y que ha cambiado su prioridad, como una no esperada.</p>

 
<h3>9. ¿Toda tu pila de producto está priorizada? </h3>

	<p>Idealmente tu backlog está perfectamente priorizado, pero a menudo nos encontramos con backlogs parcialmente priorizados o de user stories idempotentes, en este caso si tienes limitado el <span class="caps">WIP</span> (work in progress) tu capacidad de reacción ante nuevas tareas o tareas más prioritarias es mucho mayor que si te mueves entre sprints</p>

 
<h3>10. ¿Tienes que proporcionar soporte a tus clientes? </h3>

	<p>Obviamente, si tienes que proporcionar soporte a tus clientes, nunca sabes cuándo te van a llamar y por tanto vas a tener, sí o sí, tareas inesperadas. Como he mencionado anteriormente, haz que esas tareas estén perfectamente definidas y controladas, tienen que tener hueco en tu tablón.</p>

 
<h3>Conclusiones </h3>

	<p>Si hay mayoría de respuestas afirmativas en  1, 2, 4, 7 y 9, entonces  la balanza se inclina hacia <strong>SCRUM</strong>. Todo tiene sentido: pila de producto priorizada, sprints, proyectos grandes con entregas incrementales, equipo multidisciplinar&#8230;</p>

	<p>Si has contestado afirmativamente en  la mayoría de estas: 3, 5, 6, 8 y 10, estás muy cerquita de <strong><span class="caps">KANBAN</span> </strong>con tareas no esperadas, flujo constante de trabajo, bien con equipos especializados o multidisciplinares&#8230;</p>

	<p>Un momento, ¿Y si hay un empate técnico o no está muy decidido el resultado? Ok, ¿entonces por qué no consideras <a href="http://leansoftwareengineering.com/ksse/scrum-ban/">SCRUMBAN</a>? Tienes toda la potencia de ambas metodologías: iteraciones bien definidas para tus productos y capacidad de reacción para aquellas tareas que &#8220;surgen de la nada&#8221;, siempre controlando las velocidades por sprint y las velocidades positivas y negativas de Kanban.</p>

	<p>Más información | <a href="http://leansoftwareengineering.com/ksse/scrum-ban/">Scrumban</a><br />
En Genbeta Dev | <a href="http://www.genbetadev.com/metodologias-de-programacion/ser-agil-es-algo-mas-que-iterar">Ser ágil es algo más que iterar</a></p>

	<p><div class="nota"></p>

	<p>	<p><img alt="Avatar de Dani Jimenez" src="http://img.genbetadev.com/2011/09/02295ba58e858897d012c25d8b80b66c.jpeg" class="derecha"/><br />
Dani Jiménez es responsable del área de i+d/labs y desarrollo móvil en <a href="http://www.idealista.com">idealista.com</a>, dónde lleva trabajando 8 años, y cofundador y desarrollador de <a href="http://worldtaximeter.com/">worldtaximeter.com</a>, servicio creado en 2007. Lleva varios años inmerso en el desarrollo con metodologías ágiles, pasando por Scrum y Kanban. </p>

	<p>Fruto de las tareas de innovación tecnológica ha participado activamente en la arquitectura de <a href="http://idealista.com/">idealista.com</a>, así como en el desarrollo de aplicaciones con spring framework, aplicaciones para dispositivos móviles y diversos procesos escalables.</p>

	<p>	</p><p>Puedes seguirlo en Twitter: <a href="http://twitter.com/danibto">@danibto</a> <br />
</p>

	<p></p></div></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[La necesidad de las pruebas en las metodologías ágiles]]></title>
      <link>http://www.genbetadev.com/metodologias-de-programacion/la-necesidad-de-las-pruebas-en-las-metodologias-agiles</link>
      <guid>http://www.genbetadev.com/metodologias-de-programacion/la-necesidad-de-las-pruebas-en-las-metodologias-agiles</guid>
      <pubDate>Tue, 26 Jul 2011 10:00:00 +0000</pubDate>

      <author>Luis Fraile</author>
      <description><![CDATA[
      <p><img id="image77196" src="http://img.genbetadev.com/2011/07/pong_650.jpg" class="centro" alt="Pong" /></p>

	<p>En el anterior artículo hablábamos del <a href="http://www.genbetadev.com/metodologias-de-programacion/ser-agil-es-algo-mas-que-iterar">sentido de las iteraciones/sprints en las metodologías ágiles</a>, y una de las cosas que resaltaba era la necesidad de la entrega de valor continúa.</p>

	<p>Para esto hay una cosa fundamental que no debemos olvidar: que <strong>la calidad, en el sentido más amplio de la palabra, no es opcional</strong>. No me refiero sólo al típico “que no falle”, sino a ¿entrega el valor esperado?  ¿Resuelve los problemas que debería? ¿Cómo se comporta esto ante condiciones anormales de negocio (p.ej.: 1000 usuarios)?</p>

	<p>Ante esto, cuando estamos trabajando con esta mentalidad, debemos de poner la calidad como foco desde el principio. Se acabó esa forma de pensar en la que los testers son un equipo, normalmente el enemigo, de los desarrolladores. Ese típico ir y venir de descripciones de fallos (seguro que todos recordáis el mítico Pong).</p>

	<p><!--more--></p>

	<p>Recordemos, <strong>en las metodologías ágiles siempre hablamos de equipo</strong>. Esto no quiere decir que dentro del mismo no haya gente que sepa más acerca de un tema que de otro, eso es lógico, pero todos forman parte del mismo barco. Si este se hunde, todos al agua.  Y en este caso es lo mismo, <strong>la gente que define y ejecuta las pruebas de la aplicación son parte del equipo</strong>, y por tanto debemos incluirlas y colaborar con ellas. No son un equipo a parte que vive de la sangre de los desarrolladores … bueno vale aquí me he pasado …</p>

	<p>Y como parte del equipo, ¿cuándo intervienen?. <strong>Tradicionalmente la ejecución (y a veces hasta la definición) de las pruebas se ha dejado para el final</strong>, esto siempre me ha recordado mi época de estudiante, ese dejar el estudiar para el día antes del examen. Y, como ya sabréis muchos, ese momento suele ser <strong>demasiado tarde</strong>. </p>

	<p>Con las pruebas es igual, si las dejamos para el final, para esa famosa fase de corrección de errores o estabilización, lo que suele ocurrir es que el tiempo se acaba o que finalmente no disponemos del tiempo suficiente para probar las cosas. </p>

	<p><strong>La definición,  preparación y hasta ejecución de pruebas tiene que ser algo que venga desde el principio</strong>, más allá de prácticas recomendables (o necesarias) como pruebas unitarias o de integración durante el desarrollo. Estoy hablando de incorporar a la gente que va a definir las pruebas también en reuniones como el sprint planning. </p>

	<p>En estas reuniones iniciales, al igual que obtenemos todos <strong>los detalles de lo que necesitamos construir y hacer durante la iteración</strong>, también necesitamos saber bajo qué condiciones lo que vamos a crear va a ser aceptado. Esto, por supuesto, debería pertenecer a nuestra Definition of Done, de modo que cualquier historia de usuario o requerimiento, que no pase sus pruebas de aceptación no debería de ser dado por válido. </p>

	<p>Ahora bien, <strong>¿qué podemos hacer para asegurar el valor en cada sprint?</strong>. Lo más claro es, probar, probar y volver a probar.</p>

	<p>Empezaremos con nuestros requerimientos. Todo requerimiento debe de llevar, al menos, <strong>un conjunto de pruebas de aceptación definidas al principio</strong>. Esto, por supuesto, será algo vivo. A medida que avancemos las completaremos, mejoraremos, crearemos nuevas, al igual que se hace en Scrum con el Sprint Backlog a nivel de desarrollo.</p>

	<p>También, desde el inicio podemos empezar con pruebas de exploración, ya sea con las primeras funcionalidades que se vayan completando a nivel de desarrollo, como sobre prototipos, que son una herramienta muy útil para asegurar el feedback temprano del cliente o los usuarios.</p>

	<p>Otro método aprendido en el libro <em>Agile Testing de Lisa Crispin</em>, es el <strong>uso de ejemplos</strong>. Esto consiste en, para cada funcionalidad, describir un ejemplo de uso al menos. De modo que sepamos cual es el procedimiento que realizarán los usuarios. Estos pueden ser ejemplos básicos, o ejemplos más completos estilo end to end.</p>

	<p>En definitiva y como conclusión, si queremos entregar valor sprint a sprint, debemos:<br />
<ul></p>

	<p>	<li><strong>Incorporar la calidad desde el principio</strong>, no esperando al final.</li></p>

	<p>	<li><strong>Incluir el equipo de pruebas como parte integral del equipo</strong>. No es un grupo de personas que viene a posteriori a validar lo que hemos hecho, pertenecen integralmente al equipo que va a construir el producto y desde el principio.<br />
</li><br />
</ul></p>

	<p>Por supuesto, y como en todas las metodologías, cada situación es potencialmente distinta y siempre nos podemos encontrar con entornos en los que tengamos que hacer, por ejemplo, iteraciones de estabilización o iteraciones en paralelo para pruebas.<br />
Incluso en ocasiones, podemos llegar a realizar iteraciones de release previas al despliegue. </p>

	<p>Pero ojo, esto no es una iteración en la que hemos dejado para luego la calidad. Todo resultado <br />
de iteración, aunque no despleguemos, debe ser potencialmente entregable. En estas iteraciones nos concentraremos en convertirlo en entregable. De todos modos este tipo de iteración, suele darse en proyectos muy grandes.</p>

	<p>Más información:<br />
<a href="http://www.exampler.com/old-blog/2003/08/21/">Agile Testing quadrants por Brian Marick</a><br />
<a href="http://lisacrispin.com/wordpress/about/ ">Agile Testing de Lisa Crispin y Janet Gregory</a></p>

	<p>En Genbeta Dev | <a href="http://www.genbetadev.com/metodologias-de-programacion/ser-agil-es-algo-mas-que-iterar">Ser ágil es algo más que iterar</a></p>

	<p>	<p></p><p><div class="nota"></p>

	<p><img alt="Avatar de Luis Fraile" src="http://img.genbetadev.com/2011/07/e314065ca20854cf35fd7db4f8811fda.png" class="derecha"/></p><p>Luis Fraile lleva trabajando en entornos Microsoft desde más de 10 años, empezando con Visual Basic 6, y posteriormente desde la primera versión del .<span class="caps">NET</span> Framework, habiendo participado en multitud de proyectos relacionados con estas tecnologías.</p><br />

<p>
 En los últimos años, a parte de desarrollar, también se ha dedicado a ayudar a equipos a la hora de abordar procesos de metodologías ágiles, especialmente en entornos Microsoft con tecnologías como Team Foundation Server. También es colaborador habitual de la revista Dotnetmania, así como ponente en eventos, a nivel nacional, relacionados con gestión de ciclo de vida y Team Foundation Server.
 </p>

	<p>	<p>Puedes seguirlo en Twitter: <a href="http://twitter.com/lfraile">@lfraile</a> <br />
</p>

	<p>	Sus blogs son: <a href="http://ifraile.net">lfraile.net</a> y  <a href="http://geeks.ms/blogs/lfraile">geeks.ms/blogs/lfraile</a></p> <br />
</p>

	<p></p><br />
</div></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Scrumrf, herramienta online para la gestión ágil de proyectos]]></title>
      <link>http://www.genbetadev.com/herramientas/scrumrf-herramienta-online-para-la-gestion-agil-de-proyectos</link>
      <guid>http://www.genbetadev.com/herramientas/scrumrf-herramienta-online-para-la-gestion-agil-de-proyectos</guid>
      <pubDate>Sat, 07 May 2011 15:03:21 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img id="image76462" src="http://img.genbetadev.com/2011/05/scrumrf_650.jpg" class="centro" alt="gestion online scrum" /></p>

	<p>Hemos hablado ya en varias ocasiones de <a href="http://www.genbetadev.com/productos/metodologias-agiles/scrum">Scrum</a> como una excelente metodología para el desarrollo ágil. Aunque para aplicarlo no sea necesario disponer de ninguna herramienta software, en ocasiones cuando se trabaja con equipos dispersos o incluso si lo aplicamos nosotros mismos está bien tener una <strong>herramienta online que nos ayude a llevar un control global del proyecto</strong>. <strong>Scrumrf </strong>cumple precisamente esa función, ya que nos <strong>permite gestionar proyectos de manera ágil</strong> con todas las funcionalidades esperadas como poder gestionar el backlog, crear proyectos, manejar sprint con sus tareas y estimaciones, ver una visión global en un calendario, además de las gráficas de burndown o burnup.</p>

	<p>Con <a href="http://www.scrumrf.com/">Scrumrf</a> podemos manejar toda la información relacionada al desarrollo de nuestra empresa. Disponemos de un panel de control para verificar las tareas que está llevando el equipo, las últimas tareas asignadas. <strong>Toda nuestra pila de sprint está contemplada dentro de la aplicación</strong>, así podemos decidir las historias de usuario que se quieren entregar controlando la velocidad del equipo. Podemos gestionar ese tipo de tareas desde una lista tradicional o con un muro de sprint, una forma  gráfica de ver el seguimiento del sprint, como ya comentamos con <a href="http://www.genbetadev.com/metodologias-de-programacion/scrumblr-tablon-scrum-para-equipos-de-desarrolladores-que-trabajan-a-distancia">Scrumblr</a>.</p>

	<p><!--more--></p>

	<p>Para comenzar basta con crearse una cuenta (de momento gratuita) y empezar a crear nuestros proyectos asignado nuestros participantes al equipo, tanto el Scrum Master como el resto de miembros. Se encuentra limitada a dos proyectos por cuenta y cinco personas en el equipo. Todavía no hay planes de precio para una posible versión premium.</p>

	<p>Scrumrf ha sido desarrollado por <a href="http://tonkalabs.com/">Tonkalabs</a>,  formado por dos programadores españoles que han decidido crear un producto en internet, relacionado con la programación y, además de momento de forma gratuita. Aun quedan cosas por pulir, pero esperan feedback de todo el que quiera participar sugiriendo propuestas de nuevas funcionalidades. Si os interesa, está desarrollo de la aplicación se ha hecho usando <span class="caps">PHP</span> con el <a href="http://www.yiiframework.com/">framework Yii</a>.</p>

	<p>Vía | <a href="http://brigomp.blogspot.com/2011/05/scrumrf-gestion-agil-la-espanola.html">Pensamientos Ágiles</a><br />
Sitio web | <a href="http://www.scrumrf.com/">Scrumrf</a><br />
Más información | <a href="http://tonkalabs.com/">TonkaLabs</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[¿Es un pájaro? ¿es un avión? ¡No! ¡Es Scrum!]]></title>
      <link>http://www.genbetadev.com/metodologias-de-programacion/es-un-pajaro-es-un-avion-no-es-scrum</link>
      <guid>http://www.genbetadev.com/metodologias-de-programacion/es-un-pajaro-es-un-avion-no-es-scrum</guid>
      <pubDate>Wed, 20 Apr 2011 13:53:07 +0000</pubDate>

      <author>Nacho Rodríguez</author>
      <description><![CDATA[
      <p><img id="image76312" src="http://img.genbetadev.com/2011/04/flying-post-its.jpg" class="centro_sinmarco" alt="Post-it voladores (tomado de http://www.martinalaimo.com/es/2009/05/post-its-voladores/)" /></p>

<p>En un principio se crearon los programadores y los proyectos, pero no había nada más que tinieblas y el espíritu del cliente cabreado planeaba por los departamentos.<br />

Así que un buen día, dos tipos llamados <em>Takeuchi</em> y <em>Nonaka</em> dijeron: <strong>¡Hágase el Scrum!</strong><br />

Y vieron los jefes de proyecto que era bueno, y volaron sombreros en algarabía.<br />

Casi sin saberlo, se había inventado lo que iba a ser una de las implementaciones <em>Agile</em> más populares del planeta.<br />

</p>

<p>¿Qué aportó Scrum que lo diferenció del resto de formas de gestionar proyectos? En mi opinión dos aspectos básicos: <strong>transparencia</strong> con los clientes y <strong>ciclos de release</strong> periódicos y definidos.<br />

En los otros sistemas de gestión que usé anteriormente (if any!) los proyectos se cargaban de una pesada losa de documentación que se llevaba casi la mitad de los costes disponibles y que el cliente debía firmar entre un mar inmenso de dudas (y de papeles). <br />

Esta es la semilla de las frustraciones y lo que ha marginado a los proyectos de software hacia una de las experiencias más insatisfactorias que pueda sufrir el ser humano, junto a la de participar en juegos de azar y ponerse a dieta.</p>

	<p><!--more--></p>

<h2>Tocar el producto desde el principio</h2>

<div class="caption-img">
<img id="image76316" src="http://img.genbetadev.com/2011/04/green-tomato-growing.jpg" class="centro" alt="Ver el producto mientras crece (Fuente: http://thegardenpalette.wordpress.com)" />
<span>Ver el producto mientras crece<br />

(Foto: http://thegardenpalette.wordpress.com)</span>
</div>

<p>Este aspecto es el más valorado por el cliente, quien es ni más ni menos que el que nos paga.<br />

La sensación de estar metido desde la &#8220;mórula&#8221;, la <strong>génesis de su proyecto</strong>, les hace ser más comprensivos con los posibles imprevistos que puedan ir surgiendo, amén de proporcionarles una infinita <strong>tranquilidad</strong> sobre su inversión.<br />

Yo lo comparo con comprar por internet: pagas por algo que no has tocado, ni olido ni visto. ¿Quién no mira el tracking code para ver dónde está el paquete? Puede que esté parado en Berlín y lleve tres días, pero sabes que está ahí.</p>

<p>Con Scrum el futuro propietario del producto, el padre adoptivo, también sabe dónde está, y además también sabe cómo se va construyendo. Esto que parece nimio es nuestra revolución. ¡Estamos iniciando a un muggle a los rudimentos de la magia! Esta persona aprenderá que <strong>los programas no son &#8220;dar un botón y listo&#8221;</strong>, que tienen tanto de artesano como ese Murillo que tanto admira y que sabe que es único.<br />

Será comprensivo (salvo Saurons) cuando le digamos que ese <em>BotónVerdeQueSaltaYVuela</em> que le prometimos es totalmente imposible, pero que intentaremos hacerlo de una manera parecida.</p>

<h2>Lo que hay que hacer bien clarito</h2>

<p>La gran herramienta de Scrum es el <strong>Product Backlog</strong>, que no es ni más ni menos que la lista de funcionalidades que debe realizar el software que vamos a empezar a hacer, perfectamente ordenada y documentada incluso a nivel de procesos.<br />

Es la Herramienta, así con mayúsculas, y todo el mundo podrá verla y tocarla desde el principio.<br />

Lo ideal es montarla como una <em>Wiki</em>, y que vaya evolucionando como el germen de la documentación del proyecto, ayudándolos de los resultados de los sprints y las actas de reunión.</p>

<h2>Mantener al equipo centrado</h2>

<p>Es común que haya interferencias externas (teléfono, propuestas de cambio, etc) que desconecten a los programadores de su tarea. Tarea dicho sea de paso que está mal reconocida y valorada. <strong>Programar es algo muy complejo y necesita una altísima carga de concentración y de eficiencia mental</strong>. Cualquier distracción hará que el desarrollador tenga que perder dicho estado de foco en la tarea y, después de 10 minutos al teléfono, tenga dificultades para saber qué estaba haciendo justo antes.</p>

<div class="caption-img">
<img id="image76315" src="http://img.genbetadev.com/2011/04/mstrbnr_06.jpg" class="centro" alt="Programadores concentrados en la tarea (Fuente: http://www.pce.uw.edu)" />
<span>Concentrarse en las tareas evita errores<br />

y facilita los objetivos (Foto: http://www.pce.uw.edu)</span>
</div>

<p>El <strong>Scrum Master</strong> es nuestro &#8220;papi&#8221;, que lo arregla todo todo, y que evita que tengamos que sufrir dichas distracciones y cuyo trabajo nunca es fácil, teniendo que manejar las situaciones con la maestría que les caracteriza.<br />

Este rol es fundamental y, bajo mi punto de vista, es el más importante de todos. Era un rol que hacíamos los programadores habitualmente cuando llamaba el cliente para quejarse por algo o para preguntar qué tal iba el módulo ChachiOptimizador que le estábamos haciendo.</p>

<h2>Objetivos cercanos y factibles</h2>

<p>Los <strong>Sprints</strong> son eso: objetivos a realizar en un corto periodo de tiempo que incrementarán la funcionalidad del software.<br />

Para los programadores este aspecto es magnífico porque nos permite saber qué tenemos que hacer (ojo a ese plural) para cumplir la planificación prevista.<br />

Las tareas son concretas, divisibles por módulos y asignables libremente (en principio), y usando un <a href="http://es.wikipedia.org/wiki/T%C3%A9cnica_Pomodoro">Pomodoro</a> todo parece más fácil, y lo mejor de todo es que ¡es trabajo en equipo!</p>

<div class="caption-img">
<img id="image76314" src="http://img.genbetadev.com/2011/04/2119855534_8838096087.jpg" class="centro" alt="Scrum Board, tomado de http://scrum4kids.blogspot.com/" />
<span>Scrum Board de tareas domésticas (Foto:http://scrum4kids.blogspot.com)</span>
</div>

<p>Cualquier cambio o nueva característica habrá de respetar el Sprint. Nada de imprevistos durante ese tiempo cerrado e intocable, ya se planificará en la siguiente iteración.<br />

Ah, y ojo con valorar dichas novedades en tiempo y dificultad sin contar con los que las tienen que hacer: en Scrum eso es ilegal.<br />

Y nada de sofisticados sistemas: una pizarra, papeles y un reloj de cocina es lo único que vamos a necesitar. Con esto no habrá proyecto que se nos resista.<br />

Esta es <strong>la revolución Scrum</strong>, y ha venido para quedarse, al menos en mi equipo.<br />

Ha llegado la cordura a la gestión de proyectos.</p>

	<p>Foto portada | <a href="http://www.martinalaimo.com/es/2009/05/post-its-voladores/">www.martinalaimo.com</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[El desarrollo incremental en el software: crecer en vez de construir]]></title>
      <link>http://www.genbetadev.com/metodologias-de-programacion/el-desarrollo-incremental-en-el-software-crecer-en-vez-de-construir</link>
      <guid>http://www.genbetadev.com/metodologias-de-programacion/el-desarrollo-incremental-en-el-software-crecer-en-vez-de-construir</guid>
      <pubDate>Sat, 02 Apr 2011 15:40:55 +0000</pubDate>

      <author>Jorge Rubira</author>
      <description><![CDATA[
      <p><img id="image76008" src="http://img.genbetadev.com/2011/03/incremental.jpg" class="centro_sinmarco" alt="Incremental" /></p>

	<p><strong>Craig Larman</strong>, especialista en procesos de desarrollo, autor de siete libros técnicos y con una larga experiencia de más de 30 años en el desarrollo de software, habla acerca del desarrollo incremental del software. El desarrollo incremental consiste en simplemente hacer crecer un software, no construirlo como se haría un edificio. Hoy en día los conceptos o entidades tratados en el software son complejos de especificarlos de antemano. Por ello, se debe enfocar el desarrollo de un modo diferente.</p>

	<p>Actualmente, el hombre vive inmerso en una naturaleza compleja, llena de técnicas y ciencias complejas y diversas. Todo ello se ha conseguido realizando pequeñas mejoras sobre el estado anterior sin haber planificado de antemano donde vamos a llegar.</p>

	<p><!--more--></p>

	<p>Del mismo modo, nuestros sistemas de software deben desarrollarse de manera creciente basado en un desarrollo incremental que haga mejoras según nuestras prioridades o necesidades. <strong>Craig </strong>comenta que siempre ha trabajado con esa mentalidad y cuando a mediados de los 80 escuchó por primera vez la palabra &#8220;arquitecto del software&#8221;, le pareció disonante con su perspectiva.</p>

	<p><strong>Andrew Hunt y David Thomas</strong>, en su libro &#8220;<strong>The Pragmatic Programmer: From Journeyman to Master</strong>&#8220;, comentan que la ciencia del desarrollo de software &#8220;se parece más a la jardinería que a la arquitectura&#8221;. La palabra arquitectura no es solo una metáfora, es la influencia sobre la política y la gente. Cuando una tarea la asemejamos a la arquitectura, se da a entender que hay una &#8220;fase de arquitectura&#8221; donde trabajan los arquitectos calculando todo y una &#8220;fase de desarrollo&#8221; donde los obreros ejecutan la obra.</p>

	<p>Por lo general, en el desarrollo del software esto nunca ocurre así y cualquiera con experiencia en ese mundo lo conoce. Sin embargo, existe una influencia importante de las políticas y comportamientos en la formación. En ocasiones personas no expertas técnicamente pero con poder político escuchan la palabra arquitectura y en seguida sugieren políticas de impacto, procesos, planes, etc, semejante a la arquitectura del sector de la construcción.</p>

	<p>Por todo ello, lo más interesante es pensar en &#8220;jardinería&#8221; más que en arquitectura, en una cultura de diseño creciente para evitar tal asemejanza con la construcción de edificios. Se suele creer que una arquitectura ágil proviene de un comportamiento ágil. No es el uso de un patrón de diseño particular, si no por las acciones y la mentalidad.</p>

	<p>Fuente original | <a href="http://www.infoq.com/articles/large-scale-agile-design-and-architecture">InfoQ</a></p>      ]]></description>
      </item>
                    <item>
      <title><![CDATA[Scrumblr, tablón Scrum para equipos de desarrolladores que trabajan a distancia]]></title>
      <link>http://www.genbetadev.com/metodologias-de-programacion/scrumblr-tablon-scrum-para-equipos-de-desarrolladores-que-trabajan-a-distancia</link>
      <guid>http://www.genbetadev.com/metodologias-de-programacion/scrumblr-tablon-scrum-para-equipos-de-desarrolladores-que-trabajan-a-distancia</guid>
      <pubDate>Mon, 28 Mar 2011 19:56:53 +0000</pubDate>

      <author>Txema Rodríguez</author>
      <description><![CDATA[
      <p><img id="image75994" src="http://img.genbetadev.com/2011/03/scrumblr_650.png" class="centro" alt="Scrumblr" /></p>

	<p>Uno de los puntos claves de <strong>Scrum</strong> es que <strong>el equipo se reúna alrededor de un tablón</strong> en la reunión diaria para comentar que se ha hecho, lo que se va a hacer y los impedimentos que se tienen. Cuando los <strong>desarrolladores trabajan en un mismo proyecto a distancia</strong> es necesario manejar una serie de herramientas para mantenerse ágiles. Ya sea Dropbox, Skype, Evernote, wikis o cualquier aplicación colaborativa que ayude al equipo a organizarse , pero sigue faltando un elemento fundamental en el que todo el mundo pueda interactuar: el tablón físico con las historias y tareas propias del <a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">Scrum</a>.</p>

	<p><strong>Para solventar la carencia de un tablón</strong> en el que todos los desarrolladores puedan interactuar en tiempo real, sin importar la distancia, surge <strong>Scrumblr</strong>. Una herramienta muy simple, realizada por <a href="http://aliasaria.ca/blog/">Ali Asaria</a> que nos permite compartir la evolución de nuestro trabajo entre equipos distantes.</p>

	<p><!--more--></p>

	<p>Para probarlas podemos ir al sitio web de<a href="http://scrumblr.ca"> scrumblr.ca</a>, hacernos una cuenta donde tendremos un tablón scrum con url propia y ahí <strong>el equipo podrá interactuar a distancia colocando sus propios post-it</strong> sobre el tablón moviéndolos sin problema. También se puede montar en un servidor propio, ya que el código ha sido liberado y disponible en GitHub. Scrumblr está desarrollado con Node.js, socket.io, Jquery que aportan un fludez impresionante en tiempo real.</p>

	<p><iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/gAKxyOh1zPk" frameborder="0" allowfullscreen></iframe></p>

	<p>En definitiva, una <strong>herramienta esencial para la gestión ágil de proyectos</strong> que facilitará la vida a los equipos que trabajen a distancia y quieran mantener una filosofía ágil con un tablón Scrum lo más parecido al real.</p>

	<p>Vía | <a href="http://www.navegapolis.net/component/option,com_frontpage/Itemid,1/">Navegapolis</a><br />
Sitio web |  <a href="http://scrumblr.ca">Scrumblr.ca</a><br />
Más información | <a href="https://github.com/aliasaria/scrumblr">repositorio del código de Scrumblr (github)</a>, <a href="http://aliasaria.ca/blog/">blog Ali Asaria</a><br />
En Genbeta Dev | <a href="http://www.genbetadev.com/metodologias-de-programacion/mike-cohn-reflexiona-sobre-10-anos-del-manifiesto-agil-utilizando-scrum">Mike Cohn, reflexiona sobre 10 años del manifiesto ágil utilizando Scrum</a></p>      ]]></description>
      </item>
        	  <atom:link href="http://www.genbetadev.com/tag/metodologias-agiles/rss2.xml" rel="self" type="application/rss+xml" />
	</channel>

</rss>


