martes, junio 30, 2015

Video: Siete principios de diseño ágil con objetos - Hernán Wilkilson



Excelente charla, con grandes planteamientos de Hernán Wilkinson (@HernanWilkilson) de 10 pines dictada para @agilescolombia.

Va de lo básico, pasando por lo  reflexivo y terminando en lo avanzado, sin perder el hilo y de una forma magistral.

Diría que es de estudio obligatorio para cualquier desarollador y equipo de software.


Los siete principios son:
  1. Favorecer el uso de objetos inmutables
  2. Crear Objetos Completos
  3. Los objetos tienen que ser válidos
  4. No usar setters
  5. usar modificaciones atómicas
  6. no usar NULL
  7. Usar metáforas

Saludos ágiles

Jorge Abad

miércoles, junio 03, 2015

Meetup: Impact Mapping/ Impact Map / Mapa de Impacto y ejemplo para Soluciones de Software

Hola a todos:

El pasado 2 de Junio en la comunidad Ágiles Colombia realizamos un meetup de Impact Mapping (ver links - convocatoria - fotos - )

El Impact Mapping es una excelente herramienta ideada por Gojko Adzic (@gojkoadzic) para garantizar que lo que construimos se encuentra alineado con las necesidades u objetivos del negocio.

Esta herramienta se basa en responder en un mapa mental.


  • Por qué -  Why -  ( Objetivo )
  • Quienes - Who -  (Quienes serán afectados con el objetivo)
  • Cómo - How - (Impacto que afectará a los "quienes" del punto anterior, mi sugerencia en este caso es comenzar a redactar los impactos utilizando el verbos  gerundio  o verbos en infinitivo, de forma que queden en acciones y no en resultados - de esta forma se evita que se confunda con el punto posterior)
  • Qué -  What - (qué ENTREGABLES se construirán para generar esos impactos)


Ver poster a continuación en el cual se resume la técnica:





Cómo resultado se obtuvieron 5 excelentes mapas que comparto a continuación.

  • Evitar el sacrificio de animales domésticos (clic aquí)
  • Optimizar el tiempo de entrega de medicamentos (clic aquí)
  • Reducir el tiempo de atención el las EPS (empresas prestadoras de servicios de salud) en un 50% (clic aquí)
  • Aumentar la recolección de cartera (clic aquí)
  • Reduccir accidentalidad en Medellín (clic aquí)



Dentro de las conclusiones de la sesión se tuvo:

  • Respecto a la forma de priorizar los entregables, se puede hacer una calificación identificando
    1. Los más críticos
    2. Los de bajo costo y alto impacto
    3. Los que más personas impacten
  • Respecto a los beneficios de la técnica se tienen:
    1. Salida del pensamiento puramente técnico de TI
    2. Se desarrollan soluciones que tienen un objetivo tangible
    3. Permite visualizar con claridad qué se va a hacer y por qué
    4. Permite entender el problema y las diferentes soluciones propuestas
    5. Es un excelente ejercicio para lograr el consenso de los interesados
    6. Permite visualizar el ecosistema de las soluciones.

Dentro de los pendientes que me quedaron:

  1. Plublicar los Mapas (¡Hecho !- acá tuve ayuda de los fotógrafos-)
  2. Publicar el link hacia una presentación donde se vincula el Impact Mapping con el User Story Map (-http://es.slideshare.net/chassa/2014-0618srdimpact-mapsstorymapsen - clic aquí) - (¡Hecho!)
  3. Publicar un Mapa de impacto completamente orientado a software.Ver mapa a continuación. (¡Hecho!)






En este mapa se evidencia la posibilidad de escribir historias épicas y por ende ir construyendo el Product Backlog a partir del Mapa de Impacto, usando el formato:

    Yo como QUIEN
    Deseo un QUE
    para un IMPACTO / COMO


Ejemplos:
    Yo como PACIENTE
    Deseo conocer  el LISTADO DE MÉDICOS Y CITAS DISPONIBLES
    Para ACCEDER A UNA CITA DE FORMA RÁPIDA

    Yo como PACIENTE
    Deseo conocer  el CANCELACIÓN DE MI CITA VIA SMS
    Para LIBERAR MI CITA PARA OTROS


---

Gracias a la comunidad por asistir y por permitirme aprender más. Definitivamente la mejor forma de aprender es enseñando y practicando.

Gracias a los compañeros que co-facilitaron la sesión:
- Lucho Salazar (@luchosalazarc) - (el ministro)
- Leonardo Agudelo (@sweepnoise) - (el magnánimo)
- Guillermo Trujillo - (el patrón)
- Robinson Rico Mendez (@rimerz77) - (el coste)


Saludos ágiles
Jorge Abad

domingo, mayo 31, 2015

Calculando el Costo y Tiempo Estimado de un Proyecto Ágil Usando un User Story Map

Hola a todos

Una pregunta constante en las capacitaciones y cuando un equipo comienza a trabajar con metodologías ágiles es:

¿Cómo determino el costo de mi proyecto ágil?

Pues bien, una de las formas es utilizando mapas de historias de usuario (user story maps) y luego asignar valores a las historias épicas encontradas

A continuación les comparto la hoja de cálculo y los tips para usarla.

---
Para hacer uso de esta hoja de cálculo debes saber que es un User Story Map, te recomiendo estos links


Luego de elaborar tu User Story Map, debes tallar las historias épicas con tallas de camiseta  y tu propia tabla de equivalencia de tallas (a continuación te comparto una posible)


S es el pivote o punto de comparación
M Equivale a 2 "s"
L Equivale a 5 "s"
XL Equivale a 10 "s"
XXL Equivale a 20 "s"
XXXL Equivale a 40 "s"




Este tallaje es de acuerdo a la percepción de tamaño que les de el equipo de desarrollo a las historias épicas y buscando que las que son de similar talla queden con misma asignación, por ejemplo así


Paso seguido determinar la cantidad de  "S" por cada release, de acuerdo a la tabla anterior.

Por lo tanto, luego de determinar que en Release "0" tienes  10 historias épicas talla "S" y 3
historias épicas talla " L", equivale a 25 "s"y así hacer con el resto de releases.


---
De la hoja de cálculo recordar que todo lo que esta en Amarillo puede ser modificado.
                   
De igual forma, un estimado no es algo preciso, y por ejemplo afirmar "UNA ESTIMACIÓN EXACTA"es un completo contra-sentido (u oxímoron).

_
Esta hoja de Calculo te ayudará a saber el costo y duración de tu proyecto ágil de forma aproximada.

No olvides leer el los derechos de autor y si tienes mejoras, pues publícalas y compártelas



Saludos ágiles
Jorge Abad

domingo, mayo 24, 2015

Como Jugando Fútbol - Un Símil con Scrum



Hola a todos

Muchas veces cuando comienzo a hablar del marco de Scrum, recuerdo uno de los símiles que escuché en el Ágiles 2014 (sino estoy mal se lo escuche a Pablo Tortorella - @Pablitux), y era que Scrum se parece a jugar fútbol (similar a como Ken Schwaber dice que es como jugar ajedrez [1]).

Se tienen:

  • unas reglas a seguir
  • una cancha
  • un arco
  • un árbitro y unos auxiliares
  • la forma en que se hacen goles y las faltas, 
  • dos equipos
Y dentro de ese marco los equipos juegan, ganan, pierden, se divierten y quien no siga esas reglas - obvio -  no estará jugando fútbol.



Pero la parte en que noto más similitud es en que:

  • se tienen estrategias
  • hay equipo
  • hay un entrenador que motiva y orienta al equipo, 
  • los equipos se adaptan según el transcurrir del partido y el comportamiento del otro equipo.
  • y de igual forma los jugadores interactuan con un objetivo común,  y ese objetivo común logra que se regañen entre ellos, se reprendan, se griten de cancha a cancha pasándose la pelota, se hagan señas y hasta cometan faltas.
Hay pasión, hay sufrimiento, hay coraje y compromiso cada minuto del partido...


Iniciando a Jugar y el Modelo de Tuckman
Observo también, que cuando un equipo inicia a jugar fútbol por primera vez los jugadores no saben mucho del estilo del otro, de sus habilidades y falencias, pero a medida que juegan partidos juntos aumenta la confianza, el lenguaje, la amistad y aparecen estrategias de juego que son útiles para ganar, aun para decidir si necesitan hacer cambios al interior o no.

Similar ocurre cuando un equipo Scrum se comienza a desarrollar, en los primeros sprints no saben quién es quién, quien tiene mejores habilidades, y ni como lograr mejor el backlog comprometido, pero a medida que pasan y pasan los sprints, en los equipos scrum comienza a aparecer la comunicación, el objetivo común, la meta que une, el esfuerzo grupal, el "gritarse" cuando al otro el pasaste el balón y estaba mirando para otro lado - léase, "llamarse la atención mutuamente entre team members  durante el sprint y/o la retrospectiva  por que el otro no estaba  conectado con el Sprint o no colaboró adecuadamente"- . y aquello que no era evidente en la gestión tradicional (dónde cada cual es responsable de su porción de Diagrama de Gantt) y hasta ella misma lo aplastaba si le veía muy revolucionario,  permite Scrum que aparezca: EL EQUIPO AUTOGESTIONADO - El Santo Grial del Agilismo -  responsable de lo que se compromete, un equipo que tiene coraje de superar sus propio estado incial, buscando dar siempre lo mejor de sí, logrando mayor y mejor desempeño en todos sus planos: productivo, técnico y de equipo. 


Nota: les recomiendo leer este excelente post de Martin Alaimo - @MartinAlaimo sobre el modelo de Tuckman  - http://www.martinalaimo.com/es/blog/equipos-estables -  que enlaza perfectamente con lo expresado acá


Bueno esta fue mi corta reflexión de hoy

Hasta la próxima

Saludos ágiles

Jorge Abad


Referencias
[1] <<The word “framework” means that much is not specified and must be devised by those using the framework. I equate Scrum to the game of chess. You can read the official rulebook for chess. The moves, players, sequences, scoring, etc. are all specified. Learn them. Then you can play chess. Maybe your chess game isn’t so good, but you can study great games, strategies, and tactics, and practice to get better and better. However, you are playing the game of chess, so you don’t have the option of changing the rule book. If you change the rules, it’s not chess any longer. Just learn how to play the game with excellence, which is enough of a challenge.>> https://kenschwaber.wordpress.com/2010/09/08/scrum-as-a-framework/ 

martes, mayo 12, 2015

Para los fanáticos de los formatos / plantillas / templates de gerencia de proyectos

Hola a todos

Les comparto esta lista de tres links donde encontrarán templates  por montones:



Saludos ágiles

Jorge Abad

miércoles, abril 22, 2015

¿Y por qué dudamos de la auto-organización de los equipos?

Hola a todos

Hay algo que he notado que es recurrente cuando he dictado entrenamientos o charlas sobre Scrum y es en específico el rol del TEAM /DEVELOPER TEAM / EQUIPO DE DESARROLLO / EL EQUIPO, la primera pregunta que surge por alguno de los presentes es:

¿y cómo logran que se vuelvan auto-organizados?

Es como si dudáramos de nuestra capacidad de

  • jugar en equipo
  • jugar fútbol, baloncesto, rugby, voleibol
  • armar un paseo
  • realizar un asado
  • preparar entre varios una cena
  • jugar un juego de mesa
  • entre otros.


Pero para ser franco, yo siento esa pregunta hecha desde el temor, desde la desconfianza, desde un lugar de la memoria o experiencia  donde a alguien (incluso el mism@ que lanzó la pregunta) que le encomendaron algo no lo entregó a tiempo y para acabar de ajustar todos se dieron cuenta que despilfarro el tiempo en otras cosas sin importancia que no le aportaban al objetivo.

Yo comprendo esos temores - he estado allí - , y es por eso que tal vez:

  • nos aferramos al comando-control, 
  • asignamos tareas
  • asignamos filas de Gantt (hechas en ms project) a diestra y siniestra
  • ponemos "recursos" (que en realidad son personas, y trabajadores del conocimiento), 
  • les imponemos un tiempo calculado por un experto (que no fueron ellos)
  • hacemos micro-seguimiento, o micro-gestión cada ciertas hroas
  • y si se demoran más les decimos que deben pagar o/y mirar como reponer el tiempo.
La verdad tiene sentido, nos han fallado, hemos fallado y nos dominan los temores, y esos temores nos llevan al lado oscuro [1] - como diría Yoda - (al de comando-control - ver más)


Pero Scrum tiene herramientas que enganchan, empoderan y comprometen al equipo:

  • un objetivo de construir cosas listas (Done) a corto plazo.
  • Un planning que establece compromisos
  • El review que verifica si se logró el compromiso o se quedó en deuda  -(ver más en :  La cara del santo hace el milagro. Efectividad del Planning y Review - )
  • la retrospectiva que con su inspección y adaptación nos lleva hacia nuevos retos, y nos saca de zonas cómodas.
  • y el Scrum Master, que es el agente de cambio que esta cuestionando, ayudando a que el Equipo Scrum ( Product Owner, Team Members, y Scrum Master) salga de su zona de confort

Yo veo Scrum, como un buen juego de equipo, como el fútbol que establece:

  • Cancha, roles, y arbitro //unas cuantas reglas claras ( 3 roles, 4 reuniones, 3 artefactos,  ver más),
  • personas que se divierten jugando // un equipo que se trabaja motivado
  • una táctica para ganar // un tablero kanban y un burndown que muestran lo que tenemos que hacer en un ciclo corto de tiempo y si podemos o no lograr la meta.
  • el deseo de meter gol //un objetivo común y claro "generar el mayor valor en el cliente con la menor cantidad de software posible, en el periodo más corto de tiempo"

Observo en los equipos de desarrollo y en especial de scrum la capacidad innata a auto-organizarse. y dudar de eso, es dudar del niño interior que llevamos dentro, de nuestra capacidad de inventar de poco a poco, de ir mirando como dentro de las reglas establecidas todos nos vamos adaptando, de como podemos jugar mejor sin romper las reglas y meter la mayor cantidad de goles/puntos/aciertos/historias de usuario posibles en un periodo de tiempo.

Es dudar de nuestra voluntad de querer hacer un muy buen el trabajo, de querer dar resultado en equipo, es dudar de la capacidad humana y tribal de relacionarse, trabajar juntos y de querer avanzar en conjunto.

Y si alguien no quiere jugar bien

Creo que todos en diferentes circunstancias cuando alguien no juega correctamente en equipo

  • en el partido de futbol/baloncesto/voleibol el equipo llama la atención del que no está conectado
  • en el asado si alguien solo esta allí para ser servido y no colabora "ni siqueira" a recoger, le llaman la atención o no lo siguen invitando
  • la tía regañona que daña el paseo o la cena juntos deja de ser invitada.

Los equipos al verse empoderados, cuestionan a los miembros que no ayudan en el objetivo común, y poco a poco los equipos van encontrando su forma, número, miembros,  modo, identidad y estilo; y es trabajo del scrum master lanzar las preguntas para que el equipo se conecte, reflexione, inspeccione, adapte y avance.

Cerrando

A mi modo de ver dudar de la auto-organización es dudar de nuestra naturaleza humana.

Cierro con esta frase :"La auto-organización no es una opción en Scrum; es un principio básico. Sin ella  nunca tendremos equipos de alta performance [2]




¿Ustedes que piensan? Queda abierta la discusión

Saludos Ágiles

Jorge Abad


----------
Otra lectura recomendada de este blog: Cualquiera puede ser ágil / Cualquier equipo puede ser ágil


--

[1] "El miedo es el camino al Lado Oscuro.
El miedo lleva a la ira.
La ira lleva al odio.
El odio lleva al sufrimiento.
El sufrimiento al Lado Oscuro.
Cuidado con el miedo, joven padawan." - Maestro Yoda

[2] Hundermark, Peter (traducido por Cyment, Alan) . Un mejor Scrum  -  http://www.scrumsense.com/wp-content/uploads/2012/03/Un-mejor-Scrum-2.pdf