tag:blogger.com,1999:blog-77243917889392591902024-03-12T22:11:17.298-03:00Software ÁgilDesarrollando y probando software (y otras cosas) agilmente.Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.comBlogger161125tag:blogger.com,1999:blog-7724391788939259190.post-33502915997109314202020-02-26T13:11:00.000-03:002020-02-26T17:45:55.372-03:00Shisa kanko: hacer conscientemente<div style="text-align: center;">
<i>“Viajaba delante de todo mirando el camino, pero lo que de verdad capturó mi atención fue el conductor del tren. Hacia movimientos con sus brazos, señalando con su dedo índice las señales viales y una hoja de horarios. Mis ojos buscaron con quién estaba hablando y caí en la conclusión de que hablaba consigo mismo. Lo que más me llamó la atención fue la forma tan calculada de moverse -algo robotizada- lo que me motivó a grabar el video.” -- Damián Buonamico </i></div>
<div style="text-align: center;">
<i><br /></i></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/fZuw_Li6KTg/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/fZuw_Li6KTg?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
Lo que nos cuenta Damián, ¿es algo de la cultura japonesa?<br />
¿Para qué realizan esta práctica, que se ve tan extraña?<br />
<br />
<span style="font-size: large;"><i>Shisa kanko</i>, <i>Pointing and calling</i> o Apuntar y nombrar.</span><br />
Esta práctica consiste en realizar una serie de pasos indicando con el cuerpo y nombrando lo que se está realizando. Funciona como una forma de checklist y para mantener la mente en lo que estamos haciendo.<br />
Habitualmente ejecutamos las tareas cotidianas y repetitivas sin darnos cuenta, dejamos de prestar atención a lo que está pasando en ese momento y esto nos lleva donde podemos cometer errores.<br />
Ha tenido muy buenos resultados en mejorar la seguridad. Inició con los conductores de los trenes, pero ahora es utilizado por otros roles de sistema de trenes de Japón, y se extendió a otros lugares (China, subterráneos de NYC y Toyota).<br />
<br />
<span style="font-size: large;">Hacer conscientemente o <i>Take deliberate action</i></span><br />
En los libros “Turn the ship around!” y “Turn your ship around!”, L. David Marquet nos dá cuenta cómo implementar esta práctica, a la que él llama Take deliberate action.<br />
Está práctica está orientada a lograr excelencia operativa.<br />
Tomando del libro:<br />
<br />
<ul>
<li>Lo hacemos siempre, no importa si alguien nos ve, es para hacer mejor nuestro trabajo. No es para un observador ni un inspector. <br />Lograr que se entienda y cumpla esto es el mayor obstáculo en la implementación.</li>
<li>Antes de hacer la acción, vocalizamos y señalamos lo que intentamos hacer, realizamos las verificaciones, también vocalizando y señalando, y hacemos una pausa antes de hacer la acción.</li>
<li>En un <b>ámbito de equipo</b>, un beneficio adicional, al vocalizar, señalar y pausar, es que damos la oportunidad a otras personas del equipo de intervenir para corregir un error antes que se realice la acción.</li>
<li>Esta práctica tiene mucho valor cuando es difícil o imposible deshacer una acción, lo que ocurre cuando nuestra acción impacta en el mundo físico. En estos casos, aún en el contexto de emergencia, vale seguir esta práctica. Por ejemplo cuando estamos realizando RPC. Pero también puede ser útil en otros contextos.</li>
</ul>
<br />
<br />
<span style="font-size: large;">¿Dónde usarlo?</span><br />
Suelo trabajar en ambientes de IT. No estoy en situaciones en las que las acciones tengan impacto en vidas como es el caso de trenes o submarinos nucleares. ¿Podría ser útil esta práctica?<br />
Primero pensemos en situaciones que realizamos tareas repetitivas que se vuelven aburridas y en las que el costo de deshacer lo hecho es alto.<br />
Se me ocurren tres situaciones:<br />
<br />
<ul>
<li>Resolución de incidentes: Para buscar el problema en algunos casos de urgencias accedemos a ambientes de producción, usando usuarios con permisos más amplios. La posibilidad de “ups, borré todos los clientes” está mucho más cerca que lo habitual.</li>
<li><a href="http://www-personal.umich.edu/~mrother/The_TK_Starter_Kata.html" target="_blank">Starter Kata</a> (Toyota Kata): El aprendiz sigue los pasos junto con el coach, frente al tablero de aprendizaje, sería muy útil que utilice shisa kanko para reforzar el aprendizaje.</li>
<li>Daily Scrum meeting: Esta reunión es el momento de sincronización de un equipo. Las hacemos todos los días, puede volverse monótona ¿Cuáles son los riesgos si no nos sincronizamos correctamente? Alguien trabaja en un tema no prioritario, algún tema prioritario no lo trabaja nadie, dos personas trabajan en lo mismo sin saberlo, … En resumen, podemos perder la posibilidad de estar atentos a los que otros hacen y cómo nos influimos mutuamente.<br />Les cuento un caso que viví:<br /><i>Una retrospectiva con el equipo, inicialmente parecía que nada grave había sucedido en el sprint. Hasta que alguien comenta, “¿qué pasó que faltaban los datos para mostrar la funcionalidad F?, dimos una mala imagen”. Nos llevó varios minutos entender la secuencia. Una persona (A) tomó la tarea de preparar los datos ayer pensando en terminarla en el día. Tanto B como C tenían tiempo hoy para hacerla, pero como vieron la tarea ya tomada, se dedicaron a otras cosas de menor prioridad. Según lo acordado, cada uno probó su parte antes de la revisión, pero nadie revisó lo de A y A no podía venir hoy. Nos salteamos la daily porque “no tenemos tiempo y cada cual sabía qué hacer”. Explicitar en la daily nuestros supuestos sobre la prueba de cada funcionalidad nos habría ayudado a detectar el problema.</i></li>
</ul>
<br />
<br />
¿Pensás que puede aplicarse a estos u otros casos?<br />
¡Compartinos tus ejemplos!<br />
<br />
<br />
<span style="font-size: large;">Algunos link interesantes sobre el tema</span><br />
<a href="https://en.wikipedia.org/wiki/Pointing_and_calling">https://en.wikipedia.org/wiki/Pointing_and_calling</a><br />
<a href="https://www.youtube.com/watch?v=9LmdUz3rOQU" target="_blank">Pointing and Calling Japanese Safety Standard at Railway Companies & Toyota</a> (video)<br />
<a href="https://www.atlasobscura.com/articles/pointing-and-calling-japan-trains">https://www.atlasobscura.com/articles/pointing-and-calling-japan-trains</a><br />
<br />Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com1tag:blogger.com,1999:blog-7724391788939259190.post-21942251275219821712019-10-30T11:43:00.002-03:002019-11-04T18:49:12.837-03:00FIUBA desarrollando para ONGLos alumnos de Ingeniería en Informática y Licenciatura en Análisis de Sistemas de FIUBA desarrollan software como parte de su proceso de aprendizaje.<br />
<br />
En instancias avanzadas de la carrera, los desarrollos son aplicaciones completas, cada vez más desafiantes.<br />
<br />
Participo en estos procesos de aprendizajes desde dos lugares:<br />
<br />
<ul>
<li>Taller de Desarrollo de Proyectos III: una materia de último año de carrera.</li>
<li>Trabajo Profesional: el trabajo final de los alumnos para recibir su título de grado.</li>
</ul>
<div>
En ambos caso trabajamos junto con <a href="https://twitter.com/mstampella" target="_blank">Mariano Stampella</a> con los siguientes criterios:</div>
<div>
<ul>
<li><u>Clientes reales</u>: Contacto y colaboración con personas a las que podemos ayudar con un producto de software.</li>
<li><u>Productos reales</u>: Existen y deben ser evolucionados o son nuevos y alguien más los mantendrá.</li>
<li><u>Contexto real</u>: Podemos elegir tecnología algunas veces, ocupándonos que sea mantenible, en otros casos ya está definida. Podemos mejorar procesos de desarrollo, ocupándonos que se continuen luego del proyecto. Tenemos tiempo y dedicación acotada, negociamos alcance.</li>
<li>El trabajo vale: Cómo los alumnos no cobran, buscamos que sea una donación a ONG y/o código abierto.</li>
</ul>
<div>
<br /></div>
<div>
Dentro de estas características, nuestros alumnos han realizado o están trabajando:</div>
</div>
<div>
<ul>
<li>Nueva versión de Dale Vida, con Dale Vida</li>
<li>Nueva aplicación Mi primera Base de datos, con Wingu</li>
<li>Nueva aplicación Manejo del dinero, con el Proyecto Dane</li>
<li>Nueva aplicación Pequeños Aprendizajes: La Hora, con el Proyecto Dane</li>
<li>Nueva aplicación para compartir el uso de Desfibriladores automáticos, con Vittal</li>
<li>Nueva versión de Jugamos Todos, con el Proyecto Dane. </li>
</ul>
</div>
<div>
<br /></div>
<div>
¡Y queremos seguir haciéndolo!</div>
<div>
<br /></div>
<div>
Si sos estudiante de FIUBA, contactate con nosotros, te ayudamos con excepción de correlatividades en la materia (75.55) o con ideas para tu Trabajo Profesional (75.99).</div>
<div>
<br /></div>
<div>
Si sos una persona que diseña (gráfica o UX), y querés donar tu trabajo a ONG, sumate. Te aseguro que nos haces falta.</div>
<div>
<br /></div>
<div>
Si pertencés a una ONG a la que podemos ayudar, avisanos.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Mi contacto: jgabardini (TW y Gmail)</div>
<div>
<br /></div>
<div>
<br /></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com2tag:blogger.com,1999:blog-7724391788939259190.post-9885919064114059022019-09-15T19:30:00.000-03:002019-09-15T19:30:42.722-03:00Solución de problemas en Toyota Kata<div>
<br /></div>
<div>
En el proceso de mejora continua conocido como Toyota Kata, tenemos los siguientes pasos:<br />
<br />
<ol>
<li>Identificar el desafío.</li>
<li>Conocer la Situación actual.</li>
<li>Plantearnos la Siguiente situación objetivo.</li>
<li>Identificar los obstáculos que nos impiden actualmente llegar a la Siguiente situación objetivo y realizar un experimento (usando el ciclo PDCA) para remover el obstáculo. </li>
</ol>
<br />
En la práctica, la relación entre Conocer la Situación actual debe profundizarse cada vez que se identifica un obstáculo.<br />
<br />
Comentamos aquí los pasos pasos para la resolución de problemas.</div>
<ol>
<li>Detectar el problema: conciencia del problema.</li>
<ul>
<li>Identifique el problema prioritario.</li>
</ul>
<li>Comprender la situación (ir a ver).</li>
<ul>
<li>Aclarare el problema: ¿Qué debería estar ocurriendo? ¿Qué está ocurriendo en realidad? </li>
<li>Descomponga el problema en problemas individuales, si es necesario. </li>
<li>Si es necesario utilice medidas provisionales para frenar el suceso anormal hasta que pueda abordar la causa de fondo.</li>
<li>Localice el punto donde se encuentra la causa del problema. No investigue la causa hasta que encuentre dicho punto. </li>
<li>Identifique la tendencia del suceso anormal en el punto donde se encuentra la causa.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrv1spf1j1tGXDnZqtiBi8lEBuLYVOP0AKfvNTx96L3itb9s7_WYKtf8zi79kkVm5uA0TmGXtdr-DUTqBT9OfizB8LCRp6DVfFOVw8u4D8op7WTJoROycAR2c4gYuQGOoyiZVMkCjE1rvV/s1600/solucio%25CC%2581n+de+problemas++en+la+pra%25CC%2581ctica+de+Toyota+Kata.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="330" data-original-width="618" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrv1spf1j1tGXDnZqtiBi8lEBuLYVOP0AKfvNTx96L3itb9s7_WYKtf8zi79kkVm5uA0TmGXtdr-DUTqBT9OfizB8LCRp6DVfFOVw8u4D8op7WTJoROycAR2c4gYuQGOoyiZVMkCjE1rvV/s320/solucio%25CC%2581n+de+problemas++en+la+pra%25CC%2581ctica+de+Toyota+Kata.png" width="320" /></a></div>
</li>
</ul>
<li>Investigar las causas. </li>
<ul>
<li>Identifique y confirme la causa directa del hecho anormal. </li>
<li>Lleve a cabo las investigaciones (por ejemplo con los cinco por qué) para crear una cadena de relaciones de Causa y efecto hasta la causa de fondo. </li>
<li>Detenerse en la causa en la que hay que ocuparse para impedir la reaparición del problema. </li>
</ul>
<li>Establecer y testear contramedidas.</li>
<ul>
<li>Emprender una acción concreta dirigida la causa de fondo tratar de cambiar solamente uno de los factores cada vez para poder determinar la existencia de correlación. </li>
</ul>
<li>Seguimiento. </li>
<ul>
<li>Controlar y confirmar los resultados. </li>
<li>Estandarizar la contramedida eficaz.</li>
<li>Reflexionar ¿Qué hemos aprendido durante este proceso de solución de problemas?</li>
</ul>
</ol>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-36813634268716112472017-11-06T16:40:00.002-03:002017-11-06T17:34:04.196-03:00Diez años de agilidad - Agiles 20xx<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial"; font-size: 11pt; white-space: pre-wrap;">Segundo día Ágiles 2017, hermosa mañana, disfrutando la dinámica de open space, momento de propuestas de sesiones.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Se acerca Alan Cyment y me dice "Juan, este es el 10mo Ágiles, se me ocurrió que podemos proponer una sesión para rememorar el camino de los Ágiles".</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Y así lo hicimos. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Rememoramos en 50 minutos este camino en el que nos formamos como comunidad, y crecimos juntos como personas y profesionales, pasando por los desafíos que nos llevaron desde un grupo de personas que no se conocían, sin respaldo institucional alguno, a realizar 10 eventos consecutivos, en 7 países, 8 ciudades, con</span><span style="font-family: "arial"; font-size: 14.6667px; white-space: pre-wrap;"> entre 200 y 800 asistentes.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Este es mi resumen de lo que hablamos en la sesión y conversaciones adicionales que tuve luego de la sesión.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pero antes, una brevísima introducción a Ágiles 20xx, las Jornadas latinoamericanas sobre metodologías ágiles.</span></div>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Qué son los eventos Ágiles 20xx?</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ágiles es un encuentro anual de dos o tres día, donde intercambiamos experiencias sobre desarrollo ágil de software y la aplicación de agilidad a otros ámbitos, que se realiza en ciudades distintas de latinoamérica.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Esta es la lista de los Ágiles hasta ahora, ¡los primeros 10 Ágiles!</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2017.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2017 - Santiago - Chile</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2016.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2016 - Quito - Ecuador</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2015.agiles.org/es/?page_id=2269" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2015 - Montevideo - Uruguay</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2014.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2014 - Medellín - Colombia</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2013.agiles.org/es" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2013 - Lima - Perú</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2012.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2012 - Córdoba - Argentina</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2011.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2011 - Buenos Aires - Argentina</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2010.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2010 - Lima - Perú</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2009.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2009 - Florianópolis - Brasil</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://agiles2008.agiles.org/" style="text-decoration: none;"><span style="background-color: transparent; color: #551a8b; font-family: "arial"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ágiles 2008 - Buenos Aires - Argentina</span></a></div>
</li>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sobre la sesión</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Iniciamos agrupándonos por nuestro primer Ágiles. Fue una sorpresa. Varios de nosotros empezamos en el 2008 y había algunos de 2009 y 2010. Luego varios años sin representantes, y a partir del 2014, varias personas en cada evento. No analizamos con profundidad el motivo del hiato. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le dedicamos mucho tiempo a las anécdotas y recuerdos de los primeros años, y muy poco a los eventos a partir del 2014.</span></div>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2008 - El comienzo</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo empezó? En 2006 Alan organizó el primer CSM en Argentina con Tobias Mayer. Tobias pidió antes de su visita, que interactuaramos en un grupo. Usamos uno que había creado Alan (laasd: latin american agile software development). En 2009 el grupo cambió de nombre a </span><a href="https://groups.yahoo.com/neo/groups/foro-agiles/info" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Foro Ágiles</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ese mismo año, Baufest organizó un CSM con Jeff Shuterland. Y volvió Tobias a realizar dos CSM adicionales. Hacia fines de 2006, había 100 CSM en Argentina y un grupo Yahoo! con algún movimiento. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hacia fines del 2007, le propuse a Alan y a Tobias tomar un paso más en la construcción de una comunidad: organizar un evento. ¿Para qué un evento? Para conocer a personas que estaban haciendo lo mismo y que no conocíamos. También para hacer visible la agilidad en el mercado, para dejar de ser los locos que hacen algo que nadie más hace.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Alan lo propuso en el grupo de correo y se sumaron varias personas. Por ejemplo Martín Salías, Alejandra Alfonso, Pablo Tortorella. Y estoy cometiendo una gran injusticia, por todos los que ayudaron a que ocurra. Algunos están en esta foto.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="237" src="https://lh6.googleusercontent.com/1tKQ_NCyO2UA0o2bzieHBX4ZjB1dG4p7ayBkhe4f80XTeboXFFaUGgZGACtEmb_oRUEmIs1Skp4li2q-5gx5c17wqnMap2CDQo5ZxHwB4KSA4A5nSqYkxyCS99h4rkVYt9fM-H3v" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="357" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nos llevó un tiempo decidir el alcance y criterios del del evento. Por ejemplo, el alcance geográfico: ¿De Buenos Aires, de Argentina, de Latinoamérica, Hispanoamérica, Iberoamérica?</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Pagado por quién? ¿Por los asistentes, los sponsors, por nadie? Tradicional o Open Space.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El diseño del evento fue: </span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Alcance Latinoamericano (incluyendo Brasil).</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Idioma Español, Inglés y Portugués (sitio y sesiones).</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Costos: Gratis para asistentes, sponsors pagos (en dinero o servicios) e invitados internacionales pagados principalmente por sus cursos.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Formato: Dos días, en paralelo, formato tradicional y open space. Esto lo hicimos siguiendo el ejemplo de un Scrum Global Gathering. ¡Fue un mal ejemplo!</span></div>
</li>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tuvimos muchas dificultades para que la instituciones confíen en nosotros. Nos cancelaron dos sedes "confirmadas" (Universidades) y una ONG para gestionar cobros y pagos, porque consideraban muy riesgoso el evento.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Y era totalmente entendible, un grupo de personas sin respaldo institucional, ni historia, organizando un evento para 200 asistentes, con invitados internacionales y 4 cursos.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Finalmente, lo logramos gracias al apoyo de SADIO y varias empresas, que nos dieron una mano grande, siempre por personas que tomaron las decisión de ayudar. Recuerdo por ejemplo a Microsoft (Ezequiel Glinsky), Epidata (Andrés Anacleto), Verizon (Sebastián Po). Ricardo Colusso y Juan Gabardini (yo) quedamos como co-presidentes con el solo objetivo de poder firmar acuerdos/contratos con algunas de las organizaciones.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nos ayudó tener algunos nombres reconocidos participando: Tobias Mayer, Mary y Tom Poppendieck.</span></div>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2009 - ¿Cómo seguir?</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Aunque el open space del 2008 no funcionó bien en paralelo, dió lugar a la discusión de la próxima sede. Varios de los organizadores de 2008 consideraban que, con todo el esfuerzo que habíamos hecho, hubiera sido relativamente fácil repetir en Buenos Aires u otra ciudad de Argentina. Por otro lado, apostar a que la siguiente sede fuera en otro país afirmaba la idea inicial de un evento internacional. Las propuestas más firmes fueron Florianópolis (Samuel Crescencio) y Sao Paulo. También surgieron Córdoba, Lima y Montevideo.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Finalmente, a fines del 2008, nos decidimos por Florianópolis.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nuevamente los organizadores locales tuvieron dificultades por no tener una organización que los respalde. Luego de muchos intentos, se logró una sede hermosa.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El diseño del evento se mantuvo, salvo unas unas pocas modificaciones: </span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Costos: pago para asistentes (con beneficios para estudiantes), sponsors pagos (en dinero o servicios). Alan dio cursos CSM que donó al evento.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Formato: Dos días de cursos y dos días de formato tradicional. Sin open space.</span></div>
</li>
</ul>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2010 - 2013 - Manteniendo la llama</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En el 2009 los 5 asistentes peruanos tomaron valor y se propusieron como organizadores, entre ellos Gustavo Quiróz. Nuevamente fue un esfuerzo lograr el lugar. La parte administrativa la tomó una empresa amiga.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">No había propuestas claras de sedes alternativas, por lo que repetimos la sede y volvimos a Buenos Aires. La comunidad argentina había pasado por dos años muy intensos en cuanto a evento open space, entre 2009 y 2010 habías hecho unos 20 encuentros en distintas ciudades. La idea de los eventos open space nos la propuso Xavier Quesada Allué, que los había visto en Bélgica con la marca Agile Open. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En 2011 se hizo en Buenos Aires, por primera vez en una Universidad, y ya con el apoyo administrativo de SADIO. Incorporamos el 3 día de open space (el sábado). Entonces, como parecía poco desafío, ¡Martían Alaimo organizó su casamiento y el evento en paralelo!</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Seguimos sin tener propuestas alternativas para sedes y, debido al dinamismo que tenía la comunidad argentina en es momento, mantuvimos país pero cambiamos la ciudad a Córdoba para el 2012. Los peruanos, interesados en organizar, replicaron la serie de eventos open space en varias ciudades del país, como preparación a nivel comunidad.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En 2012 se volvió a hacer en una Universidad, aunque esta vez en un campus alejado. Participaron muchas más personas de una segunda ola comunitaria de Argentina. También se sumaron más personas de otros paises.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Se presentaron dos propuestas de sedes, por primera vez en varios años: Lima y Cochabamba. Y no teníamos un mecanismo consensuado para tomar la decisión. A pesar de los intentos, nadie quedó muy conforme con el proceso que llevó a la decisión.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En 2013 se produjo un quiebre, se sumaron muchos más personas. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tanto Medellín como Montevideo prepararon bien su propuesta de sede. Varios de nosotros le dedicamos casi el día completo de open space para pulir el proceso de selección de sede. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Se generó, con la visibilidad de los paises participantes y las conversaciones que de allí surgieron, una idea más fuerte de comunidad latinoamericana. Surgió la idea de alternar las sedes entre norte, centro y sur del continente. Fue también, lamentablemente, el último evento con presencia fuerte de brasileros. Al punto que en 2013 y 2014 el sitio está solo en español.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En este tramo, empezamos a tener un keynote speakers lationamericano (desde 2011).</span></div>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2014 - 2016 - Crecimiento</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Como resultado de la profundas charlas sobre sede que se dieron en 2013, apareció el patrón de que se presenten dos o más sedes, y a igualdad de situación, se eligue por alternancia geográfica por historia de presentaciones en años anteriores. Entonces en 2014 se presentaron Montevideo, México y Cuba/Miami. En 2015 se presentaron Ecuador y Chile avisó que se estaban preparando para el año siguiente.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En estos años se hicieron algunos experimientos. En Medellín (2014) se contrató una empresa organizadora de eventos, se realizo en un hotel, casi se duplicó la cantidad de asistentes (más de 700), se incluyó almuerzo por primera vez, todo lo que llevó a elevar el valor de la entrada. En algunos sentidos, fue un evento más tradicional, salvo que se incluyó Facilitación Gráfica a nivel evento, por primera vez.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En Montevideo (2015) se ajustó el proceso de selección de propuestas, basandose en las experiencias previas, incluyendo ajustes en la aplicación de Call for Paper y un fuerte equipo de Facilitadores Gráficos.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En Quito (2016) se produjo el mismo problema que ocurrió en Lima 2013 y en Medellín 2014: alguna de las personas claves no estaban en la ciudad en la que se realizaba el evento. Esta es una situación inestable. Requiere mucho esfuerzo de comunicación y personal (tiempo y dinero).</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En todos los eventos, el 3 día, en formato open space, tuvo relativamente pocos asistentes (la mitad de los asistentes a los primeros días). Y las sesiones presentadas normalemente no tenían el mismo nivel de preparación.</span></div>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2017 y 2018 - ¿Madurez?</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¡Tres días de open space! ¡Universidad! ¡Invitados muy especiales! ¡Almuerzos resueltos en el lugar! ¡Sin sponsors! ¡Entradas accesibles!</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fueron muchos experimentos. No charlamos sobre este evento en la sesión de historia, por lo que solo agrego una nota personal: ¡Estuvo genial!</span><br />
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Y sigamos construyendo, en el ¡2018 en Ciudad de México!</span></div>
<div>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-64838798954130229462017-07-25T08:07:00.000-03:002017-07-26T08:57:33.570-03:00DevOps en Startups<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-left: -0.75pt; margin-top: 16pt; padding: 0pt 0pt 0pt 0.75pt;">
<span style="font-family: "roboto";"><span style="white-space: pre-wrap;">Recientemente participé en la transición de una startup, que está yendo más allá de las pruebas de conceptos y de los pilotos hacia un negocio autosustentable. Comparto lo que aprendimos</span></span><span style="font-family: "roboto"; font-size: 12pt; white-space: pre-wrap;">.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-left: -0.75pt; margin-top: 16pt; padding: 0pt 0pt 0pt 0.75pt;">
<span style="font-family: "roboto"; font-size: 13pt; font-weight: 700; white-space: pre-wrap;">¿DevOps es distinto en Startups?</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El movimiento </span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: italic; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DevOps</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> busca derribar las paredes entre las áreas de las empresas, para lograr que las soluciones se construyan incluyendo el aporte de todos los involucrados. Esto permite disminuir el tiempo que toma pasar de la idea al producto, lo que a su vez permite aprender y ajustar el rumbo con mayor velocidad.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En las Startups, por el contexto riesgoso y desconocido, es necesario aprender y ajustar el rumbo con velocidad. ¡Bingo! El objetivo de DevOps y las necesidades de las Startups coinciden. </span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Por otro lado, el foco inicial de las Startups es descubrir el producto y el mercado. Hay relativamente pocos usuarios y el mayor riesgo es hacer el producto incorrecto. Al inicio se pone menos atención a la operación.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Como reflejo de esto, en muchas Startups no hay un área de Operaciones separada. Y si la hay, hubo mucho menos tiempo de levantar muros entre esta y el área de Desarrollo. </span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Entonces, ¿cuál es el desafío?</span></div>
<h2 dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 30pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El desafío de DevOps en Startups</span></h2>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Inicialmente validamos con pocos usarios que el producto genera valor. Luego la prioridad pasa a ser hacerlo disponible para muchas personas. Buscamos incorporar los atributos necesarios para seguir creciendo (por ejemplo: escabilidad, confiabilidad, que sea operable y tenga soporte) afectando poco en la velocidad del equipo. Queremos mantener al equipo en el centro de la acción, incorpore los conocimientos y responsabilidad de Operaciones.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Algunos de los análisis sobre DevOps (como </span><a href="https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">The Phoenix Project</span></a><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> o el </span><a href="https://www.infoq.com/articles/Continuous-Delivery-Maturity-Model" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Continuous Delivery Maturity Model</span></a><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">) asumen que la organización ya tiene un área de Operaciones funcionado.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El desafío es encontrar un camino de evolución para que el equipo incorpore responsabilidades y actividades de Operaciones sin desatender la mejora del producto.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Estos son algunos de los riesgos en ese camino:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; margin-left: 36pt; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Que el esfuerzo de incorporar conocimientos y prácticas de operaciones le quite foco al equipo y no se pueda seguir con el ritmo de innovación.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; margin-left: 36pt; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Que el equipo vea las actividades de operaciones o soporte como aburridas. Esto bajaría la motivación del equipo.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; margin-left: 36pt; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Que no se incorporen buenas prácticas de operaciones. Esto bajaría la calidad de la experiencia del usuario.</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo lo hacemos?</span></div>
<h2 dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 30pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Qué es Operación en IT?</span></h2>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cuando hablamos de que el equipo incorpore responsabilidades y actividades de Operaciones, ¿lo tenemos que hacer como un todo o podemos dividirlo?</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Intentaremos una posible división en roles, que nos permita incorporar el conocimiento incrementalmente al equipo o buscar soluciones alternativas:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Soporte de Operaración</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Mantener la aplicación funcionando, lo que incluye entre otras cosas estar al tanto de los consumos de recursos para realizar escalamiento (según políticas preestablecidas), responder a incidentes como por ejemplo servicios caídos, realizar provisioning de ambientes, instalar versiones, realizar copias de resguardo.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ingeniería de Operaciones</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Anticiparse a los problemas relacionados con el software de base y infraestructura (red, almacenamiento, procesamiento), estando al tanto de las actualizaciones de seguridad, versiones de software que dejan de estar soportadas, manejo de licencias.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Arquitectura</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Colaborar con el equipo en el diseño de la aplicación, incluyendo consideraciones sobre la forma de despliegue, radar de tecnologías, buenas prácticas para lograr los atributos de calidad buscados (como seguridad, escalabilidad, confiabilidad, etc.).</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conviene recordar que sobre esto hay mucho análisis, reflejado en ITIL. Hay mucho para reutilizar si mantenemos la visión de simplicidad que tiene la agilidad. Por ejemplo, en muchas Startups, es necesario implementar manejo de Incidentes y Resolución de problemas. Estos procesos pueden implementarse siguiendo las buenas prácticas de ITIL.</span></div>
<h2 dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 30pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Alternativas</span></h2>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pensamos algunas alternativas de solución, cada una con sus pros y contras:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Manejarlo con el equipo actual.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Incorporar personas en el equipo (permanente o temporal) con experiencia en Operaciones. </span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Aumentar temporalmente la capacidad del equipo.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tercerizar el servicio</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Delegar al usuario</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Automatizar las actividades de operaciones.</span></div>
</li>
</ul>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Para decidir deberíamos analizar el caso concreto, y experimentar distintas alternativas para resolver los problemas en orden de prioridad.</span></div>
<h2 dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 30pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Caso Ejemplo</span></h2>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El caso es una startup que tuvo éxito con un piloto y va a empezar a vender el servicio, lo que implica mantener un SLA (Service Level Agreement o Acuerdo de Nivel de Servicio) en cuanto a disponibilidad, resguardo de datos y escalabilidad ante la incorporación de nuevos clientes.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Con personas sumadas en forma temporal al equipo, se evaluó y decidió modificar la arquitectura de despliegue, para pasar de máquinas virtuales a servicios en la nube (Amazon Web Services). El </span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">estado del ejemplo</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> al momento de este reporte, solo una foto dentro de la evolución:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Parte de la </span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Soporte de Operación</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> se mantuvo dentro del equipo, con herramientas de monitoreo provistas por la plataforma. Se mantuvo y extendió la automatización de la instalación.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Parte de los actividades de </span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Soporte de Operación</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> e </span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Ingeniería de Operaciones</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> fueron delegadas a la plataforma: Actualización de versiones y seguridad, parte de los mecanismos de alta disponibilidad y escalamiento.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Roboto; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Arquitectura:</span><span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Se detectó una oportunidad de mejora, que se realizaría conjuntamente entre miembros del equipo y las personas sumadas al equipo en forma temporal.</span></div>
</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjq_nCOoo2qbQYjdxkTrkzqybObiYvQZExZ1UFkgzliMJSU-DQg917bi_ZO-g_Ub-oJYuIjgoGbkIZ_2YIH70q1uwc8ZEDK-AdR2nhY8r3RvBY7yM0xJdcFptfgvfnhbSYx-lboM7E93Fk/s1600/2017-07-25+DevOps+Startup.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1143" data-original-width="1600" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjq_nCOoo2qbQYjdxkTrkzqybObiYvQZExZ1UFkgzliMJSU-DQg917bi_ZO-g_Ub-oJYuIjgoGbkIZ_2YIH70q1uwc8ZEDK-AdR2nhY8r3RvBY7yM0xJdcFptfgvfnhbSYx-lboM7E93Fk/s320/2017-07-25+DevOps+Startup.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2 dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 30pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conclusión</span></h2>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En las empresas establecidas, el conocimiento sobre cómo Operar existe, pero está en áreas separadas. El desafío en la transición hacia DevOps es derribar las barreras internas entre áreas y compartir ese conocimiento. Además, las formas de desarrollo deben adaptarse, como por ejemplo automatizar builds y pruebas.</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 10pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En las Startups la dificultad está en incorporar la Operación de manera incremental, profesional y sostenible a la empresa y al equipo (en una Startup son prácticamente lo mismo).</span></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-85557994738750877962017-05-01T17:36:00.000-03:002017-05-02T11:25:01.490-03:00Cápsulas de Testing - Qué son y Próximas fechas<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;">Próximas cápsulas</span></h2>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="vertical-align: baseline;"><div style="font-family: Times; font-size: medium; font-weight: normal; white-space: normal;">
<span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;">Webinar (<a href="https://goo.gl/forms/BO4pQEnnyT3k0eMc2">¡Inscríbete!</a>):</span></div>
<div>
<div>
<ul>
<li><span style="font-family: "roboto condensed";"><span style="font-size: 14.6667px; font-weight: normal; white-space: pre-wrap;">Viernes 12 de mayo - 13:15 a 14:00 hs GMT-3 -</span><span style="font-size: 14.6667px; white-space: pre-wrap;"> Arquitectura de la prueba automática</span></span></li>
<li><span style="font-family: "roboto condensed";"><span style="font-size: 14.6667px; font-weight: normal; white-space: pre-wrap;">Viernes 19 de mayo - 13:15 a 14:00 hs GMT-3 - </span><span style="font-size: 14.6667px; white-space: pre-wrap;">Page Object</span></span></li>
</ul>
</div>
</div>
</span></h2>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="vertical-align: baseline;"><div style="font-family: times; font-size: medium; font-weight: normal;">
<span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;">En <a href="http://testinguy.org/en/#charlas">TestingUy</a>: Lunes 15 de mayo - 11:30 - 13:30 hs </span><br />
<span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;">(bajate el draft del libro en pdf)</span><br />
<span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<a name='more'></a><span style="font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
</span><div>
<span style="vertical-align: baseline;"></span><br />
<div>
<span style="vertical-align: baseline;"></span><br />
<ul><span style="vertical-align: baseline;"></span></ul>
</div>
</div>
</h2>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cápsulas de información</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hace años, cuando empecé a estudiar inglés, en el libro aparecían cápsulas de información cultural que agregaban contexto a las frase y vocabulario usado. Eran pequeños cuadros de textos al costado del texto principal. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mi intención es que este material permite incorporar conceptos de testing, en forma breve y concisa, en el momento en el que aparece la necesidad.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Las cápsulas de información de prueba son una manera incremental de incorporar conceptos a partir de ejemplos del equipo o externos. Pueden servir como guía para realizar círculos de aprendizaje en el equipo de desarrollo o para profundizar conocimientos en comunidades de práctica.</span></div>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Para quién?</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dentro de los equipos de desarrollo ágil de software esperamos colaboración entre los miembros sin una separación tajante de tareas por roles. Para ello es necesario que los miembros del equipo tengan un conocimiento mínimo de las especialidades necesarias para la construcción del producto. A esto se llama el perfil T.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<b id="docs-internal-guid-9e0b0f24-c586-6a23-f927-60d69496164a" style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="margin-left: 23.25pt;">
<table style="border-collapse: collapse; border: none;"><colgroup><col width="593"></col></colgroup><tbody>
<tr style="height: 0pt;"><td style="background-color: #f3f3f3; border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Perfil T</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">T-shaped skill/person</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">): Un especialista puede aportar en un equipo sólo en su ámbito de especialización A eso se le llama un </span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Perfil I</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Un generalista puede aportar en todas las facetas de la construcción, pero no tiene conocimiento profundo de ningún tema. </span></div>
</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: justify;">
<b style="font-weight: normal;"><br /><img alt="capsulastesting.JPG" height="208" src="https://lh5.googleusercontent.com/hfBcb6dudfo-5moOIJFX5Ul6mOtZiq7S9WNX1JDDwhvJqzClY9JslSk1KsdsgctoEAcedZf8ZuimebUpv1eU09sZ8TT4OLSebbeEo8EGx0KZnfV7ngmO10hMsbsIxB3H12OT01Gb" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="169" /></b></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Testers: Para las personas que dentro del equipo se especializan en pruebas este material es una forma de incorporar, profundizar y ejercitar su conocimiento.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Otras: Para otras personas es una manera de incorporar el conocimiento mínimo que les permita colaborar y realizar actividades relacionadas con la prueba.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<b style="font-weight: normal;"><br /></b></div>
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo usar las cápsulas?</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Este material está siendo utilizado en procesos de aprendizaje internos y también en encuentro comunitarios. En ambos casos se toma una cápsula y se dedica 30-60 minutos. Se repasan los conceptos (15 minutos) y luego se aplican los mismos siguiendo los ejercicios propuestos en la cápsula o en un caso real que tenga el equipo en ese momento.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<span style="font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Por su carácter incremental es posible y deseable que los grupos de aprendizaje que utilicen estas cápsulas las enriquezcan y cree nuevas para su uso interno o para compartir.</span><br />
<div style="text-align: justify;">
<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="color: black; font-family: "roboto"; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;"><a href="https://drive.google.com/open?id=0B-OTwTERl7LHa2hmMkxqbEZGX2M" target="_blank">Cápsulas de Testing - Pasos hacia un equipo integrado (pdf v0.1)</a></span></h2>
</div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-90816162871214159572017-04-20T19:00:00.000-03:002017-05-02T11:23:22.349-03:00Cápsulas de Testing - Estrategias de Datos v2 <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br class="Apple-interchange-newline" />En los equipos que desarrollan ágilmente se busca que todos los miembros del equipo tenga un conocimiento mínimo de las actividades de testing. También que los testers profundicen su conocimiento.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">¿Cómo podemos distribuir ese conocimiento? </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Las cápsulas de información de testing son una manera incremental de incorporar conceptos a partir de ejemplos del equipo o externos. Pueden servir como guía para realizar círculos de aprendizaje en el equipo de desarrollo o para profundizar conocimientos en comunidades de práctica.</span></div>
<span id="docs-internal-guid-6722c337-20bb-b8bb-6e3d-622ba88b8b25"><span style="font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Algunas cápsulas de conocimiento: Arquitectura de la prueba Automática, Modelo del Oráculo y Pruebas Diagnósticas. </span></span><br />
<span style="font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span><span style="font-family: "roboto condensed";"><span style="font-size: 14.6667px; white-space: pre-wrap;">En este caso, nos encontraremos 45 min el 21 de abril de 2017 (¡mañana!) para hablar sobre las estrategias de preparación de datos para pruebas automatizadas, de 13:15 a 14:00hs Bs As.</span></span><br />
<span style="font-family: "roboto condensed"; font-size: large;"><br /></span>
<span style="font-family: "roboto condensed"; font-size: large;">Agenda</span><br />
<br />
<ul>
<li><span style="font-family: "roboto condensed"; font-size: 14.6667px; white-space: pre-wrap;">Presentar el concepto (10 min)</span>.</li>
<li><span style="font-family: "roboto condensed"; font-size: 14.6667px; white-space: pre-wrap;">Trabajar en grupos para analizar el ejemplo, o un caso particular (20 min)</span>.</li>
<li><span style="font-family: "roboto condensed"; font-size: 14.6667px; white-space: pre-wrap;">Presentar los resultados (10 min)</span>.</li>
<li><span style="font-family: "roboto condensed"; font-size: 14.6667px; white-space: pre-wrap;">Cierre (5 min)</span>.</li>
</ul>
<span style="font-family: "roboto condensed"; font-size: large;"><span style="white-space: pre-wrap;"></span></span><span style="font-family: "roboto condensed"; font-size: large;"><span style="white-space: pre-wrap;"><a href="https://goo.gl/forms/bLDEO05DZgNyA1WY2" target="_blank">Anotate</a></span></span><br />
<span style="font-family: "roboto condensed"; font-size: large;"><br /></span>
<span style="font-family: "roboto condensed"; font-size: large;">(Próximo encuentro, viernes 28 de abril, <a href="https://goo.gl/forms/TAK7WX1WRiKBbFKC2">votá los temas</a>)</span><br />
<span style="font-family: "roboto condensed"; font-size: large;"><br /></span>
<span style="font-family: "roboto condensed"; font-size: large;"><br /></span>
<br />
<h1 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "roboto"; font-size: 16pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cápsula de Pruebas - Datos de Prueba</span></h1>
<div dir="ltr" style="margin-left: 0pt;">
<table style="border-collapse: collapse; border: none; width: 468pt;"><colgroup><col width="*"></col></colgroup><tbody>
<tr style="height: 0pt;"><td style="border-bottom: solid #000000 1pt; border-left: solid #000000 1pt; border-right: solid #000000 1pt; border-top: solid #000000 1pt; padding: 5pt 5pt 5pt 5pt; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cómo generar</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> los datos de prueba?</span></div>
<div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo lograr que los datos estén en </span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">disponibles en el momento de la prueba</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">?</span></div>
</td></tr>
</tbody></table>
</div>
<span style="font-family: "roboto condensed"; font-size: large;"><b id="docs-internal-guid-79611158-8d5b-4fb0-2d47-3234d12b4a5d" style="font-weight: normal;"><br /></b></span>
<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo lo he hecho?</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Para ejecutar las pruebas automáticas, necesitamos que la aplicación o SUT (System Under Test) esté en un estado conocido. Ese estado incluye los datos necesarios para la prueba. </span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Toma una prueba que estés realizando en este momento o que realizaste hace poco, piensa y anota:</span></div>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: 'Roboto Condensed'; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo obtuviste o generaste los datos de prueba?</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: 'Roboto Condensed'; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo lograste que esos casos de prueba estén cargados o disponibles para el SUT?</span></div>
</li>
</ul>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Generación de datos</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Por Diseño</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Se inventan datos que ejercitan la funcionalidad a desarrollar. Los ejemplos pueden estar basados en la experiencia en el negocio o en las hipótesis de uso futuro. Por ejemplo, generar datos que corresponden a situaciones límites y de error, hayan ocurrido o no.</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Datos Reales:</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Tomar un conjunto de datos de la aplicación actual o del problema a resolver. Por ejemplo, tomar los conceptos facturados en el último mes, o los clientes y movimientos de una sucursal durante el año pasado.</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Simulados</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Utilizar un algoritmo para generar datos. Por ejemplo, todas las combinaciones posibles de los variables de entrada, o valores aleatorios.</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Object Mother</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Cada entidad de la aplicación tiene un mecanismo para generar objetos de prueba. Normalmente con datos default y las entidades adicionales las genera recursivamente. Por ejemplo, una prueba que necesita un cliente, la prueba le pide a la entidad Cliente una instancia de prueba. Cliente genera un cliente que tiene un nombre y apellido default (Juan Perez). Para completar el país de nacimiento, Cliente le pide a la entidad Pais una instancia de prueba.</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Estado conocido</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Cargar cada vez</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Cargar los datos para cada prueba. Esto puede hacerse a diferentes niveles: desde el repositorio de los datos (base de datos, archivos), desde una capa de servicios o componentes, a través de la funcionalidad disponible para el usuario final. Puede cargarse a partir de un estado inicial vacío, o como incremento. Puede ser necesario modificar datos (fechas, números de referencias cruzadas).</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">No cambiar</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Se llega al estado conocido y se lo proteje. Por ejemplo backup y restore de bases de datos, se utilizan transacciones de base de datos, se realizan operaciones que no modifiquen datos o se realizan operaciones que revierten la operación realizada en la prueba.</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Existentes</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Asumiendo que tenemos un volumen alto y variado de datos, realizamos una búsqueda que nos traiga un dato con las características que necesitamos. </span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Mock (o dobles)</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Reemplazamos un componente del sistema, que no nos interesa probar, por un mecanismo que devuelva datos conocidos. Pueden ser siempre los mismos datos o puede ser más inteligente.</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: "dosis"; font-size: 13pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Actividades</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Analiza el siguiente ejemplo y proponer la estrategia para los datos de prueba:</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><b style="font-weight: normal;"><br /></b></span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tenemos una aplicación monolítica que resuelve una parte central del negocio de nuestra organización. Siguiendo las buenas prácticas actuales, se busca migrar hacia una arquitectura de microservicios. La migración será incremental, y en cada micro servicio se va a realizar en dos fases: duplicar funcionalidad mínima de la aplicación actual, y luego agregar funcionalidad nueva, valiosa para el negocio.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La aplicación actual tiene algunas pruebas automatizadas a través de la UI.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Queremos que puedan trabajar en paralelo los equipos que modifican el sistema monolítico remanente y los que desarrollan cada nuevo micro servicio.</span><span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Qué alternativas tenemos para generar los datos de prueba?</span></div>
<span style="font-family: "roboto condensed"; font-size: large;"><span style="font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">¿Cuáles son los pros y contras de cada una de las alternativas?</span></span>Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-63496215102301253212017-03-30T16:48:00.001-03:002017-05-02T11:23:33.664-03:00Capsulas de Testing - Estrategias de Datos<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En los equipos que desarrollan ágilmente se busca que todos los miembros del equipo tenga un conocimiento mínimo de las actividades de testing. También que los testers profundicen su conocimiento.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Cómo podemos distribuir ese conocimiento? </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "roboto condensed"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Las cápsulas de información de testing son una manera incremental de incorporar conceptos a partir de ejemplos del equipo o externos. Pueden servir como guía para realizar círculos de aprendizaje en el equipo de desarrollo o para profundizar conocimientos en comunidades de práctica.</span></div>
<span id="docs-internal-guid-6722c337-20bb-b8bb-6e3d-622ba88b8b25"><span style="font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Algunas cápsulas de conocimiento: Arquitectura de la prueba Automática, Modelo del Oráculo y Pruebas Diagnósticas. </span></span><br />
<span style="font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="font-family: "roboto condensed";"><span style="font-size: 14.6667px; white-space: pre-wrap;">En este caso, nos encontraremos 30 min el 31 de marzo de 2017 (¡mañana!) para hablar sobre las estrategias de preparación de datos para pruebas automatizadas.</span></span><br />
<span style="font-family: "roboto condensed"; font-size: large;"><span style="white-space: pre-wrap;"><a href="http://bit.ly/EstrategiasDeDatos" target="_blank"><br /></a></span></span>
<span style="font-family: "roboto condensed"; font-size: large;"><span style="white-space: pre-wrap;"><a href="http://bit.ly/EstrategiasDeDatos" target="_blank">Anotate</a></span></span><br />
<span style="font-family: "roboto condensed";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></span>
<span style="font-family: "roboto condensed";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></span>
<span style="font-family: "roboto condensed"; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><br /></span>Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-23739239655532438622017-01-26T17:31:00.000-03:002017-01-26T17:31:52.552-03:00TestComplete y Git<div class="p1">
<span class="s1">En un grupo están trabajando con <a href="https://smartbear.com/product/testcomplete/" target="_blank">TestComplete</a>, una herramienta que permite automatizar aplicaciones de escritorio (y muchas más cosas).</span><br />
<span class="s1">Estaban manteniendo las pruebas con versionado por directorios y decidimos moverlos a git.</span><br />
<span class="s1"><br /></span>
La solución es sencilla, ya que TestComplete tiene integración con git.<br />
<br />
Agregar en la raíz un archivo .gitignore con contenido<br />
<pre style="background: rgb(255, 255, 255); color: #3b3b3b;">Log/</pre>
<div>
<br /></div>
<div>
Luego se pueden seguir los pasos normales para subir un proyecto existente a un repo. <a href="https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/" target="_blank">Por ejemplo en GitHub.</a></div>
<pre style="background: rgb(255, 255, 255); color: #3b3b3b;">
</pre>
<div>
<br /></div>
</div>
<div class="p2">
<span class="s1"></span>¿Y que pasa si te olvidás del paso del .gitignore?<br />
<br />
En ese caso, la subida de los logs puede tardar mucho tiempo, incluso dar timeout. En nuestro caso, contenido completo de la carpeta del proyecto con sus logs pesaba 500Mb!<br />
<br />
<h3>
¿Cómo borrar completamente algo de Git?</h3>
<h4>
Quitar de la versión</h4>
<div>
En este caso, para borrar todos los directorios Log</div>
<div>
<br /></div>
</div>
<br />
<div class="p1">
</div>
<pre style="background: #fff; color: #3b3b3b;">find <span style="color: #45ae34; font-weight: 700;">.</span> -name Log -print
<div style="color: black; font-family: Times; white-space: normal;">
Tomar de la salida todos los directorios resultantes y armar lineas como la que está a continuación, que quitan los directorios del repo local, pero lo dejan fisicamente.</div>
<div style="color: black; font-family: Times; white-space: normal;">
</div>
git rm -r --cached <span style="color: #006699; font-weight: 700;"><</span>directorio<span style="color: #006699; font-weight: 700;">></span>/Log</pre>
<pre style="background: #fff; color: #3b3b3b;">
</pre>
<pre style="background: #fff; color: #3b3b3b;"><pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;"><div style="color: black; font-family: Times; white-space: normal;">
Luego podés validar que estén borrados en Git.</div>
<div style="color: black; font-family: Times; white-space: normal;">
Ahora si, agregá el .gitignore (como está indicado arriba).</div>
<div style="color: black; font-family: Times; white-space: normal;">
</div>
<div style="color: black; font-family: Times; white-space: normal;">
Y comitear y subir al repo. </div>
</pre>
git status</pre>
<pre style="background: #fff; color: #3b3b3b;">git commit -m ‘borrar logs’
git push
</pre>
<div class="p1">
<span class="s1">Validar que en repo remoto no esten los Logs.</span><br />
<span class="s1"><br /></span>
<span class="s1"></span><br />
<h4>
Quitar de toda la historia</h4>
<div>
<div>
No es común querer modificar la historia de Git. Y la forma estandard brindada por git es lenta.</div>
</div>
<div>
Usamos una herramienta llamada <a href="https://rtyley.github.io/bfg-repo-cleaner/" target="_blank">BFG</a>.</div>
<div>
<br /></div>
<div>
<pre style="background: rgb(255, 255, 255); color: #3b3b3b;">git clone --mirror https://github.com/<user>/<repo> <repo>_mirror</pre>
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}
span.s1 {font-variant-ligatures: no-common-ligatures}
</style>
<pre style="background: rgb(255, 255, 255); color: #3b3b3b;">cp -a <repo>_mirror/ <repo>_backup/</pre>
<pre style="background: rgb(255, 255, 255);"><span style="color: #3b3b3b;">cd <repo>_mirror
java -jar ~/Downloads/bfg-1.12.14.jar --delete-folders Log</span><span style="color: #3b3b3b;">
</span></pre>
<pre style="background: rgb(255, 255, 255);"><span style="color: #3b3b3b;">git reflog expire --expire=now --all && git gc --prune=now --aggressive</span></pre>
<pre style="background: rgb(255, 255, 255); color: #3b3b3b;">git push
</pre>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
En nuestro caso, pasamos de un repositorio de más de 1Gb a uno de 380Mb.</div>
</div>
<div>
<br /></div>
</div>
<div class="p2">
<span class="s1"></span></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-72726800036920516512017-01-18T09:00:00.002-03:002017-01-18T19:53:26.691-03:00Desarrollo ágil de Software - stack Python<span style="background-color: white; color: #222222; font-size: 12.8px;"><span style="font-family: inherit;">Soy uno de los facilitadores del curso <a href="http://www.kleer.la/es/categoria/productos/cursos/6-desarrollo-%C3%81gil-de-software" target="_blank">Desarrollo Ágil de Software</a> (DAS) de Kleer.</span></span><br />
<span style="background-color: white; color: #222222; font-size: 12.8px;"><span style="font-family: inherit;">Lo solemos hacer con Ruby (alguna vez lo hemos dado en Java y C#).</span></span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><span style="background-color: white; color: #222222; font-size: 12.8px;">Afortunadamente, hace poco lo hicimos en</span><span style="background-color: white; color: #222222; font-size: 12.8px;"> Telefonica I+D Chile y nos pidieron hacerlo con Python ¡Gracias!</span></span><br />
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Le comento mi experiencia y les dejo la referencia d<span style="font-size: 12.8px;">el ambiente </span><a data-saferedirecturl="https://www.google.com/url?hl=en&q=https://github.com/jgabardini/csdpy&source=gmail&ust=1484825309796000&usg=AFQjCNGu4fmOZ7hwNUAQxVWXvBf71FRX7w" href="https://github.com/jgabardini/csdpy" style="background-color: transparent; color: #1155cc; font-size: 12.8px;" target="_blank">https://github.com/jgabardini/<wbr></wbr>csdpy</a><span style="font-size: 12.8px;">, lo pueden reproducir en Linux (o la </span><a href="https://github.com/kleer-la/virtual-machines" style="font-size: 12.8px;" target="_blank">virtual de DAS con Mint</a><span style="font-size: 12.8px;">)</span></span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><br /></span></div>
<h3 style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Resumen de Stacks</span></h3>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<div style="color: black; font-size: medium;">
<span style="color: #222222; font-size: 12.8px;"><span style="font-family: inherit;">En el ambiente Ruby, las herramientas son: bundle, rspec, cucumber, webrat/capybara, sinatra con erb.</span></span><br />
<span style="color: #222222; font-size: 12.8px;"><span style="font-family: inherit;"><br /></span></span></div>
<div style="color: black; font-size: medium;">
<span style="color: #222222; font-size: 12.8px;"><span style="font-family: inherit;">En el ambiente Python: virtualenv y pip, behave, splinter, flask con jinja2. Además, usé un plugin de Jenkins: ShinningPanda.</span></span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
</div>
<h3 style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-size: 12.8px;"><span style="font-family: inherit;">Python</span></span></h3>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">No hubo problemas porque la mayoría ya programaba en Python (había dos o tres personas sin conocimiento, pero que se sumaron rápido).</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Algunos prefirieron usar sus ambientes, por los editores (sin usar la virtual). La virtual tiene Gedit, ellos usaban Visual Studio Code, vim, ....</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Usé Python 3.4 (en vez de 2.7 que es el default en la virtual de DAS).</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Para manejar versiones y ambientes use virtualenv y pip.</span></div>
<h3 style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Unittests</span></h3>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Usé nosetests como test runner. Extrañé la sintaxis BDD (de rspec), pero ellos no 😉</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Para el próximo (que por suerte es la semana que viene), daré instrucciones concretas sobre la estructura de directorios. Los desarrolladores Python NO tienen el mantra Convention over configuration, cada uno lo hace distinto si los dejas libres 🙌. Y explicaré las <a href="http://nose.readthedocs.io/en/latest/finding_tests.html" target="_blank">reglas de descubrimiento de pruebas de nosetests</a>, eso hubiera ayudado (tests/xxx_test.py).</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><br /></span></div>
<h3 style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><a href="http://flask.pocoo.org/" target="_blank">Flask</a></span></h3>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">El código mínimo es un poco más largo que el de Sinatra y, como yo no tengo tanta práctica, no lo escribí de cero. Usé el código del <a href="https://github.com/jgabardini/csdpy" target="_blank">repo csdpy</a> desde el inicio.</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Cuando falla el routing u otro error, no es tan amistoso como Sinatra, no muestra una página 500 con información de que falta.</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Usar annotation para definir el routing, obliga a tener funciones por cada mapeo, y es natural que la misma función cubra varios métodos HTTP. Cometí muchos errores de nombre método duplicado, acostumbrado a los bloques de Ruby.<br />Los asistentes no tuvieron mucho problemas (o los resolvieron).</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Nuevamente, Flask es menos prescriptivo que Sinatra. Yo propuse una estructura de directorios. </span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">El motor de templates, Jinja2, lo usé simplificado. Sin layout, bloques ni herencia. Es el motor usado en Django.</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><br /></span></div>
<h3 style="background-color: white; color: #222222; font-size: 12.8px;">
<span class="il"><span style="font-family: inherit;"><a href="http://pythonhosted.org/behave/" target="_blank">Behave</a></span></span></h3>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Sigue bastante la idea de Cucumber, excepto que los pasos son distintos para cada palabra clave (Given/When/Then). En Cucumber, un paso está definido solo por el texto. En Behave los pasos se definen por la combinación palabra clave + texto. Tuve el mismo problemas con nombres de métodos repetidos que en routing de Flask.</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">No propone pasos con regex "automáticas". Uno debe agregar los parámetros a mano.</span></div>
<div style="background-color: white;">
<h3 style="color: #222222; font-size: 12.8px;">
<span class="il"><a href="https://splinter.readthedocs.io/" target="_blank">Splinter</a></span></h3>
<div style="color: #222222; font-size: 12.8px;">
<span style="color: #222222;"><span style="font-size: 12.8px;">Usé Splinter que equivale a webrat/capybara. Pinta muy bien. Tiene una API muy parecida a WebDriver y puede usar los driver de WebDriver, o flask (me parece que inprocess, pero no lo encontré la documentación)</span></span><span style="font-family: inherit; font-size: 12.8px;">.</span></div>
<div style="color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><br /></span></div>
</div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><br /></span></div>
<h3 style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Configuración de Jenkins</span></h3>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Para correr tareas que requieren virtualenv, use un plugin ShinningPanda. Todas las tareas configuradas como shell.</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;">Para que corra el <span class="il">behave</span> tuve que agregar un package: <span class="il">behave</span>-jenkins.</span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; color: #222222; font-size: 12.8px;">
<h3 style="font-size: 12.8px;">
<span style="font-family: inherit;">Conclusiones</span></h3>
<div style="font-size: 12.8px;">
<span style="font-family: inherit;">Hacer la migración de Ruby a Python me llevó un día neto de trabajo. Bien sencillo.</span></div>
<div style="font-size: 12.8px;">
<span style="font-family: inherit;">Luego de 3 años de programar principalmente con Ruby, me sentí raro en Python. Me falta práctica. Por suerte, la semana que viene volvieron a pedirme, esta vez en Córdoba, que hagamos el curso en Python 😎</span></div>
<div style="font-size: 12.8px;">
<br /></div>
</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;">
<br /></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-67016722503199912092015-12-28T11:04:00.000-03:002016-01-05T20:28:23.290-03:00Ya no estamos en testing Kansas<span style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;">Nota: El título hace referencia a "We're not in Kansas anymore", del Mago de OZ.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;"><br /></span>
<br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">
¿Dónde estamos?</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;"><i>La agilidad surgió como una revolución de una clase oprimida; la de los programadores que lucharon para liberarse de los Project Managers.</i></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Han pasado 15 años desde el </span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Agile Manifesto</span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. La revolución ha cumplido su objetivo. Los programadores lograron ser reconocidos como miembros igual de importantes dentro de los equipos de desarrollo. Pero, ¿Qué pasó con los testers?</span></span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En el primer</span><span style="background-color: transparent; color: #222222; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">proyecto ágil en el que participó uno de los autores, el grupo estaba cambiando su forma tradicional de desarrollo de software a una dinámica ágil. Era inicialmente un grupo compuesto por tres equipos de programación y uno de testing.</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Durante el cambio, algunas personas del equipo de testing se sumaron a los programadores para formar equipos de desarrollo que incorporen la calidad desde el inicio. Pero el cambio no fue completo, los testers se ocuparon en acercarse a los programadores automatizando pruebas. Pero en los últimos dos días de cada sprint, cuando se corrían las pruebas finales (automáticas y manuales) antes de liberar el producto, algunos miembros del equipo no tenían respiro (los testers), mientras otros miembros del equipo se dedicaban a jugar al Counter Strike. Eso sí, con auriculares para no molestar. En este contexto, donde la calidad esperaríamos que fuera interés de todos, las tareas de testing no las toman los programadores.</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
<span style="color: #222222; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;">La historia que contamos muestra una implementación incompleta del enfoque </span><span style="color: #222222; font-size: 14.6667px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">Whole Team</span><span style="color: #222222; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;"> o equipo completo. Pero ¿qué pasa si logramos una buena implementación? Si todos los miembros del equipo se ocupan de la calidad, entonces ¿el tester desaparece?</span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><b style="font-weight: normal;"><br /></b>
</span><br />
<h3 style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;">El rol de tester en un equipo ágil</span></h3>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Si definimos lo que somos por lo que hacemos (testeo, por lo tanto soy tester) no sólo nos auto-limitamos en nuestro crecimiento personal sino que además limitamos la capacidad de nuestro equipo para encarar desafíos. </span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El equipo debe tener los conocimientos y capacidad para testear, los cuales no necesariamente deben estar centralizados en una persona, sino que pueden ser parte de un rol y ese rol puede estar distribuido en varios miembros del equipo. De esta manera todo el equipo es responsable de la calidad.</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El rol de testing ágil tiene algunas diferencias con el testing tradicional. En lugar de una persona exclusivamente preocupada por el detalle, el rol de testing ágil ajusta el nivel de detalle según el análisis que se esté realizando. En lugar de enfocarse en probar el producto, se ocupa en que el producto se construya con calidad.</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: #222222; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En el testing ágil además de ser importante probar que hicimos lo que nos pidieron, resulta central considerar las razones y el contexto en el que nos lo pidieron. De esta manera, puede detectarse si estamos logrando el objetivo original, si</span><span style="color: #222222; font-size: 14.6667px; line-height: 1.38; white-space: pre-wrap;"> tenemos la oportunidad de lograr un producto que exceda las expectativas y en general, sí mantenemos la mirada en la visión y los pies en la tierra. Luego, podemos distinguir el grado de importancia de los distintos temas identificados y tomar decisiones considerando esa guía: ¿Qué nos acerca a la visión? ¿Qué nos dificulta avanzar?</span></span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif; line-height: 1.38;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En resumen, consideramos </span></span><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;">que las siguientes características resultan centrales para el</span></span><span style="color: black; font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; line-height: 1.38; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: black; font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; line-height: 1.38; vertical-align: baseline; white-space: pre-wrap;"><b>rol de testing ágil</b></span><span style="color: black; font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; line-height: 1.38; vertical-align: baseline; white-space: pre-wrap;">:</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-size: 14.6667px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Comprender la visión de negocio: </span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Que proceso de negocio es el prioritario? ¿Cuáles son los objetivos y sus métricas relevantes que cierta funcionalidad intenta mejorar?</span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span></span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-size: 14.6667px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conocer el proceso de desarrollo: </span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dentro del rol de testing ágil está trabajar continuamente para que la calidad esté incorporada al proceso de desarrollo. Si detectamos un problema en el ambiente de aceptación, tratemos de agregar un test para que la próxima vez se detecte en el ambiente de desarrollo. </span><span style="font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;">Optimizar el proceso muchas veces implica </span><a href="http://softwareagil.blogspot.com.ar/search/label/testing%2Fcalidad" style="font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;" target="_blank">automatizar la prueba de regresión</a><span style="font-size: 14.6667px; line-height: 20.24px; white-space: pre-wrap;">. Y avanzando por este camino, vemos que l</span><span style="font-size: 14.6667px; white-space: pre-wrap;">a calidad desde temprano nos permite más velocidad, como puede verse en </span><a href="http://continuousdelivery.com/2014/02/visualizations-of-continuous-delivery/" style="font-size: 14.6667px; white-space: pre-wrap;" target="_blank">Continuous delivery</a><span style="font-size: 14.6667px; white-space: pre-wrap;">. </span></span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-size: 14.6667px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Saber cómo diseñar experimentos: </span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Esto nos sirve para validar hipótesis del negocio (Lean Startup), para probar que estamos haciendo el producto correcto y bueno para nuestros clientes, como para mejorar nuestro proceso de desarrollo. También tenemos hipótesis sobre aspectos que afectan la calidad y hacemos experimentos probando el producto.</span></span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-size: 14.6667px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conocer sobre testing en sí mismo: </span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es más fácil conseguir capacitación sobre programación o gestión de proyectos que sobre testing. Hay poca bibliografía y poco tiempo dedicado a la mejora del testing (katas, dojos, craftsmanship). Sin embargo hay mucho para aprender: evaluar las dimensiones de variación del sistema, identificar dimensiones válidas para probar, definir si es posible probarlas de forma independiente, etc. También resulta necesario conocer las diferentes heurísticas de prueba, los problemas comunes que dependen de la tecnología usada e identificar el conjunto que es posible probar en cada momento del desarrollo. </span></span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-size: 14.6667px; font-style: normal; font-variant: normal; font-weight: 700; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Riesgos:</span><span style="background-color: transparent; color: black; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ¿Cuál es nuestra peor pesadilla? ¿Cuáles son las formas en que se puede romper el producto?¿Qué podemos perder, vidas, dinero, clientes? Las respuestas a estas preguntas nos orientan tanto en la definición de alcance de las pruebas como para su priorización. Conociendo los riesgos podemos elegimos cómo manejarlos. Tomar riesgos en forma controlada nos permite ir más lejos más rápido y ser más innovadores, que si quisiéramos evitar todos los riesgos. Ver mi <a href="http://softwareagil.blogspot.com.ar/2013/11/testers-el-sombrero-negro-y-los-riesgos.html" target="_blank">post anterior</a> sobre el tema.</span></span></div>
</li>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></span></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">
¡Cómo que en la lista no está ...!</span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; line-height: 1.38; white-space: pre-wrap;">Algunas dudas surgen de esta enumeración: ¿qué pasa con la <b>automatización de la prueba</b>, la <b>usabilidad</b>, la <b>seguridad</b>? </span><br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial, Helvetica, sans-serif; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En un equipo de desarrollo ágil es bueno que todos se ocupen en aprender sobre programación, testing, usabilidad, seguridad y probablemente otras cosas también. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: black; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;"><b>Automatizar, automatizar, automatizar</b></span><span style="color: black; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;">: Es el mantra de todos los miembros del equipo. Es parte de lo que llamamos </span><span style="color: black; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;"><b>Conocer el proceso de desarrollo</b></span><span style="color: black; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;">. Para ello es útil que todas las personas de equipo puedan escribir scripts al respecto, pero no necesariamente ser todos expertos en herramientas. Como testers, podemos trabajar de a pares con los expertos.</span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: black; font-size: 14.6667px; vertical-align: baseline; white-space: pre-wrap;">Pero no todos tienen que ser expertos en todo. Nos parece útil, por lo tanto, dejar esos temas en otros roles. </span><span style="font-size: 14.6667px; line-height: 1.38; white-space: pre-wrap;">Cada persona desarrolla su especialidad, profundizando y participando de comunidades de práctica. Además, aprende de sus compañeros de equipo sobre otras áreas. Entonces una persona que cubre principalmente el rol de testing, puede además conocer sobre programación lo suficiente como para automatizar situaciones normales y pedir ayuda ante problemas técnicos complejos.</span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14.6667px; line-height: 1.38; white-space: pre-wrap;"><br /></span></span></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">
¿Pero es tan distinto el testing en ambientes ágiles del testing tradicional?<br /><span style="font-size: 14.6667px; font-weight: 400; line-height: 1.38; white-space: pre-wrap;">Una pregunta que naturalmente surge es: ¿Cuáles de estas características no están en el rol tradicional?¿Son exclusivas del rol del testing en un ámbito ágil?</span></span></h3>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; font-weight: 400; line-height: 1.38; white-space: pre-wrap;">Consideramos que ninguna de las actividades es demasiado novedosa, por lo que podríamos identificar actividades equivalentes en el marco del testing tradicional. Y encontramos dos diferencias:</span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; font-weight: 400; line-height: 1.38; white-space: pre-wrap;"> </span></h3>
<blockquote class="tr_bq">
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; font-weight: 400; line-height: 1.38; white-space: pre-wrap;">No hay en el equipo una persona cuya única tarea sea probar y que concentre toda la prueba necesaria. Sí se encuentra definido un rol, que cubierto por diferentes personas, con distinto grado de involucramiento. Así es posible compartir más tiempo con otros y esto da lugar a más oportunidades de aprender, crear e innovar.</span></blockquote>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">
¿Y ahora qué?<br /><span style="font-size: 14.6667px; font-weight: normal; line-height: 20.24px; white-space: pre-wrap;">Considerando la diversidad de conocimientos necesarios para cubrir de manera completa el rol del testing, es posible identificar quienes son los miembros del equipo más adecuados para cubrir esas necesidades y que ellos se interesen, no sólo por profundizar el conocimiento sobre esos temas, sino además compartirlos con los compañeros de equipo</span></span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 14.6667px; font-weight: normal; line-height: 20.24px; white-space: pre-wrap;">.</span></h3>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14.6667px; font-weight: normal; line-height: 20.24px; white-space: pre-wrap;">Una forma es a través de lecturas. Mi lista personal de libros: <a href="http://www.amazon.com/dp/0321534468/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=WAQLEXKAXLW&coliid=I17HUUMABLRHT6" target="_blank">Agile Testing</a>, <a href="http://www.amazon.com/dp/0321967054/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=WAQLEXKAXLW&coliid=I1S73KYXA1242" target="_blank">More Agile Testing</a>, </span><span style="font-size: 14.6667px; font-weight: normal; line-height: 20.24px; white-space: pre-wrap;"><a href="http://www.amazon.com/dp/1937785025/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=WAQLEXKAXLW&coliid=I1OUU9U0VVHI0E" target="_blank">Explore It!</a>, <a href="http://www.amazon.com/dp/0321803027/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=WAQLEXKAXLW&coliid=IB9C1BVO942WH" target="_blank">How Google Tests Software</a>, <a href="http://www.amazon.com/Domain-Testing-Workbook-Cem-Kaner/dp/0989811905/ref=sr_1_1?ie=UTF8&qid=1451310461&sr=8-1&keywords=domain+testing" target="_blank">The Domain Testing Workbook</a>, </span><span style="color: #0000ee;"><span style="font-size: 14.6667px; font-weight: normal; line-height: 20.24px; white-space: pre-wrap;"><u>Continuous Delivery</u></span></span><span style="font-size: 14.6667px; font-weight: normal; line-height: 20.24px; white-space: pre-wrap;">.</span></span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Además, junto con Natty y Ángel realizamos cursos on line de <a href="http://www.kleer.la/es/categoria/productos/cursos/185-agile-testing" target="_blank">Agile Testing</a>.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">
Origen del post y agradecimientos</span></h3>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Este post es uno más, dentro de mi búsqueda sobre el testing (ver <a href="http://softwareagil.blogspot.com/2009/03/testers-en-entornos-agiles.html" target="_blank">lo que opinaba en 2009</a>). Entre 2014 y 2015 presenté algunas de estas idea en <a href="http://43jaiio.sadio.org.ar/?q=asse" target="_blank">JAIIO 43</a>, <a href="http://agiles2014.agiles.org/es/" target="_blank">Ágiles 2014</a> (en Open Space con Juan Diego Vasco Moncada), <a href="http://cas2014.agile-spain.org/sessions/testing-en-equipos-infectados-de-test-juan-gabardini-and-juan-diego-vasco-moncada/" target="_blank">CAS2014</a> (ver la presentación más abajo) y <a href="http://agile2015.agilealliance.org/program" target="_blank">Agile 2015</a>.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Gracias a Natty Davidovich (<a class="twitter-atreply pretty-link" href="https://twitter.com/nattydavidovich" role="presentation" style="background: rgb(255, 255, 255); color: #0084b4; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; outline: 0px; text-decoration: none;"><span style="color: #66b5d2;">@</span>nattydavidovich</a>), Ángel Nuñez Salazar (<a class="twitter-atreply pretty-link" href="https://twitter.com/Snahider" role="presentation" style="background: rgb(255, 255, 255); color: #0084b4; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; text-decoration: none !important;"><span style="color: #66b5d2;">@</span>Snahider</a><span style="background-color: white; color: #292f33; line-height: 20px;">) y Nico Paez (</span><a class="twitter-atreply pretty-link" href="https://twitter.com/inicopaez" role="presentation" style="background: rgb(255, 255, 255); color: #0084b4; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; text-decoration: none !important;"><span style="color: #66b5d2;">@</span>inicopaez</a><span style="background-color: white; color: #292f33; line-height: 20px;">)</span> por las discusiones, revisiones y aportes a este post y a mi comprensión del testing.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="background-color: white; color: #292f33; font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"><br /></span></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><iframe frameborder="0" height="400" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/43256530" width="476"></iframe></span>Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-35992430067238725112015-11-30T00:40:00.000-03:002019-09-16T07:36:18.130-03:00Difusión de las innovaciones<span style="font-family: Times, Times New Roman, serif;">La difusión de las innovaciones o adopción de ideas y tecnologías sigue ciertos <b>patrones</b>. Distintos autores los estudiaron. El trabajo clásico sobre el tema es de Everett Rogers (<a href="https://es.wikipedia.org/wiki/Difusi%C3%B3n_de_innovaciones" target="_blank">Wikipedia</a>).</span><br />
<span style="font-family: Times, Times New Roman, serif;"><br /></span>
<span style="font-family: Times, Times New Roman, serif;">En este post voy a comentar una versión alternativa que presentó Geoffrey Moore en 1991 en su libro "Crossing the Chasm".</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6v68t_03s9rhoAtll0c3pE8tvO_OBc0LKjRWmmXuQIsWwqvS87KYQpDBo6sNvd0OVrfbxBa36Lfc-nnDiagwP2y8qemviNKNnkxJoe7CLl-787oRSGS6WT60UfXwnMu_HQyveGLpPxcc/s1600/curvaadopcionColor.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Times, Times New Roman, serif;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6v68t_03s9rhoAtll0c3pE8tvO_OBc0LKjRWmmXuQIsWwqvS87KYQpDBo6sNvd0OVrfbxBa36Lfc-nnDiagwP2y8qemviNKNnkxJoe7CLl-787oRSGS6WT60UfXwnMu_HQyveGLpPxcc/s320/curvaadopcionColor.jpeg" width="320" /></span></a></div>
<span style="font-family: Times, Times New Roman, serif;">El gráfico representa la cantidad de personas que adoptan a medida que avanza el tiempo.</span><br />
<span style="font-family: Times, Times New Roman, serif;">En l propuesta inicial de Rogers, al principio lo adoptan los innovadores (<i>Innovators</i>), luego los primeros seguidores (<i>Early adopters</i>), la mayoría temprana (<i>Early majority</i>), la mayoría tardía (<i>Late majority</i>) y finalmente los rezagados (<i>Laggards</i>).</span><br />
<span style="font-family: Times, Times New Roman, serif;">Un aporte importante de Moore es identificar que entre los primeros seguidores y la mayoría temprana se produce un quiebre importante, en el muchas innovaciones se detienen. Lo llama la brecha (<i>the chasm</i>).</span><br />
<span style="font-family: Times, Times New Roman, serif;"><br /></span>
<span style="font-family: Times, Times New Roman, serif;">La idea central es que las personas que adoptan ideas o tecnologías en diferentes momentos tienen necesidades distintas y que siendo conscientes del momento en que se encuentra el producto, podremos ajustar mejor la estrategia, tanto de mejora como de comunicación, para llegar a nuestros siguientes 'compradores' de la innovación:</span><br />
<span style="font-family: Times, Times New Roman, serif;"><br /></span>
<ul style="color: black; font-size: medium; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<li style="font-weight: normal;"><span style="font-family: Times, Times New Roman, serif;"><b>Innovadores</b>: los que siempre buscan lo nuevo, les interesa ser "los primeros en ...". Es fácil lograr que usen nuestro producto o idea, pero no les dura mucho ya que pasan a algo nuevo rápidamente. Pero mientras lo usan, lo hacen conocido a más personas y alguno de ellos se vuelve un primer seguidor. Nuestra tarea es entusiasmarlos con la potencialidad y lo novedosa que es la innovación. </span></li>
<li style="font-weight: normal;"><span style="font-family: Times, Times New Roman, serif;"><b>Primeros seguidores</b>: a los que nuestra innovación les genera mucho beneficio. No se detienen ante los riesgos o las imperfecciones que seguramente tiene la innovación en esta instancia. Nuestra tarea es escucharlos y ajustar la innovación para que les genere más y más valor aún.</span></li>
<li style="font-weight: normal;"><span style="font-family: Times, Times New Roman, serif;"><b>La brecha</b>: es un momento de decisiones difíciles. Si seguimos ajustando la innovación a lo que nos pide cada uno de los primeros seguidores, nunca llegaremos al gran público. En tecnología, seguiremos agregando más y más funcionalidad o detalles, cada uno de ellos relevantes solo para un pequeño número de interesados. Necesitamos un cambio de foco, que nos alejará de nuestro soporte actual (los primeros seguidores) y quizás pase un tiempo hasta que ganemos a la mayoría temprana. Nuestra tarea es trabajar en hacer la innovación sencilla de comunicar, de adoptar y de usar, confiable, con soporte ante inconvenientes.</span></li>
<li style="font-weight: normal;"><span style="font-family: Times, Times New Roman, serif;"><b>Mayoría temprana</b>: a los que nuestra innovación les genera valor, pero no están dispuestos a tomar riesgos elevados. Los convencen las historias de éxitos de otros que ya pasaron por la adopción. Están dispuestos a pagar por la innovación. En esta etapa el crecimiento de la adopción es explosivo. Moore escribió sobre esto en su libro "Inside the tormado". Nuestra tarea es escalar para sostener la demanda. El limitante para el crecimiento en adopción es nuestra capacidad para escalar.</span></li>
<li style="font-weight: normal;"><span style="font-family: Times, Times New Roman, serif;"><b>Mayoría tardía</b>: los que incorporan la innovación cuando ya no es innovadora. Son los adversos al riesgo. Cuando más del 50% adoptó una idea, empieza a ser más riesgoso no adoptarla. Es muy probable que haya aparecido competencia. Nuestra tarea es mostrar que somos la opción más segura y trabajar en optimizar los procesos operativos (por ejemplo, tener costos bajos).</span></li>
<li><span style="font-family: Times, Times New Roman, serif;"><b>Rezagados</b>: lo reticentes. Es un mercado relativamente chico, difícil de alcanzar y con poco margen.</span></li>
</ul>
<br />Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-62170393554889633652015-10-30T15:33:00.002-03:002015-10-30T15:35:57.508-03:00Intro a TDD en formato autoaprendizajeLes comparto un material que he usado un par de veces para difudir TDD en forma de autoaprendizaje o con relativamente poco soporte por parte del facilitador.<br />
<br />
<h4>
Motivación</h4>
Hace un tiempo facilitamos con Pablo Tortorella un Hackathon en el <a href="http://www.ort.edu.ar/centros" target="_blank">Instituto ORT de Almagro</a>. Durante el diseño del evento (con gente de ORT como Damian Rosenfeld, Alejandro Jait y otros), surgió el interés que los asistentes, en su mayoría alumnos del Instituto, pudieran aprender algo nuevo, si no les entusiasmaba ninguno de los proyectos, o como una forma de alternar el foco.<br />
Para eso requeríamos un material de aprendizaje autónomo.<br />
<br />
<h4>
Material</h4>
El material que contruimos es un poster en tamaño A3 que incluye una descripción de un ejercicio a realizar, un gráfico de el ciclo de TDD, y algunas consideraciones del por qué del TDD.<br />
También referenciamos a videos cortos (de 5 min) en los que Martín Salias explica como hacer un 'hola mundo' de TDD en Java, .Net, y Python.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsYV0AWUfFkXerk2L-sCzzJ5NCl6qjR5yVyYx6srkfJShX4Y0H_y4BkEmwp3P_vJLkVX0AsmmbW56Tz3sKgI19vaHAgLKwYP0w77i4rTqvWJsGrj8Vtw4-1LFMw0f7SSuTMPKaT2DIYnKu/s1600/TDDin25m_guide1.02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsYV0AWUfFkXerk2L-sCzzJ5NCl6qjR5yVyYx6srkfJShX4Y0H_y4BkEmwp3P_vJLkVX0AsmmbW56Tz3sKgI19vaHAgLKwYP0w77i4rTqvWJsGrj8Vtw4-1LFMw0f7SSuTMPKaT2DIYnKu/s320/TDDin25m_guide1.02.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<h4>
Feedback!</h4>
Si lo usas y encotras algo para mejorar, por favor me comentas.<br />
<div>
<br /></div>
<br />Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-28132030362326558492015-08-31T15:33:00.000-03:002015-08-31T15:33:34.046-03:00Agilidad fuera de software a través de espacios de co-creación<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;">¿Qué tienen en común proyectos tan distintos como movilidad sustentable, tratamientos médicos prolongados y enseñanza a personas con autismo?</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Entre mayo y junio pasado participamos en un proceso de aceleración de proyectos del Gobierno de la Ciudad de Buenos Aires en el que se conjugaron varias características que vemos emerger en los procesos de innovación. <br />A continuación les contaré lo que encontramos de común en estos proyectos y en su proceso de aceleración:</span></div>
<ul><span style="font-family: Arial, Helvetica, sans-serif;">
<li>¿Son los participantes? <br />No parece ser el caso. En los proyectos participan diferentes organismos del estado, empresas, universidades, ONG e individuos.</li>
<li>¿Los une la forma de financiamiento? <br />Tampoco. Cada proyecto se financia de manera distinta: en algunos casos son iniciativas personales, en otros, investigaciones universitarias, presupuesto de áreas del gobierno, donaciones y trabajo de voluntarios, o inversión empresarial. </li>
<li>¿Coinciden en el estado de avance? <br />No. Había proyectos en todos los estados, desde iniciativas individuales sin equipo, otros con planes presentados a inversionistas, otros con prototipos y aún productos y servicios ya producidos. </li>
</span></ul>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<br />
<h2>
<span style="font-family: Arial, Helvetica, sans-serif;">Entonces, ¿qué encontramos en común?</span></h2>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">El espacio de innovación</span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Hay elementos presentes en la mayoría de las innovaciones: la suma de ideas crea saltos de innovación, las ideas toman tiempo para convertirse en innovaciones, la innovación pasa por distintos estadíos (divergencia, selección, convergencia, enriquecimiento).</span><br />
<div style="background: khaki; border-radius: 20px; padding: 20px;">
<span style="font-family: Arial, Helvetica, sans-serif;">¿Qué puede hacer alguien que quiere incentivar la innovación en otros? </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Crear espacios, ajustados a cada estadío, que faciliten la diversidad y el intercambio de ideas, dando tiempo para su maduración, pero también foco y límites para que avancen en cuanto a su realización.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Esta creación de espacio es transparente para los asistentes. Sólo se ve que hay gente interesante presente, que hay sillas y mesas suficientes, comida y bebida, papeles, marcadores y otros elementos que permiten a los asistentes enfocarse en la interacción entre ellos. Además, en cada momento está claro qué queremos lograr y siempre tenemos a quién pedir u ofrecer ayuda.</span><br />
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br />Una descripción muy buena de esta actividad es el concepto de <i>Host Leadership</i>. En este enfoque del liderazgo se plantea roles y posiciones. Los roles reflejan distintas acciones y estilos, como Iniciador, el que Invita, Creador de espacios, Protector del espacio, Conector y Co-participante. También el líder puede cumplir su rol desde diferentes posiciones: en el Escenario, Entre la gente, en un Balcón, o en la Cocina. Combinaciones entre rol y posición pueden ser necesarios en diferentes momentos y por diferentes personas.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Lo visual</span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;">La información visual es la forma predominante de intercambiar información en la mayoría de las personas. El uso de facilitación gráfica para expresar lo conceptos, los prototipos en papel, el uso de notas autoadhesivas para proponer y luego reordenar las ideas, todo esto promueve la comunicación y la comprensión rápida.<br />Además, hay un resultado indirecto de estas actividades. Se crea un espacio de emociones positivas y de seguridad, que promueve la creatividad y la colaboración.</span><br />
<blockquote class="tr_bq">
<span style="font-family: Arial, Helvetica, sans-serif;"><i>Hacia el final de un curso con alto componente técnico, realizado en un laboratorio de una universidad, las paredes estaban cubiertas con grande papeles de gráficos y dibujos, y notas autoadhesivas de colores formando listas y tablas llenas. En un momento entra una persona de la universidad ajena al curso, y mirando alrededor comenta "¡Qué increíble! ¡cómo cambia el laboratorio con tantos colores!".</i></span></blockquote>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">El aprendizaje rápido</span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Los proyectos de años de duración, definidos completamente al inicio, son cosa del pasado. Ni los clientes esperan, ni los inversores ponen dinero sólo por una presentación, ni los visionarios y emprendedores confían sólo en intuiciones.</span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br />Ahora escuchamos a los clientes y buscamos satisfacer sus necesidades, creemos que la mejor forma de saber que le estemos dando valor es llevando nuestro producto o servicio rápidamente a sus manos, mirar cómo lo usa, escuchar lo que dice y aprender para modificar nuestro producto.</span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;">En esta forma de innovar desconfiamos de nuestras hipótesis e intuiciones, buscamos la manera más rápida de validarlas y aprender en el proceso. <i>Design Thinking</i> y <i>Lean Startup</i> son algunas de las formas interesantes de descubrir lo que se necesita y como tiene que ser el producto que lo resuelva.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para que esto sea posible, necesitamos poder construir y adaptar nuestro producto en pequeños incrementos, a bajo costo. En cada tipo de producto esto se logra de manera distinta, así como fue el Desarrollo Ágil para el software, hay otras formas en cada área de conocimiento para lograr esto. Lean Thinking es la descripción genérica de esta forma de trabajo.</span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">La colaboración</span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Si queremos innovación a través de sinergias y suma de ideas, es imprescindible la colaboración. Parte de esto está fomentado por los espacios y lo visual, que comentamos antes. Pero eso solo no es suficiente. Los equipos recién formados no siempre colaboran, hay choques de personalidad y malos entendidos por desconocimiento mutuo.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;">Es importante en esta situación el <b>rol del facilitador</b>, que guía la dinámica del grupo, para que sea un grupo efectivo. Por ejemplo, validando a supuestos e inferencias, compartiendo la información relevante, usando ejemplos específicos, acordando el significado de términos importantes, explicando los razonamientos e intenciones, focalizando en intereses en vez de posiciones, combinando entusiasmo en exponer ideas con indagación de otras ideas, diseño conjunto de pasos y paneras para resolver desacuerdos, hablar aún sobre los temas tabúes y usar reglas de toma de decisiones que generen el nivel de compromiso necesario (<i>Skilled Facilitator</i>).</span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<h2>
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;">¿Cuándo ocurre?</span></h2>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;">Estamos viendo estos espacios de co-creación dentro de empresas, organizadas por empresas con su ecosistema de proveedores, entre empresas amigas, alrededor de comunidades de meetup, organizadas por entidades del estados y un largo etc.</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;">Creemos que estos espacios de co-creación pueden ocurrir espontáneamente, sin embargo podemos ayudar a que ocurran, como hemos visto hacer y hemos hecho. </span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;">¡Inténtalo!</span><br />
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;">Gracias a Pablo Mazzeo conozco sobre <a href="http://hostleadership.com/" target="_blank">Host Leadership</a>, y gracias a Alan Cyment, <a href="http://www.schwarzassociates.com/" target="_blank">Skilled Facilitator</a>. </span><br />
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;">Las experiencias que comento las viví gracias a <a href="http://facilitacion.kleer.la/" target="_blank">Kleer</a>, <a href="http://rutanmedellin.org/es/noticias/tag/kleer" target="_blank">Ruta<sup>n</sup> Medellín</a>, el <a href="http://www.buenosaires.gob.ar/modernizacion/institucional" target="_blank">Ministerio de Modernización del GCBA</a> y el <a href="http://clusteragil.com/" target="_blank">Cluster Ágil</a>.</span><br />
<span style="color: black; font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
</div>
</div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-12716511840278988552015-04-15T23:37:00.000-03:002015-07-14T08:46:11.940-03:00Arquitectura de la prueba automatizada<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="text-align: right;">
</div>
<span style="font-family: Arial, Helvetica, sans-serif;">La automatización de la prueba de software es un tipo particular de sistema de software, a veces llamado framework de prueba o stack de prueba.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Como cualquier sistema de software, tiene una arquitectura que puede facilitar o no la extensión, reuso y modificación. <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDnzX3Jrf5C0EK2iCLus_v5DkWy2OjIZ5uOpZkAkZR_VvEhxu-X6lkmg_RR6IwPUj2-tx-USt6CzetXX-IxIPGbprt6Rqe5IBJ331F5JUG4M2oKz3rUOKTMCtxpNsbRlV5kKkX_1jXQVk/s1600/arq+prueba_01(1).jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDnzX3Jrf5C0EK2iCLus_v5DkWy2OjIZ5uOpZkAkZR_VvEhxu-X6lkmg_RR6IwPUj2-tx-USt6CzetXX-IxIPGbprt6Rqe5IBJ331F5JUG4M2oKz3rUOKTMCtxpNsbRlV5kKkX_1jXQVk/s1600/arq+prueba_01(1).jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Arquitectura del Sistema de pruebas automáticas</td></tr>
</tbody></table>
</span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Una arquitectura compartida</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Algunas familias de herramientas de prueba (como Mercury, Rational, Silk y TestComplete) están pensadas para resolver toda la problemática de la prueba y tienen la arquitectura definida por el fabricante.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">En otros casos (como Selenium, FitNesse, Cucumber y RobotFramework) las herramientas resuelven sólo algunos de los aspectos de la prueba. Suelen usarse combinadas con otras herramientas.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Una discusión que dejo pendiente es la correlación entre los atributos de las arquitecturas (extensión, reuso y modificación) y el origen de las herramientas:<i> propietarias</i> o <i><a href="http://en.wikipedia.org/wiki/Alternative_terms_for_free_software" target="_blank">FLOSS</a></i>.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Planteo entonces por mi cuenta una arquitectura que describe muchos de los stack de prueba que conozco. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Esta arquitectura está en movimiento aún. Hace un año aproximadamente incorporé el componente <b>Comparator</b> por conversaciones con Nicolás Páez (él plantea un modelo ligeramente distinto <a href="https://nicopaez.wordpress.com/2014/11/18/seleccion-de-herramientas-de-prueba-parte-1/" target="_blank">parte 1</a>/<a href="https://nicopaez.wordpress.com/2015/02/08/seleccion-de-herramientas-de-prueba-parte-2/" target="_blank">parte 2</a>). En enero de este año, cuando </span><span style="font-family: Arial, Helvetica, sans-serif;">estaba explicando la arquitectura, me surgió la necesidad de agregar el </span><b style="font-family: Arial, Helvetica, sans-serif;">Editor</b><span style="font-family: Arial, Helvetica, sans-serif;">.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Y aún tengo dudas sobre la utilidad de separar algunos componentes, como por ejemplo tener componentes separados para reflejar el mecanismo de extender el DSL, tanto del lado del <b>Test Case</b> como del <b>Interpreter</b>.</span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Para qué buscar una arquitectura compartida</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Identificar una arquitectura común de las herramientas de prueba permitiría simplificar las interfaces y que cada producto tenga foco en su especialidad, sabiendo que otros productos se ocuparán de las restantes áreas. Esperaba que el programa de la Agile Alliance "<a href="http://www.agilealliance.org/programs/agile-alliance-functional-test-tool-program-aaftt/" target="_blank">Agile Alliance Functional Testing Tools</a>" lograra este consenso. No encuentro que se haya publicado ese análisis, aunque hay otros temas interesantes (<a href="http://www.infoq.com/news/2008/08/functional_test_results" target="_blank">2008</a>, <a href="http://www.infoq.com/news/2012/08/aaftt-2012" target="_blank">2012</a>).</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Es también útil tener un lenguaje común para poder discutir stacks alternativos cuando se está diseñando una solución de prueba. </span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Los componentes</span></h4>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Por cada componente, describo brevemente el alcance del mismo y algunos ejemplos de su instanciación en herramientas existentes.</span></div>
<div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b>Editor</b>: cómo creo y edito mis casos de prueba. En ocasiones una herramienta ad hoc, en otros casos una herramienta genérica.<br /><i>Selenium</i>: Selenium IDE, permite grabar acciones desde la aplicación o editar los TC.<br /><i>WebDriver</i>: editor/IDE del lenguaje de programación usado. </span><br /><i style="font-family: Arial, Helvetica, sans-serif;">RobotFramework</i><span style="font-family: Arial, Helvetica, sans-serif;">: RIDE, permite editar TC en forma 'inteligente', o editores de HTML. </span><br /><i style="font-family: Arial, Helvetica, sans-serif;">FIT</i><span style="font-family: Arial, Helvetica, sans-serif;">: Word, Excel y editores de HTML. </span><br /><i style="font-family: Arial, Helvetica, sans-serif;">FitNesse</i><span style="font-family: Arial, Helvetica, sans-serif;">: wiki. </span><br /><i style="font-family: Arial, Helvetica, sans-serif;">Cucumber</i><span style="font-family: Arial, Helvetica, sans-serif;">: cualquier editor de texto.</span></li>
</ul>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b>Test Case (TC)</b>: Repositorio de mis casos de prueba, con o sin estructura y con un lenguaje con el que escribo mis casos de prueba. Puede incorporar la posibilidad de definir términos nuevos que abstraigan complejidad.<br /><i>Selenium IDE</i>: Los casos de prueba se escriben con Selenese, básicamente un HTML con una tabla de tres columnas. La estructura de casos está dada por las suite, que es una tabla HTML con los casos.<br /><i>WebDriver</i><span style="font-style: normal;">: No tiene forma nativa de representar los casos de prueba o la estructura. Debe usarse un Runner de otra herramienta y sintaxis de lenguaje de programación usado. Extensión usando el lenguaje de programación.</span><br /><i>RobotFramework</i>: HTML (tablas), TSV, reST. P<span style="font-family: Arial, Helvetica, sans-serif;">ermiten extender el DSL de prueba con user keywords</span>.</span><br /><i style="font-family: Arial, Helvetica, sans-serif;">FitNesse</i><span style="font-family: Arial, Helvetica, sans-serif;">: wiki markup languaje (tablas). Permiten extender el DSL de prueba con Scenario.</span><br /><span style="font-family: Arial, Helvetica, sans-serif;"><i>Cucumber</i>: Gherkin y</span><span style="font-family: Arial, Helvetica, sans-serif;"> permiten extender el DSL de prueba con Scenario Outlines.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b>Interpreter</b>: interprete del lenguaje de TC, incluyendo mecanismos para definir o extender un DSL.<br /><i>Selenium</i>: plugin de Firefox, y se extiende con plugins adicionales.<br /><i>WebDriver</i>: la parte correspondiente a WebDriver es interpretada o compilada por el lenguaje en el que se escribieron los TC (Java, Ruby, Python, etc), y resuelto con la API provista por la biblioteca de Selenium.<br /><i>RobotFramework</i><b style="font-style: italic;">: </b>interprete del lenguaje propio (test data syntax), se extiende con </span><span style="font-family: Arial, Helvetica, sans-serif;">library keywords.<br /><i>FitNesse</i>: interprete de HTML (modo compatibilidad con FIT) a través de una conversión interna entre wiki text y HTML, o directamente wiki text en el caso de SLIM. Extensión usando Fixture.<br /><i>Cucumber</i>: interprete de Gherkin más los steps creados.</span></li>
<li><b style="font-family: Arial, Helvetica, sans-serif;">Adapter</b><span style="font-family: Arial, Helvetica, sans-serif;">: cero, uno o más capas de adaptación entre los TC interpretados y el sistema bajo prueba (System Under Test o SUT). La forma de conexión depende del tipo de prueba que se quiere hacer, por ejemplo conexión con: interfaz usuario, API REST, u objetos de la aplicación.<br /><i>SUT Web</i>: un ejemplo sería WebDriver usado para automatizar la aplicación a través de la interfaz web, más PhantonJs para simular un browser.<br /><i>SUT Desktop</i>: un ejempo es Abbot para pruebas de Java Swing o White para pruebas GUI sobre Windows usando UIAutomation.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b>Comparator</b>: el mecanismo de comparación entre resultados esperados y los resultados reales. El comparador puede tener conocimiento semántico y sintáctico sobre el resultado (Output) del SUT, para poder hacer comparaciones más significativas y concisas. En este sentido puede estar ligado a los adapters. En otras casos está implementado en el Interpreter. Y también puede ser extendido.</span><br /><span style="font-family: Arial, Helvetica, sans-serif;"><i>Cucumber</i>: la base de los comparadores corresponde a las expectations de RSpec, pero se enriquecer, por ejemplo con los <a href="http://www.rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers" target="_blank">Capybara Matchers</a>.<br /><i>Fitnesse</i>: una de las diferencias entre el Interprete FIT y SLIM es los comparadores adicionales (rangos, aproximados, mayor o menor). Adicionalmente, en SLIM se pueden enriquecer con <a href="http://fitnesse.org/FitNesse.UserGuide.AdministeringFitNesse.ConfigurationFile" target="_blank">Custom Comparators</a>.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b>Runner</b>: permite correr los TC. Pueden permitir ejecutar TC secuencialmente o en paralelo; todos los TC, o algún subconjunto (los que tienen cierta marca o tag, los que han fallado, etc), o uno solo TC; indicar dependencias entre TC. <br />Los Runner también tiene mecanismos para indicar cuando un TC ejecutado ha sido exitoso o no y mecanismos de preparación y limpieza de las pruebas. Invocan a la generación de reportes.<br /><i>Cucumber</i>: se invoca por linea de comando y puede usarse el runner de JUnit (con cucumber-JVM)<br /><i>FitNesse</i>: se puede ejecutar las pruebas desde la wiki, por linea de comandos, por servicios REST y puede usarse el runner de JUnit.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b>Reporter</b>: crea los reportes de seguimiento de los resultados de la prueba. Distintos usuarios del sistema de pruebas requieren distintos reportes: resumen al momento, evolución temporal, detalle de casos ejecutados, etc. Es este área el formato XML de JUnit es el standard de facto. Aunque varias herramientas tienen alternativas: sólo texto o HMTL. Además, se incorporan a otras herramientas para brindar visibilidad, como Jenkins o SonarQube.</span></li>
</ul>
<div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Conclusiones</span></h4>
<div>
</div>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Los equipos de desarrollo de software pueden diseñar su sistema de pruebas automáticas en forma iterativa e incremental, de igual manera a como se desarrolla el producto. Se empieza por la forma más sencilla y se mejora cuando es necesario.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Espero que este modelo te ayude a evaluar alternativas y decidir que cambiar en cada ciclo de mejora.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
</div>
Anonymoushttp://www.blogger.com/profile/16055532884246232267noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-66544619916337522792015-01-12T09:07:00.000-03:002015-01-12T12:19:30.014-03:00Fitnesse con Python (waferslim)En estos días tuve la necesidad, por primera vez, de usar Fitnesse para probar un sistema escrito con Python.<br />
Gracias a SLiM es fácil, comparado con la implementación con FIT, relacionar Fitnesse con <a href="http://www.fitnesse.org/PlugIns#slim" target="_blank">varios lenguajes</a>.<br />
Me llevó, de todas formas, más de un par de horas hacerlo funcionar. Espero que a otros les sirva.<br />
Nota: Mis pruebas fueron con Ubuntu 14.04 y 11.04<br />
<br />
Los pasos para ponerlo en marcha son:<br />
<ol>
<li>Instalar WaferSLiM, el servidor SLiM para Python.</li>
<li>Instalar Fitnesse</li>
<li>Configurar las pruebas para usar WaferSLiM y la versión correcta de protocolo</li>
</ol>
<h3>
WaferSLiM</h3>
<b>Obtener <a href="http://withaherring.blogspot.com.ar/" target="_blank">waferslim</a></b> desde <a href="https://pypi.python.org/pypi/waferslim">https://pypi.python.org/pypi/waferslim</a><br />
<pre>wget https://pypi.python.org/packages/source/w/waferslim/waferslim-1.0.2-py2.6.zip#md5=acacf783444802677358b8b301ab23f9 --no-check-certificate
unzip waferslim-1.0.2-py2.6.zip
</pre>
<br />
<b>Instalar waferslim</b> por <a href="https://bugs.launchpad.net/ubuntu/+source/distribute/+bug/958550">https://bugs.launchpad.net/ubuntu/+source/distribute/+bug/958550</a><br />
<br />
<pre>sudo easy_install ez_setup
cd waferslim-1.0.2
sudo python setup.py install
</pre>
<br />
<pre>Para <b>probar</b> que todo anda bien (reemplazar el syspath donde lo hayas instalado)
python -m waferslim.server --syspath /home/kleer/waferslim-1.0.2 8002
</pre>
<h3>
Fitnesse</h3>
<b>Obtener</b> Fitnesse de <a href="http://www.fitnesse.org/FitNesseDownload">http://www.fitnesse.org/FitNesseDownload</a> el release 20140901<br />
fitnesse-standalone.jar (*)<br />
<br />
Para <b>probar</b>, ejecutar<br />
<pre>java -jar fitnesse.jar -p 8000</pre>
<br />
Abrir en un browser localhost:8000<br />
<br />
<h3>
Configuración</h3>
Crear una <b>página de Test</b> y poner este texto, reemplazando el path por el correcto en tu caso (*)<br />
<div>
<br /></div>
<pre>!define TEST_SYSTEM {slim}
!define SLIM_VERSION {0.1}
!path /home/kleer/waferslim-1.0.2
!define COMMAND_PATTERN {python -m waferslim.server -v --syspath %p }
</pre>
<br />
Luego poner el test, tomado del docstring de algunos de los ejemplos que se encuentran en la distribución de WaferSlim. Por <b>ejemplo</b><br />
<br />
<pre>|import|
|waferslim.examples.decision_table|
|should I buy milk|
|cash in wallet|credit card|pints of milk remaining|go to store?|
| 0 | no | 0 | no |
| 10 | no | 0 | yes |
| 0 | yes | 0 | yes |
| 10 | yes | 0 | yes |
| 0 | no | 1 | no |
| 10 | no | 1 | no |
| 0 | yes | 1 | no |
| 10 | yes | 1 | nope |
|should I buy milk alternative implementation|
|cash in wallet|credit card|pints of milk remaining|go to store?|
| 0 | no | 0 | no |
| 10 | no | 0 | yes |
| 0 | yes | 0 | yes |
| 10 | yes | 0 | yes |
| 0 | no | 1 | no |
| 10 | no | 1 | no |
| 0 | yes | 1 | no |
| 10 | yes | 1 | nope |
</pre>
<br />
<br />
Apretar el botón de test y <b><span style="color: #6aa84f;">¡listo!</span></b><br />
<h4>
(*) Versión del protocolo</h4>
La versión de WaferSlim que se encuentra en pypi fue probada con el fitnesse.jar release 20100103.<br />
Si se usa esa versión de Fitnesse, no es necesario configurar SLIM_VERSION {0.1}<br />
<br />Anonymoushttp://www.blogger.com/profile/16055532884246232267noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-73260210523090419972014-04-15T15:48:00.002-03:002014-04-15T17:31:34.936-03:00Reporte de defectos (bugs) en Scrum<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Una pregunta muy frecuente en los equipos que están implementando Scrum es si tienen que seguir usando una herramienta de seguimiento de defectos, y si lo uso que deberían registrar en la misma.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Veamos primero la respuesta revolucionaria y después una respuesta evolutiva. </div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Y luego el análisis en cuanto al momento en que se detecta.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Nota: en todos los casos que comentamos, la importancia o prioridad de los bugs se debe acordar en el Scrum Team (Dev Team + Product Owner + Scrum Master), teniendo la última palabra el PO basado en el impacto en el negocio.</div>
<h2 style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Revolución: Hay una sola lista de pendientes</h2>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
El backlog contiene todo lo que hay que construir. No hacemos diferencia entre bug y funcionalidad nueva.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Un bug que provoca que las pruebas automáticas estén en rojo (falla alguna de las pruebas) debe corregirse en el momento o esa funcionalidad debe quitarse (o desactivarse).</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Si encontramos un bug durante la prueba exploratoria que es crítico, agregamos una prueba automática que lo evidencie. </div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Todo otro bug se considera un cambio a una funcionalidad existente y se prioriza junto con otras funcionalidades.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<h2 style="font-size: 13px;">
Evolución (orgánico): Lista de bugs</h2>
<div>
El Product Owner dispone de varias fuentes: pedidos de los clientes, ideas propias de nueva funcionalidad, y un lista de los bugs que persisten en el producto. Cuando se planifica el sprint, se consideran los bugs más complejos como nuevos requerimientos, y los chicos se agrupan en paquetes de corrección. En ocasiones se define un tiempo fijo que se dedicará a corrección de todos los bugs que se puedan.</div>
</div>
<h2 style="color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<b><span style="background-color: white;">Caso </span><span class="il" style="background-color: white;">bug</span><span style="background-color: white;"> detectado en una historia que se está desarrollando</span></b></h2>
<div style="color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<ul>
<li style="background-color: white;">Primera opción, corregirlo dentro del sprint como parte del desarrollo de la historia</li>
<li style="background-color: white;">¿Y qué pasa si no llegamos con todo lo comprometido? </li>
<ul>
<li><span style="background-color: white;">Recortar la funcionalidad para que ese </span><span class="il" style="background-color: white;">bug</span><span style="background-color: white;"> no sea relevante </span><span style="background-color: white;">y agregar una historia con esa funcionalidad recortada. </span></li>
<li><span style="background-color: white;">Si es muy grave, quitar la funcionalidad correspondiente y la historia queda sin hacer. Quizás pueda resolverse e el próximo sprint.</span></li>
<li><span style="background-color: white;">El bug</span><span style="background-color: white;"> </span><span style="background-color: white;">es poco importante como para hacer alguna de las anteriores: si no es importante ahora, ¿cuándo lo será? Podemos registrarlo en una herramienta o tiralo a la basura, si aparece alguien a quien le importe, lo pedirá. Esta última es la forma más realista en el largo plazo. Las listas interminables acumuladas de bugs son un consumo de tiempo y esfuerzo de todo el equipo.</span></li>
</ul>
</ul>
</div>
<h2 style="color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<b><span style="background-color: white;">Caso</span><span style="background-color: white;"> bug detectado luego de liberada una historia</span></b></h2>
<div>
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Hay varias alternativas:</span></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<ul>
<li>Se maneja como una historia de usuario (si es grande)</li>
<li>Se agrega a las lista de ideas a revisar en el refinamiento de backlog, tanto para estimar como para evaluar la prioridad. Luego del análisis, se carga en el backlog / lista de bug si se quiere corregir en los próximos sprints, o se descarta.</li>
<li>Se corrige a medida que aparecen. El equipo debe manejar el impacto en cuanto a cambio de alcance. Por ejemplo: tener un tiempo fijo dedicado en el sprint para corrección de bugs<span class="il" style="background-color: #ffffcc;">.</span> O poner un límite de bugs abiertos (por ejemplo 10) y se debe detener el desarrollo de nueva funcionalidad hasta tanto se corrijan los bugs que hay en exceso. </li>
</ul>
<div>
<br /></div>
<div>
¡Espero este breve recorrido te ayude!</div>
</div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-7644966022739939642014-03-05T09:01:00.000-03:002014-03-05T09:01:31.914-03:00Reunión Agile Peru en Lima el 27 de Febrero<span style="font-family: Arial, Helvetica, sans-serif;">Aprovechando mi estadía en Lima, el jueves pasado fui a la reunión mensual de Agile Perú. Nos reunimos en Avantica, que prestaron la sala y proporcionaron bebida.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Se presentaron temas y luego se votó, en un estilo Open Space. Iniciamos unas 15 personas y hubo unas 25 personas en total. Había un par de personas nuevas en agilidad, y personas con mucha experiencia. Se planteó hacer dos tracks, uno introductorio, pero finalmente se unificó en una sola ronda</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-7dgaS0vTUV0/UxT-v_F-mAI/AAAAAAAAGzg/_HcQtoY0BC0/w788-h591-no/2014-02-27+19.40.09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" src="http://1.bp.blogspot.com/-7dgaS0vTUV0/UxT-v_F-mAI/AAAAAAAAGzg/_HcQtoY0BC0/w788-h591-no/2014-02-27+19.40.09.jpg" height="240" width="320" /></span></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Hubo tiempo para 4 temas, y podes ver todas las fotos en el album. Además, facilité gráficamente las charlas.</span><br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">
Mejores prácticas de Estimación</span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">¡Sería mejor hablar de buenas prácticas, no de mejores!</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Se partió de la pregunta frecuente del tipo: "como hago para estimar agile mejor que como lo hago ahora". Esto lleva a entender que si hacemos lo mismo que antes no podemos mejorar la estimación, y de ahí pasamos a entrega incremental, formatos alternativos de contratos, confianza, negociación win-win, y alternativas para estimar al inicio de un proyecto con un equipo nuevo.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-4fvzw0lsA_s/UxT-vxF4hMI/AAAAAAAAGzg/e9-TKqLMtRk/w788-h591-no/2014-02-27+20.42.48.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" src="http://2.bp.blogspot.com/-4fvzw0lsA_s/UxT-vxF4hMI/AAAAAAAAGzg/e9-TKqLMtRk/w788-h591-no/2014-02-27+20.42.48.jpg" height="240" width="320" /></span></a></div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">
¿Cómo manejar proyectos llave en mano?</span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Casualmente (o no tanto :D) la conversación derivó naturalmente en el siguiente tema. ¿Cómo manejamos proyectos llave en mano?</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;">A su vez, la pregunta fue cambiando a "cómo convencemos a nuestros clientes que entrega incremental y colaboración es mejor él? </span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/wlEKLm2Bhgzs84Z-UcOdftLU2o0TSKIbG_meBOrC420=w888-h562-no" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" src="http://1.bp.blogspot.com/wlEKLm2Bhgzs84Z-UcOdftLU2o0TSKIbG_meBOrC420=w888-h562-no" height="202" width="320" /></span></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">¡El rol de Product Owner es una gran mentira!</span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Esta fue una sesión propuesta por mí. Plantee una discusión, en cuanto a la utilidad y aplicabilidad del rol de Product Owner, usando 3 casos en los que creo que no aplica (Organización de conferencias, Pproducto masivo, Open source), y tres hipótesis que no siempre son ciertas (Product Owner como priorizador de necesidades, Capacidad fija del equipo, Software funcionando como medida del éxito).</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/dIpdiDt2zjdDpOXhQNNTW0lZ5sjcdGFw7nXzGztnTMo=w858-h562-no" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" src="http://1.bp.blogspot.com/dIpdiDt2zjdDpOXhQNNTW0lZ5sjcdGFw7nXzGztnTMo=w858-h562-no" height="209" width="320" /></span></a></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Técnicas Retrospectivas (Motivar participación)</span></h3>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Un par de personas expusieron la situación del proyecto en el que estaban (distribuido, largo) y nos dieron una excelente oportunidad para hablar sobre las características de las retrospectivas efectivas, como identificarlas y fomentarlas.</span></div>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/Zsxb8XSzLNdfjE1qltVXSd_yOjqvBeF9ETqrDp-Muvc=w1021-h562-no" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" src="http://2.bp.blogspot.com/Zsxb8XSzLNdfjE1qltVXSd_yOjqvBeF9ETqrDp-Muvc=w1021-h562-no" height="176" width="320" /></span></a></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<b><span style="font-family: Arial, Helvetica, sans-serif;">Cierre</span></b></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Por lo que comentaban, fue una buena reunión. La comunidad limeña viene de un año en el que las reuniones giraban en torno a organización de eventos (sobre todo Ágiles 2014, que exigió mucho trabajo). Y ahora disfrutan de las reuniones de intercambio de ideas y experiencias. La organización es super liviana: El lugar y las bebidas ofrecidos por una empresa, las charlas se definen en el momento. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Les dejo el link al <a href="https://plus.google.com/u/0/events/c5o527rp2ug7g7qfb4muuavt5o0/109160214102027890340/5986689901971419426" target="_blank">albúm de fotos</a></span></div>
<div>
<br /></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-52046060660707978972014-01-27T12:31:00.001-03:002014-01-31T15:47:49.485-03:00Evaluación y autoevaluación docente: ¡Analízame! <span style="font-family: Arial, Helvetica, sans-serif;">Desde el inicio de <a href="http://www.kleer.la/" target="_blank">Kleer</a>, siempre hubo foco en la mejora y la innovación en los productos y servicios que brindamos. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">En particular, la forma en que facilitamos cursos, talleres y otras instancias de proceso enseñanza- aprendizaje está siempre cambiando, exploramos y compartimos entre nosotros tanto lo que funcionó como lo que no.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">A lo largo de los últimos 3 años esto a incluido, entre otras cosas:</span><br />
<br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Salirnos del centro del proceso educativo, dando más lugar a la intaracción entre los asistentes </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Facilitar y documentar gráficamente</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Incorporar música</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Repensar el componente visual (no usar proyector salvo para ver videos, fotos o software que los asistentes usarán en el curso)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Incorporar actividades lúdicas</span></li>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Aunque no tenemos "la manera correcta" de facilitar el aprendizaje, necesitamos continuo feedback. Una fuente de feedback son los alumnos. Otra son otros compañeros docentes, y nosotros mismos.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"> Para estos últimos dos casos, escribimos una lista de lo que no gustaría saber sobre cómo hacemos nuestro trabajo. </span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">La copio más abajo en su versión actual. La mantendremos actualizada en el libro <a href="https://leanpub.com/educacionparticipativa" target="_blank">Educación Participativa</a>, que estamos escribiendo con Pablo Tortorella sobre todos estos temas. </span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<br />
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Sugerencia: en cada punto del cuestionario podés usar <i>Perfection Game</i> (ver capitulo 15 de Software for Your Head ).</span></div>
<div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">NO ES: un checklist sobre la experiencia completa del curso, que implica como el asistente se entera,</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">el material de difusión, la experiencia de registración, facturación y cobro, la logística organización</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">del lugar, la calidad o cantidad de comida y bebida, etc.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif; font-size: large;">Cuestionario</span></div>
<div>
<b><span style="font-family: Arial, Helvetica, sans-serif;">Previa / precalentamiento</span></b></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Tenés claros lo objetivos del training, lo mínimo que tiene que lograr los asistentes? ¿Cómo</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">esperas que cambien su comportamiento por lo que aprendieron?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Enviaste información relevante del curso con suficiente anticipación, distinguiendo las</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">preparaciones necesarias de las adicionales? ¿Tienen para material variado para elegir (leer,</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">videos, hacer, hablar con otros, investigar)?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Lo pedido en el precalentamiento, ¿se usó durante el curso?</span></div>
<div>
<b><span style="font-family: Arial, Helvetica, sans-serif;">Bienvenida</span></b></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• La primera impresión: música, elementos ordenados con atención en lo visual, actividad para</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">conectarse desde el primer momento.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Ambiente seguro y cómodo: bebida / comida / lugar de baños / agenda de la actividad /</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">temperatura / espacio / luz</span></div>
<div>
<b><span style="font-family: Arial, Helvetica, sans-serif;">Durante</span></b></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Cuánto tiempo sos el centro de atención (debe ser menos del 25%)?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Creaste el ámbito para que se enseñen entre ellos?</span></div>
</div>
<div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Manejaste bien la participación: participaron todos y ninguno acaparó el tiempo, separaste</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">bien los temas que eran relevantes para este entrenamiento y los que quedan para charla de</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">break o para información adicional.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Actividades Grupales:</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Hubo actividades individuales, de a pares o tríos y grupales?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Variaron los grupos?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Variaste los medios? Ej.: presentación con proyector, video, storytelling, facilitación</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">gráfica, lectura, escritura, movimiento corporal, actuar una situación.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Actividades:</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Las consignas resultaron claras, ayudaste durante las actividades para amplificar las</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">oportunidades de aprendizaje y para rescatar temas a comentar en la puesta en común?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Hubo tiempo para la puesta en común?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Música en actividades de introspección?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Material de Soporte:</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿El material de soporte (Conceptos y workbooks) fueron usados?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Fueron útiles?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Los alumnos se los llevaron luego del curso?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Material Adicional:</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– Referiste durante el curso a material adicional para profundizar?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">– ¿Lo dejaste registrado en algún lado para enviarlo en el cierre virtual?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Referiste durante el curso a experiencias propias y de otros? ¿Comentaste cómo esto se</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">relaciona con actividades comunitarias y de terceros?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Documentaste (fotos, videos, material adicional) para el cierre?</span></div>
<div>
<b><span style="font-family: Arial, Helvetica, sans-serif;">Breaks y Almuerzos</span></b></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Es claro y cumplible el tiempo dedicado al break? En cursos largos, das tiempo para que los</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">asistentes revisen rápidamente sus mensajes / mails / llamados?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Estás presente para consultas y socialización?</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Cierre y despedida en el lugar</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• ¿Tomaron los alumnos compromisos de acción?. Foto grupal. Feedback del curso.</span></div>
<div>
<b><span style="font-family: Arial, Helvetica, sans-serif;">Cierre y despedida virtual</span></b></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">• Resumen fotográfico, referencias y lecturas adicionales, datos contacto o actividades comu-</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">nitarias, tus próximas actividades. Todo enviado dentro de las 24 horas posteriores al curso.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Contactos luego del curso.</span></div>
</div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-30965136459455656612013-11-12T09:01:00.004-03:002013-11-12T09:01:48.858-03:00Testers, el Sombrero Negro y los riesgos<span style="font-family: Arial, Helvetica, sans-serif;">Varias veces en mi carrera he tomado el rol de tester, ya sea como miembro de equipo o como consultor, y con ese rol me ha tocado participar en reuniones en las que se analizaban las estrategias de pruebas y la relación con los riesgos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">En algunas de las reuniones en las que participé sentí que mis preguntas y comentarios generaban incomodidad, incredulidad o incluso enojo. De alguna manera, la forma en que estaba planteada la reunión o la forma en la que yo participaba de la misma, no facilitaban la exploración de ideas o caminos alternativos.</span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Origen de la incomodidad</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">En mi última retrospectiva personal (hansei) estuve pensando en el origen de esta situación, y que podría hacer para cambiarla la próxima vez que estuviera en esa situación.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Posibles fuentes de incomodidad</span><br />
<br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Mezclar en la reunión diferentes momento del proceso creativo que lleva a un plan de prueba:</span></li>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">La instancia de identificación y exploración de los riesgos </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">La evaluación del impacto y probabilidad de los riesgos</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">La ideación de mitigaciones</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">La evaluación de riesgos secundarios.</span></li>
</ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Percepción de que alguna persona en la reunión está evaluando el trabajo pasado en vez de estar trabajando en los próximos pasos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Falta de práctica de los asistentes con técnicas de innovación. Por ejemplo criticando las ideas desde el mismo momento en que se plantean, y no aplicar resonancia (utilizar <i>si... pero</i>, en vez de si... y además).</span></li>
</ul>
<br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Mi lista de accionables</span></h4>
<br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Validar al inicio de la reunión el objetivo, dinámica y agenda. Marcar a lo largo de la reunión donde estamos, y si nos apartamos reevaluar si volvemos a la agenda original o la modificamos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Siendo que últimamente participo como consultor, explicitar que tengo poco contexto, y que por favor tomen mis intervenciones como disparadores de ideas.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Facilitar gráficamente la charla, para ayudar a que todos estemos en la misma página.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Ser el primero en seguir las recomendaciones: no juzgar las ideas cuando las generamos, construir sobre las ideas de los demás (resonancia), manter en foco en las seleccionadas.</span></li>
</ul>
<br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Riesgos secundarios</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">No todas las reuniones tienen las estructura "generar ideas y luego converger a solución". </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">En algunas grupos o reuniones se espera que el experto diga "cómo deben hacer las cosas" y por más que yo crea que sea mejor construir entre todos, debo escuchar lo que se espera de mí, y al menos explicitar la tensión. Muy ligado a Cynefin, sólo sirve buscar "la mejor forma" de hacer las cosas cuando estamos en un contexto Simple (algo de eso en mi post sobre <a href="http://softwareagil.blogspot.com.ar/2011/01/la-mejor-manera-de-probar-en-agilesbsas.html" target="_blank">La mejor forma de Probar</a>).</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">En otros grupos, "no hay tiempo" para analizar las alternativas, debemos pasar directamente a definir la acción. Lo mejor es detectar esto antes de la reunión, hablando con los participantes para entender las expectativas y, como último momento responsable, se puede aclarar en el inicio de la reunión, cuando se plantea la agenda.</span><br />
<div>
<br /></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-54553326387137831672013-11-07T10:53:00.003-03:002013-11-09T20:04:38.218-03:00¿Automatizamos las pruebas de regresión?<span style="font-family: Arial, Helvetica, sans-serif;"><i>Trabajo en una aplicación en la que cada vez que mis usuarios piden un cambio, el costo de hacer el cambio es mucho menor que el costo de probar. La aplicación </i></span><i style="font-family: Arial, Helvetica, sans-serif;">no tiene automatizada la prueba y no es modular.</i><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Esta situación la he escuchado y vivido muchas veces en mi carrera. Ante esa situación, hay varias acciones posibles:</span><br />
<br />
<ol>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Tenemos que hacer de nuevo el sistema, y esta vez <b>lo haremos bien</b>.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Redefinamos el sistema para que sea <b>más fácil probar</b>.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b>Automaticemos</b> la prueba.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Contratemos <b>más testers</b>.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Sigamos sin cambiar durante algún tiempo.</span></li>
</ol>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">No puedo en este post analizar todas las alternativas, pero voy a seguir una linea de razonamiento posible, asumiendo algunas creencias, básicamente que las prácticas de desarrollo ágil me pueden ayudar en este caso (Más información sobre estrategias en <a href="http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052" target="_blank">Working Effectively with Legacy Code</a>). </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Entonces, la secuencia de pensamientos sería:</span><br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Me gustaría hacerlo bien, pero no puedo tirarlo y empezar de nuevo, el negocio debe seguir operando y la aplicación se debe seguir adaptando. Entonces, trabajaremos en <b>hacerlo bien</b>, pero en forma <b>incremental</b>. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Para redefinir el sistema sin romperlo, y dado que trabajaremos incrementalmente (muchos pequeños cambios) necesitamos pruebas automatizadas, al menos de nivel funcional. Esto permitirá que probemos a bajo costo cada versión del sistema con un nivel aceptable de calidad. No reemplazamos las pruebas manuales, pero al menos distribuimos las pruebas entre dos ciclos: uno automatizado, rápido y frecuente, otro manual, costoso y que corremos antes de liberar versiones.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Hacer bien la aplicación implica modularizar, tener pruebas automatizadas unitarias y calidad interna. Estas importantes ideas y prácticas no las estoy tratando en este post, pero suelen tener como precondición las pruebas funcionales automatizadas a las que me refierno en este post.</span></li>
</ul>
<span style="font-family: Arial, Helvetica, sans-serif;">Vemos muchas equipos y empresas que siguen esta linea de pensamiento. Entonces el problema se puede reeplantear.</span><br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Quiero automatizar las pruebas de regresión, ¿cómo lo hago?</span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;"><i>Quiero automatizar las pruebas de regresión, ¿cómo lo hago? ¿Qué herramientas uso? ¿lo hago con personas del equipo o contrato fuera? ¿cómo cambian los roles, que tenemos que aprender? ¿qué y cuánto tengo que probar para lograr confianza?</i></span><br />
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">La respuesta a estas preguntas: Depende. </span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Bien, pero ¿de qué depende?</span></div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">El equipo ¿tiene cultura de calidad?</span></h4>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Algunos miembros del equipo se ocupan de la calidad, dedican tiempo a pensar como probar y manejar los riesgos. Ya se hacen pruebas, y el problema es como automatizarlas.</span></div>
<br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">¿Cómo es la estructura y cuales son los conocimiento del equipo?</span></h4>
<div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">La prueba manual la realiza un grupo externo, o los testers del equipo (hay personas cuyo puesto o posición es Tester), o las pruebas las realizan varias personas que cubren el rol de tester, pero también otros roles (analistas, programadores, diseñadores gráficos).</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Los que cumplen rol de tester, ¿tienen conocimientos sobre programación o les interesa adquirirlos?</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Funciona el equipo como un <i>Whole Team</i> en el que todos toman responsabilidad sobre el resultado conjunto y no sobre un subconjunto ("yo pruebo, no programo" o viceversa)</span></div>
<div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">¿Cómo es la tecnológicamente la aplicación</span><span style="font-family: Arial, Helvetica, sans-serif;">?</span></h4>
<div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Para disminuir la curva de aprendizaje y mejorar la aceptación de las nuevas herramientas, es conveniente que la tecnología de la prueba automática sea cercana a la utilizada para la aplicación. ¿El equipo trabaja con .Net, Java, Ruby, Python?</span></div>
</div>
</div>
</div>
<div>
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Nuestra respuesta</span></h3>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Cada equipo debe explorar qué organización, herramientas y conocimientos les servirán para su caso.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Lo que encontramos desde Kleer (en este caso Nicolás Páez, Juan Gabardini, Carlos Peix), es que solemos repetir, al inicio de las consultoría de estos temas, una mínima nivelación de conocimientos y del abanico de posibilidades en cuanto a prácticas y herramientas, para facilitar a los equipos tomar decisiones. Pensamos que sería útil extraer esto en </span><span style="font-family: Arial, Helvetica, sans-serif;">una serie de talleres cortos (medio día cada uno)</span><span style="font-family: Arial, Helvetica, sans-serif;">:</span></div>
<div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><a href="http://www.kleer.la/entrenamos/evento/214-taller-de-prueba-automatizada-buenos-aires" target="_blank">Taller de pruebas automatizadas</a>: conceptos de prueba automatizada, estrategias y herramientas (lenguajes de scripting, Fitnesse, Cucumber, Selenium)</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpyxkmazZBAO4r7pxIgqIAgEo8BpW5O1NuGRD4B5pDJp-LXvSXWOvAOUQmSbs2Eb9KFcxpQt5lzvAXH4yHLKNsicGcXBVErR3QsMgMlfr3SKlq_RqblWYTde8zLuj-CH34Ocnvq3i-z8z3/s1600/Screenshot+from+2013-11-07+17:58:19.png" imageanchor="1" style="display: inline !important; font-family: Arial, Helvetica, sans-serif; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpyxkmazZBAO4r7pxIgqIAgEo8BpW5O1NuGRD4B5pDJp-LXvSXWOvAOUQmSbs2Eb9KFcxpQt5lzvAXH4yHLKNsicGcXBVErR3QsMgMlfr3SKlq_RqblWYTde8zLuj-CH34Ocnvq3i-z8z3/s320/Screenshot+from+2013-11-07+17:58:19.png" width="320" /></a></div>
<br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><a href="http://www.kleer.la/entrenamos/evento/212-taller-de-integracion-continua-buenos-aires" target="_blank">Taller de Integración Contínua</a>: conceptos de integración continua y automatización de builds, y herramientas (Jenkins, TeamCity y Travis).</span></li>
</ul>
</div>
<div>
<br /></div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-79865231525161479892013-10-22T14:39:00.000-03:002015-10-30T15:04:24.238-03:00Ágiles 2013: Desarrollo Ágil en las Universidades de Medellín<span style="font-family: Arial, Helvetica, sans-serif;">RutaN Medellín es una organización de la ciudad de Medellín, en Colombia, que impulsa la innovación y la competividad de la ciudad, tanto empresas, academia y comunidad en general.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">A fines del 2012 convocaron a Kleer para organizar un programa para incorporar el Desarrollo Ágil (y en particular Scrum) en el ADN de la ciudad. Para ello se empezó con un programa para empresas (<a href="http://www.rutanmedellin.org/index.php/es/noticias/item/transferencia-de-la-metodologia-scrum-11012013" target="_blank">Fase I</a>) en la que participaron 10 empresas de Medellín, durante enero y febrero del 2013.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Luego se realizó la <a href="http://www.rutanmedellin.org/index.php/es/noticias/item/scrum-para-las-instituciones-de-educacion-superior-de-medellin" target="_blank">Fase II</a>, durante marzo y abril del 2013, para Universidades e Instituto de enseñanza superior, en los que inicialmente participaron 6 Universidades e Institutos, y luego se agregaron 3 más (gracias a la gestión Carlos Mario Zapata de la Universidad Nacional).</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Tuve la suerte de participar en la Fase II, en la que tuvimos el desafío de trabajar con docentes y universidades que ya habían iniciado hacia un año la incorporación de Desarrollo Ágil, junto con otras que recién empezaban.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Junto con María Clara Gómez preparamos la </span><a href="https://docs.google.com/presentation/d/1_JMHD_UvZuEdiZv3sKbTzXUd1sAKWQ0ayOL0wVlhaco/edit?usp=sharing" style="font-family: Arial, Helvetica, sans-serif;" target="_blank">Presentación</a> <span style="font-family: Arial, Helvetica, sans-serif;">para Ágiles 2013. María Clara organizó la filmación y edición de los videos que se ven allí. Lamentablemente no pudo participar del evento. Gracias a Pablo Tortorella (fue uno de los ideadores del proyecto junto con Rocío Arango) que me acompaño en la presentación en Ágiles 2013.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para cerrar, les dejo referencias a actividades que las universidades hicieron luego de este proyecto:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">1. Taller de <a href="http://www.youtube.com/watch?v=3LBehu-2DrE" target="_blank">legos de SCRUM</a> </span><span style="font-family: Arial, Helvetica, sans-serif;"> </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">2. Presentación de <a href="http://www.youtube.com/watch?v=DNatu0cvnPg" target="_blank">principios de SCRUM con facilitación gráfica</a>.</span>Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-74773467357770081252013-10-17T01:27:00.000-03:002013-10-19T08:58:15.191-03:00Historia de Ágiles 2008<span style="font-family: Verdana, sans-serif;">En la última Ágiles surgió la necesidad de contar la historia, para entender las raíces y construir la visión comunitaria sobre lo ya hecho.</span><br />
<span style="font-family: Verdana, sans-serif;">Con esta idea en mente, comienzo lo que espero será la serie completa, desde un punto de vista muy particular (el mío) y esperando que el resto de los participantes en estos eventos puedan aportar. Pido disculpas desde ya por las omisiones que seguramente cometeré.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Empiezo hablando de <a href="http://agiles2008.agiles.org/es/index.php" target="_blank">Ágiles 2008</a></span><br />
<h3>
<span style="font-family: Verdana, sans-serif;">Inicio</span></h3>
<div>
<span style="font-family: Verdana, sans-serif;">Entre el 2006 y el 2007 se hicieron 4 cursos de CSM en Argentina, 3 de Tobias Mayer organizados por Alan Cyment y uno de Jeff Sutherland organizado por Baufest. Eramos aproximadamente 150 personas que teníamos entrenamiento formal en desarrollo ágil.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;">Gracias a iniciativa de Tobias nos agrupamos en una lista de correo, que tenía algún movimiento (esa lista, luego de un cambio de nombre, es hoy <a href="http://groups.yahoo.com/neo/groups/foro-agiles/info" target="_blank">foro-agiles</a>).</span></div>
<div>
<span style="font-family: Verdana, sans-serif;">Con la idea de hacer un evento con el cual catalizar la movida en una comunidad, Alan y yo nos reunimos a fines del 2007 consultando a todos los conocidos para ver quien quería participar. Desde las primeras reuniones se sumaron Martín Salias, Juan Ladetto, Pablo Tortorella, Ricardo Colusso, Adrián Eidelman, Emilio Gutter y Alejandra Alfonso (organizadores). Desde temprano Tobias y Matt Gelbwaks fueron mentores y consejeros. </span><br />
<span style="font-family: Verdana, sans-serif;">En oficinas de Microsoft y de Epidata empezamos la organización y las discusiones:</span></div>
<div>
<ul>
<li><span style="font-family: Verdana, sans-serif;">Alcance geográfico: Buenos Aires, Argentina, América Hispano parlante, Latinoamerica, Iberoamérica.</span></li>
<li><span style="font-family: Verdana, sans-serif;">Idioma usado en la conferencia: Sólo español, Sólo inglés, alguna combinación de español, inglés, portugués.</span></li>
<li><span style="font-family: Verdana, sans-serif;">gratuito o pago</span></li>
</ul>
</div>
<div>
<span style="font-family: Verdana, sans-serif;"> Optamos por:</span></div>
<div>
<ul>
<li><span style="font-family: Verdana, sans-serif;">Latinoamericano: eramos ambiciosos e inconscientes, pero aún en nuestros ideales, no nos imaginábamos una comunidad que incluyera España y Portugal. Costo de viaje demasiado altos.</span></li>
<li><span style="font-family: Verdana, sans-serif;">Idioma: combinación de inglés, español y portugués. Solo de inglés parecía extraño. Muchas personas no hablan inglés y quedarían fuera, ya que las posibilidad de hacer traducción simultanea era prohibitivamente cara, y no tenemos población bilingüe. </span></li>
<li><span style="font-family: Verdana, sans-serif;">En cuanto a cobrar o no la entrada, se decidió que no entraba en la visión, era algo a definir en cuanto a conveniencia.</span></li>
</ul>
<h4>
<span style="font-family: Verdana, sans-serif;">Realización</span></h4>
</div>
<div>
<div>
<span style="font-family: Verdana, sans-serif;">Los principales problemas que enfrentamos fueron falta de estructura administrativa, dificultad para conseguir sede, las restricciones financieras y los compromisos con los speakers.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><b>Estructura administrativa</b>: como grupo de independientes, podíamos emitir comprobantes legales hasta ciertos límites, pero no podíamos descargar gastos, lo que creo costos impositivos grandes para algunos de los organizadores. Además no podíamos pasar por los procesos de compras de los sponsors más grandes. Luego de intentar con otras organizaciones, nos contactamos con SADIO que confió en nosotros y nos ayudó cobrando a los sponsors. Los cursos que se organizaron con los speakers se manejaron con facturas de los organizadores.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><b>Sede</b>: tratamos mucho tiempo en conseguir sede universitaria. En dos casos estaba "segura" y luego se cayeron. La última caída fue en julio, a 3 meses del evento. Finalmente logramos reservar el <a href="http://es.wikipedia.org/wiki/Hotel_BAUEN" target="_blank">Bauen</a>, y para esa época teníamos ya dinero de los sponsors. Pero implicó que muchos temas de difusión, confirmación de speakers e inscripciones debieran realizarse en muy poco tiempo.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><b>Restricciones financieras</b>: al no tener sede no podíamos difundir, no había inscripciones, los sponsors eran reticentes a pagar sin saber a menos donde se haría el evento, y el poco dinero que teníamos no lo queríamos gastar sin saber si se necesitaría para la sede. Logramos que algunos sponsors pagaran pasajes de los speakers, que es otro impacto de no tener financiamiento inicial.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><b>Compromisos con speakers</b>: se organizaron cursos para pagar los viajes y que quede algo para los speakers. Eso funcionó, pero agregó complejidad tanto en logística como en cobranzas y pagos.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><a href="http://agiles2008.agiles.org/common/pdfs/resumen.pdf" target="_blank">Resultado del evento</a></span></div>
<div>
<div>
<h4>
<span style="font-family: Verdana, sans-serif;">Elección de la próxima sede</span></h4>
</div>
<div>
</div>
</div>
<div>
<div>
<span style="font-family: Verdana, sans-serif;">Al evento asistieron personas de Sao Paulo, Florianópolis y Porto Alegre. Durante el evento se habló de la siguiente sede, y las candidatas eran </span><span style="font-family: Verdana, sans-serif;">Sao Paulo, Florianópolis y </span><span style="font-family: Verdana, sans-serif;">Buenos Aires.</span></div>
</div>
<div>
<span style="font-family: Verdana, sans-serif;">Buenos Aires se descartó porque estábamos muy cansados y nadie tomó la posta para organizar. Además, parecía apropiado para un evento latinoamericano que cambiara de país. </span></div>
<div>
<span style="font-family: Verdana, sans-serif;">Entre Sao Paulo y Florianópolis, la discusión fue más compleja, ya que no conocíamos a ninguno de los que proponían, y la elección fue por mail. Finalmente elegimos Florianópolis por presentar una propuesta con apoyo del gobierno local. Creo que en ese momento también pesó la preocupación que Sao Paulo fuera abierto en cuanto al objetivo latinoamericano, y no se limitara a un gran evento con alcance principalmentente local. </span></div>
<div>
<span style="font-family: Verdana, sans-serif;">La elección llevo un mes de discusión en la lista de los organizadores de Ágiles 2008 y con los candidatos.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://agiles2008.agiles.org/images/fotos/organizadores.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://agiles2008.agiles.org/images/fotos/organizadores.jpg" width="320" /></a></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">La Argentina "perdió" el evento latinoamericano, entonces surgió la idea de un evento nacional anual (que nuevamente requeriría viajes), o una serie de eventos regionales. Considerando lo cansados que quedamos los organizadores argentinos, tomamos la sugerencia de Alan y Xavier Quesada Allué, y empezamos a organizar eventos Open Space, muchos más livianos, bajo la marca <a href="http://www.agiles.org/agile-open-tour" target="_blank">Agile Open</a>.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Fue una experiencia enriquecedora que nos permitió conocer a personas de Chile, Brasil, Bolivia, Perú, que luego siguieron participando y organizando eventos. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Por favor me avisan cualquier corrección que deba hacerse, o dudas que quedan por responder.</span></div>
<div>
<ul></ul>
</div>
</div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-45356996877264593442013-09-17T10:53:00.000-03:002014-05-19T19:59:46.762-03:00Katas de GIT<span style="font-family: Arial, Helvetica, sans-serif;">Git es manejador de versiones de código distribuido (DVCS) de mucho uso. Para los que venimos de SVN es a la vez familiar (algunos conceptos no cambian) y extraño (da mucha más flexibilidad, que nos deja a veces usando Git como hacíamos con SVN).</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Hay mucho material disponible, por ejemplo:</span><br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Libro <a href="http://git-scm.com/book" target="_blank">Pro Git</a></span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Resumen visual (<a href="http://ndpsoftware.com/git-cheatsheet.html" target="_blank">cheetsheet</a>)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Cambiando desde <a href="https://www.atlassian.com/git" target="_blank">SVN a GIT</a></span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Y claro, lo tienen que <a href="http://git-scm.com/downloads" target="_blank">instalar</a>, </span></li>
</ul>
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora que ya lo tenemos instalado y leímos sobre Git, ¿sabemos Git?</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Creo que sin el uso y práctica, no sabemos sobre Git (¡o cualquier otra cosa!) al nivel necesario para nuestra día a día laboral.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Por que una Kata</span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Una forma de incorporar la práctica es con ejercicios en ambientes seguros. La posibilidad de repetición permite incorporar los conceptos hasta que salgan naturalmente, y el ambiente seguro nos permite explorar formas alternativas, sin miedo de perder nuestro trabajo. Ver como ejemplo las <a href="http://codekata.pragprog.com/" target="_blank">Code Katas</a>.</span><br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Katas</span></h3>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Crear ambiente para las Katas</span></h4>
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">cd</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">mkdir gitkata</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">cd gitkata</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">git init --bare repo</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">git clone repo a_local</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">git clone repo b_local</span></blockquote>
<div>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Nota: en vez de usar un repositorio local, como este caso, podemos usar un repo remoto en <a href="https://github.com/" target="_blank">Github</a>, <a href="https://www.atlassian.com/software/bitbucket/overview" target="_blank">Bitbucket</a> u otro.</span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Kata 1 - básico</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Crear un archivo en <b>a_local</b>, subirlo al <b>repo</b> y actualizar <b>b_local</b> para que refleje los cambios.</span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Kata 2 - branch</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Crear un branch en <b>a_local</b> y subir cambios al branch, publicar al remoto (<b>repo</b>)</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Actualizar branches y contenido en b_local</span><br />
<h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Kata 3 - merge</span></h3>
<span style="font-family: Arial, Helvetica, sans-serif;">Crear un branch dev, aplicar cambios</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Crear un branch fix (a partir de mastter), y aplicar los cambios a master y a dev</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">(hint: gitk)</span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Kata 4 - merge con conflictos</span></h4>
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">cd a_local<br />touch hola<br />git add hola<br />git commit -m "Nuevo saludo"<br />git push<br />cd ../b_local<br />git pull<br />echo "Hola, como estas?" > hola<br />git commit -a -m "Saludo mejorado"<br />cd ../a_local<br />echo "Bueno días" > hola<br />git commit -a -m "Saludos de inicio de dia"<br />git pull</span></blockquote>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Resolver un conflicto en los commit.</span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Kata avanzados</span></h4>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">ordenar la historia (hint: rebase)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">trabajando en el branch equivocado (hint: rebase).</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">un commit incorrecto (descartar un commit).</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">demasiados commit (hint Squashing)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">elegir una feature (hint cherry-pick).</span></li>
</ul>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">¡Contame que te parece!</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
</div>
Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0tag:blogger.com,1999:blog-7724391788939259190.post-63972978286101991612013-05-19T23:38:00.000-03:002013-05-19T23:38:15.483-03:00Escalera de inferencias por Mariano Stampella<span style="font-family: Arial, Helvetica, sans-serif;">Mariano Stampella dió una clase de Coaching Ontológico, en particular sobre la Escalera de Inferencias en la materia que compartimos en la FIUBA (</span><span style="font-family: Arial, Helvetica, sans-serif;"><a href="http://materias.fi.uba.ar/7546/practica.php" target="_blank">Administración y Control de Proyectos Informáticos II</a>).</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Como parte de nuestra idea de experimentar con formas nuevas de enseñar, en esta clase Mariano aplicó el método de las 4 C, según está descripto por Sharon Bowman en Training from the Back of the Room (conexión, concepto, concreción, conclusión).</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-HcLBm3i6sXA/UZmFJXxSxMI/AAAAAAAACTY/X3tp_m7PvIQ/s1600/2013-04-11+19.41.14.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="http://3.bp.blogspot.com/-JpUgA7zu4bg/UZmFNwtGkHI/AAAAAAAACSc/Qiu094lpWlc/s1600/2013-04-11+20.49.56.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Alumnos participando" border="0" height="150" src="http://3.bp.blogspot.com/-JpUgA7zu4bg/UZmFNwtGkHI/AAAAAAAACSc/Qiu094lpWlc/s200/2013-04-11+20.49.56.JPG" title="Alumnos participando" width="200" /></a><img alt="Mariano explicando" border="0" height="150" src="http://1.bp.blogspot.com/-HcLBm3i6sXA/UZmFJXxSxMI/AAAAAAAACTY/X3tp_m7PvIQ/s200/2013-04-11+19.41.14.JPG" title="Mariano explicando" width="200" /></div>
<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En la parte de concepto, me pidió que documentara gráficamente lo que el explicaba. <br /><u>Tenía algunas ventajas</u>: es algo que escuché varias veces, Mariano usaba el pizarrón y anotaba algunas cosas y tenía a Leonardo Fernández que también conoce del tema y me ayudó cuando perdí alguna frase o concepto. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><u>Y algunas desventajas</u>: llegué tarde y nervioso, me costó prepararme y enfocarme, y había poco lugar para trabajar.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><u>Y algo que no sé si fue bueno o malo</u>. Al documentar en la parede contraria al pizarrón, y por la distribución y forma de los bancos, no fue posible para los alumnos simultáneamente seguir a Mariano y mirar la documentación.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Este es el resultado</span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-J6_ITlOSDdc/UZmFTIus6FI/AAAAAAAACT0/A69zHQgYouE/s1600/2013-04-11+21.19.44.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="217" src="http://2.bp.blogspot.com/-J6_ITlOSDdc/UZmFTIus6FI/AAAAAAAACT0/A69zHQgYouE/s400/2013-04-11+21.19.44.JPG" width="400" /></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><span style="font-family: Arial, Helvetica, sans-serif;">Hay innumerables cosas que no me gustaron de mi documentación, pero algo quiero decirles: el cambio positivo del agregado de color fue inmenso. Lamentablemente no saqué fotos del dibujo sin colores.<br /></span><span style="font-family: Arial, Helvetica, sans-serif;">Los alumnos miraron luego de la explicación, y algunos sacaron fotos. Por lo que estimo que le encontraron algo de valor. Espero que les haya servido, y me gustaría que opinen!</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>Juan Gabardinihttp://www.blogger.com/profile/11893371104113602929noreply@blogger.com0