Archivo de la categoría: Agile

Las 5 disfunciones de un Sprint Planning

Hace poco facilité un Spring Planning en el que todo fue mal. Sólo un miembro del equipo se comunicaba con el Product Owner y el resto se quedaba callado protegido por el muro que ofrece la distancia y la audioconferencia.  Justo al terminar me llegó la información por parte de algunos miembros del equipo de que lo planificado en el sprint no tenía sentido, que no habíamos tenido en cuenta ciertas cosas.  Cuando lo escuché sentí que lo que de verdad no tuvo sentido fue la reunión en sí misma ya que no se pudo pactar el objetivo del sprint.

Hace poco me leí el libro de Patrick Lencioni sobre las 5 disfunciones de un equipo.  En este libro en forma de novela se tratan los problemas que suelen tener los equipos que no consiguen trabajar de forma colaborativa y estas disfunciones acaban viendose en los sus resultados. Estas mismas 5 disfunciones se dieron juntas en el propio Sprint Planning y voy a explicar por qué. Espero que  te ayude a identificar si ocurre lo mismo  en tu equipo Scrum.

5 Disfunciones de un equipo

Ausencia de confianza.
El equipo debe tener la misma confianza que tiene cuando se reune con sus amigos a hablar de fútbol. Debe poder ser capaz de preguntar todas sus dudas, levantar la mano  y decir lo que se le ocurra como “no lo entiendo” o “lo que dices no tiene sentido”  y hacer estimaciones sin miedo a represalias. Yo he participado en Sprint plnnings en los que además de los miembros del equipo Scrum había varias personas de la PMO (Project Managemenet Office) monitorizando y atendiendo a todo lo que se iba diciendo. Esto no ayuda a que el equipo se sienta cómodo y seguro en la sesión. Hay que estar atento a estas personas como por ejemplo algun lider técnico que reprocha cualquier intervención de sus compañeros con aire de superioridad
Mi compi de GFT @fedcasabianca como apertura de un curso sobre retrospectivas nos pidió valorar “¿Cuanto de seguro te sientes sobre dar tus opiniones?”. Esto es muy importante evaluarlo antes de empezar un Sprint Planning. Además identifica si hay gente conectada de forma remota o asistiendo en la reunión que no han sido invitados por ninguno de los miembros del equipo Scrum. Preguntadles cuál es su rol para la reunión de sprint planning. Recuerdales el objetivo de la sesión y que quizá lo dificultan con su presencia (Principio de Incertidumbre). Sí notas que afecta al equipo y está dentro de tus posibilidades, intenta que no asistan. Lo importante es el propio equipo y que se sientan seguros .

Temor al conflicto
Cuando el equipo no se siente seguro en la sesión de planificación no surgen conflictos. No se discute nada.  El Product Owner dice cómo lo quiere o todo lo que necesita que esté en el sprint y el equipo asiente sin discrepar. O el considerado lider técnico da una valoración o una solución técnica y el resto la asume sin ponerla a juicio. En una sesión de Sprint Planning debe haber mucha comunicacion entre todos los miembros del equipo Scrum, incluyendo sobre todo quien es la voz del producto. Toda persona que no discuta un tema lo más seguro es que no lo haya entendido bien y tenga que preguntar qué hacer o cómo hacerlo a mitad de sprint, poniendolo en peligro.
Como herramientas en las planificaciones que ayudan a disminuir esta disfunción se viene usando el Planning Poker. Precisamente se usa porque al poner las cartas todos boca abajo y darles la vuelta a la vez, todos dan la estimación sin conocer la del resto. Cuando un miembro del equipo da una estimación que discrepa de las otras, debe hablarse (generarse el conflicto necesario) para que su opinión se tenga en cuenta o al menos se escuche y evalue. La persona que ha dado esa estimación distinta debe quedarse con la sensación de que al menos se ha escuchado su criterio.

Falta de compromiso
Según la guía de Scrum cuando termina el Spring Planning, el equipo y el Product Owner acuerdan un objetivo de sprint. La palabra “acuerdan” es muy importante. No es una imposición al equipo por parte del propietario de producto.  El equipo es la unica entidad que establece la cantidad de trabajo que puede asumir. Sin embargo, en muchos equipo no es así o los propios miembros no lo ven así. La tradicion waterfullista de agendas apretadas ha calado durante muchos años y algunos equipos esperan que les impongan los backlog item a meter en el sprint sin tener en cuenta lo que realmente pueden hacer. Esta imposición provoca que los que van a desarrollar no sientan que ese objetivo les pertenece y no lo asuman como propio.  Cuando esto ocurre puede pasar que finaizar el planning y alguien diga  “Eso no lo hacemos ni de coña”. O peor aún, se asuma de forma silenciosa independientemente de cómo acabe todo.
El equipo debe sacar a la luz cuánto de realista el es objetivo de sprint antes de dar el objetivo del mismo por pactado. Para ello una herramienta que se usa es la votación con el puño de cinco.  Se les pregunta a los miembros del equipo de desarrollo cuánto de realizable es el objetivo del sprint con valores entre 0 – “Ni de coña” y 5 – “Lo hacemos con la patilla”.  La votación de cada uno lo tienen que mostrar en conjunto levantando la mano por encima de la cabeza sin verse influenciados por el resto.  Si se está en remoto se puede usar una herramienta tipo planning poker remota para esta votación. Es importante que quienes pongan valores bajos expongan sus razones. Quizá saben algo que el resto no.

Evitación de las responsabilidades
Cuando el equipo siente que el objetivo del sprint ha sido impuesto, lo trabaja sin sentirlo como suyo. Eso hace que por ejemplo cuando se ve acercarse el final de sprint y se detecta que quizá no se puede entregar todo, no les importe y no tengan el compromiso de colaborar entre todos para conseguirlo. Con esto no estoy hablando de hacer horas extras. Con esto quiero decir que el equipo  no tiene el sentimiento en que en parte se han fallado a ellos mismos y no sienten la necesidad de mejorar como equipo sprint tras sprint. Sin esta sensación no tienen la motivación suficiente para llegar a convertirse en un equipo de alto rendimiento.
Para detectar y mejorar esto, en las retrospectivas al final del sprint se debería evaluar las razones por las cuales algo ha salido del objetivo.  El Product Owner, aunque sin llegar al reproche, sí debería transmitir la importancia de intentar cumplir el objetivo pactado, sobre todo si el no cumplirlo es algo que ocurre de forma frecuente. El alto rendimiento debería ser objetivo de todos y si a nadie le importa que no se entregue todo, el equipo puede llegar a la autocomplacencia y estancamiento.

Poca atención a los resultados
Todas estas disfunciones concluyen en que el equipo no siente el producto como suyo.  No sienten los triunfos del resultado de su trabajo como suyos. Por ejemplo no les imporata cuando se consigue que el producto llegue a hitos como una alta tasa de descargas o uso por millones de personas. Tampoco sienten como suyos problemas que afectan al producto como por ejemplo el no haber conseguido activar la campaña de Navidad a tiempo y perder muchisimas ventas. Cuando estos problemas ocurren puede ser normal en un equipo disfuncional echar la culpa a elementos externos como “a quien gestiona el proyecto”, a “negocio” o a otras partes implicadas.  Sencillamente es un equipo que va “fagocitando” historias de usuario del backlog y convirtiendolos en software funcionando sin mayor visión. Esto puede ocurrir independientemente de si se usa Scrum, Kanban o Waterfall como metodología.
Para detectar esta disfunción es tan fácil como ver si al equipo le importan metricas de producto como número de usuarios, funnels de tendencias de uso, las opiniones de los usuarios, etc.. Hazte preguntas como: ¿Le suelen preguntar al Product Owner sobre cosas relativas al uso del producto? ¿El Product Owner les comparte el avance del producto, a dónde quiere que vaya en medio largo plazo y para el equipo es algo que le interesa?

He creado este formulario de Google  para recordarme y ayudarme en los Sprint Planning a recabar esta información sobre estos problemas. Espero que en dos o tres sprints haciendo esta evaluación y usandolo como dato en las retrospectivas  me ayude a identificar estas disfunciones y estudiar entre todos formas de mejorar. Feel free de copiartelo o adatarlo.

Autogestión en equipos dentro de consultoras – Novela corta de ciencia ficción

Amanece en la playa Muchavista, situado a media distancia entre la población de Campello y la ciudad de Alicante.  Ya se ve bastantes corredores aprovechando el buen tiempo para estirar las piernas a lo largo del paseo marítimo. Los barrenderos limpian los últimos restos y vasos de Mac Donalds dejados por los paseantes nocturnos antes de dar paso a un día que promete tener bastante ocupación de la playa.

Sin embargo, el verdadero movimiento no está precisamente en la arena. A pocos metros de la misma se ve un chico de 30 años, de pie mirando al mar y disfrutando de su café en una taza en la que se lee las palabras “Clean Code”. Da los últimos sorbos, deja la taza en una mesa del jardin y estira sus brazos y piernas para despertarlos después de una noche de sueño reponedor. Javier y su equipo son miembros de una consultora internacional, HGY,  que da servicio a grandes corporaciones financieras. Son un equipo 100% autogestionado dentro de la compañía, y muy disputado entre los clientes de la misma.

Javier recoge la taza y se va al interior de la pequeña casa de dos plantas con vistas al mar.  Deja atrás el pequeño jardín algo dejado a su destino al que nadie presta atención. Atraviesa la cocina  y sube los escalones que dividen la casa entre la planta en la que Javier y sus compañeros de equipo descansan y comen de la planta donde trabajan. El clac, clac, clac de un teclado mecánico le devuelve a Javier a la realidad del trabajo, y le produce una sonrisa.

– Diego, ¿Cómo fue la revisión de lo que entregamos ayer por la tarde a Banco Palomo? ¿Tenemos ya algún comentario de Daniel, nuestro querido Product Owner? – Pregunta tirando  una pelota de malabares que había encima de una de las mesas a  Diego, un miembro del equipo que estaba revisando el tablero Kanban del proyecto.

– De momento no, hay que dejarles que respiren. La entrega de ayer por la mañana les encantó como bien nos dijeron. Un par de días más y creo que ya tendrán el producto que esperaban. Bueno el que ni siquiera se esperaban. – Responde Diego cogiendo la pelota al vuelo, para sorpresa de Javier.

Diego tiene un poco más de edad que Javier pero, al contrario que él, aún no se le asoma ninguna cana.  Es especialista en sistemas web y entre él y Raúl han desarrollado casi todos los interfaces de usuario del sistema Peer Loans, que permite al banco que sus clientes elijan a quién prestar el dinero de sus depósitos.

– ¿Sabemos algo de Héctor? Desde que cogió el avión a Tailandia con su novia Malai no hemos recibido ninguna de sus fotos empalagosas de parejita feliz. – Pregunta Raúl sin mover la cara del monitor de 32 pulgadas en el que va añadiendo pruebas automatizadas para empezar a desarrollar uno de los últimos módulos de Peer Loans. –  Eso me recuerda que tenemos que revisar a los últimos candidatos para reemplazarlo. –

Raúl es un chico de 33 años, experto en lenguajes web y siempre viste con camisetas de Dragon Ball. Lleva en el equipo 3 años y siempre le acompaña su mujer y sus dos hijas allí donde vayan a trabajar.

– A mi me gustaba Jesús, le da a los dos palos de back y front con la suficiente soltura como la que necesitamos. Además es un miembro respetado del Meetup Full Stack Dev Alicante. – Dice Eva acercandose al monitor de Raúl  – Podemos hacerle una visita o quedar en algún bar para hablar con él. Si le gusta el sueldo que le ofrecemos, que seguro que lo hará, estará con nosotros en un par de días. –

Eva es la chica  de QA, de casi 40 años, y en los últimos años ha hecho un gran trabajo inculcando conocimientos sobre casuísticas de tests a los miembros del equipo. Tiene facilidad de palabra y habla muchos idiomas, lo que le permite estar en comunicación constante con los clientes para prevenir todos los escenarios posibles.

– Raúl, no te olvides del buffer overrun en el tratamiento de este campo –  Le dice Eva a Raúl acercándose a su hombro – Por cierto, buen trabajo con estos escenarios. – Una sonrisa de satisfacción casi imperceptible asoma en el rostro de Raúl mientras ejecuta los tests. Una columna de puntos rojos de tests fallidos le indican que es momento de empezar a trabajar en ese trozo de código.

–  No olvidemos que en un par de semanas tendremos nuevo proyecto. A este le quedan sólo un par de coletadas.-  Recuerda Javier desde su puesto de trabajo abriendo la página de la tecnológica Dell y buscando un servidor nuevo para su sistema de integración continua- ¿Habéis revisado últimamente la lista de posibles proyectos? –

Diego se acerca jugueteando con la pelota de malabares a su puesto. Pulsando un botón de su portátil pone en iluminacion su gran monitor así como los leds de su teclado y ratón. Sin sentarse coge el ratón y abre la lista de proyectos que los clientes de HGY les ha enviado. Su éxito con la nueva herramienta de Banco Palomo ha hecho que sean uno de los equipos más solicitados de toda la consultora y prácticamente de toda Europa.  Los honorarios que ellos mismos solicitan son altos pero hay muchos clientes a los que no le importa gastar un poco más para tener a estos chicos a su disposición.

– Ja, ja, ja. ¿A que no adivinais quién nos pide volver a trabajar con ellos? – Suelta Diego riéndose con las manos detrás de la nuca.

Eva y Javier se acercan a su monitor y se unen a Diego en las risas.

– ¿Podemos reirnos todos? – Suelta socarronamente Raúl sin levantar la mirada del monitor y sin dejar de teclear.

Eva, apoyada en la espalda de Diego, se vuelve a Raúl y le dice con una gran sonrisa – Nuestro “amigo” Financial Bureau quiere que le hagamos el sistema de banca con Realidad Aumentada igual al que le hicimos a Banco Marsella. –

–  ¡ Ni de coña ! – Suelta tajantemente Raúl mientras vuelve a ejecutar la lista de tests.  Ahora una columna de puntos verdes remplaza a los rojos, indicando que su cambio ha funcionado a la perfección. Aprovecha para girarse y mirar al resto del equipo. – ¿Os acordáis de lo impertinente que fue el CIO? Nos obligaba a trabajar a través de su entorno virtual. Como si nuestro entorno de red cifrada no fuera menos seguro que el suyo.  Quiere velocidad y calidad y nos da un martillo y un cincel para escribir código.  ¿Hay algun proyecto en Tailandia?  –

– Tú lo que quieres es intentar que Héctor vuelva con nosotros. Si encontramos una oficina cerca de donde van a montar la Startup estarías visitándole a todas horas. – Le dice Eva mirando la lista de posibles clientes.

– No. Es que allí tiene la oficina central Jurgen Fowler, el experto en EcmaScript 11, y que lideró su definición. – Responde Raúl, con media sonrisa –  He estado en comunicación con él últimamente y creo que nos puede preparar un curso intensivo al menos unos días si estamos por allí. El precio que pone es asequible y algunos lo necesitáis bastante… –

– Venga, me apetece empezar a codificar ya. ¿Qué os parece que hagamos una ronda de 3 pomodoros? – Sugiere Diego dirigiéndose a su silla. Esta idea hace que Javier y Eva también vayan corriendo a sus sillas y Raúl haga crujir sus dedos preparándose para una sesión intensa. – Pongo el crono de 25 minutos en marcha.  Empezamos en  3,2,1… –

El sol ya está iluminando con fuerza la arena y los primeros bañistas entran en las aguas de la playa Muchavista. Javier y su equipo están ya concentrados trabajando el resto día para terminar lo poco que le queda de su asignación actual. En un par de semanas, en la fachada de la casa colgará un cartel de “Se alquila”. El equipo se habrá desplazado a un lugar algo más montañoso, por sugerencia de Eva. Sólo ellos mismos saben cual será el siguiente proyecto y lugar en el que trabajen. Son dueños de su propio destino.

FIN

Esta historia, que es naturalmente una historia de ficción, representa una imagen que a día de hoy parece imposible de conseguir en equipos que trabajan para consultoras. Hemos visto algunos ejemplos de decisiones en manos en un equipo totalmente autogestionado, aunque puede haber más. Estos equipos:

  • Deciden quién entra y quién se va de su equipo
  • Deciden su sueldo
  • Deciden su proyecto
  • Deciden dónde trabajan fisicamente
  • Deciden sus herramientas
  • Deciden su formación
  • Deciden cuándo toman vacaciones

Cuando un equipo llega a estos niveles de autonomía, logran una gran motivación y eficacia, lo cual les convierte en un equipo de alto rendimiento y para los clientes se traduce en productos de gran calidad e innovación. Sin embargo para llegar a estos niveles hace falta que tanto los miembros de los equipos como los directivos de las organizaciones tengan como meta conjunta esa autogestión. Los directivos y cargos intermedios tienen que aprender a delegar aunque suponga que al principio cometerán errores. Pero también cada miembro del equipo debe responsabilizarse del poder que se le da y saber dar el paso adelante para tomar esas decisiones. Aunque no lo parezca, tan difícil es lo uno como lo otro. Pero ¿quién sabe?, la ciencia ficción a veces se convierte en realidad. Todo camino empieza por un primer paso ¿Qué tal si empezamos por que los miembros de tu equipo puedan  autoasigarse las tareas?

 

 

Día 1 en la Conferencia Agile Spain 2017 en Sevilla

Keynote de Ramón Cabezas.  @RamonCabezas
Human & Digital Transformation
Ahdalid.com Kaps.es

Estuvo hablando de la transformación digital y la importancia de tener al cliente en el centro.  Enseñó un par de sus productos que se diseñaron teniendo eso en cuenta. como un pulsador para que te llame alguien para gestionar un accidente y el usuario no tenga que buscar los papeles del seguro o a quién llamar.

 

Jerónimo Palacios.  @giropa832
Scrum Studio

Habló de Scrum Studio, un framework diseñado por Scrum.org. Es una célula de trabajo totalmente independiente de la empresa y con los elementos imprescindibles para que pueda trabajar de forma autonoma y ágil. Va tomando proyectos poco a poco de la empresa madre y haciéndolos de forma ágil. Tiene la autoridad para  tomar y echar gente de sus equipos. La idea es que vaya fagocitando poco a poco al resto.

Tanto es su potencia que puede ocurrir el caso que le ocurrió en la que el CEO de la empresa acabó terminando la célula ágil.

Frase: Culture eats Agile. Al final, las personas de poder que no quieren perder su autoridad acaban por destruir los intentos de implantación de cualquier sistema ágil a escala.

El CIO  se transforma para dar Leadership services, lo que necesita esa celular para funcionar como una empresa autónoma: RRHH, contable, …

Hay que cambiar la visión de proyectos (algo que cuesta dinero) a producto (algo que genera valor y dinero por ende a la empresa)

La gestión se hace mediante Evidence based management (Scrum.org).  Basado en el triángulo MEASURE, IMPROVE, DIAGNOSE.

Existe un Scrum Development Kit que miraré  bien 😉

 

Toño de la torre. @adelatorrefoss
Discusiones y decisiones: herramientas para la efectividad

Primero hizo un disclaimer que todo venía del libro de Gamestorming y retrospectivas. Habló de conceptos básicos del gamestorming como los juegos de apertura para generar ideas, de exploración para categorizarlos y formar ideas procesadas y juegos de cierre para acabar con una decisión. También estuvo explicando varias dinámicas de gamestorming para trabajo colaborativo .

 

Israel Alcazar.  @ialcazar
Equipos de alto rendimiento

Matriz de autoridad de Richard Hackman. Parecido a la matriz de delegación de Jurgen Appelo pero más alto nivel.

Auto-organización. El equipo decide la forma de trabajo
Auto-diseño. El equipo decide qué necesita miembros o ya no.
Auto-gobierno. El más alto nivel, como si fuera una cooperativa de socios

Alto-rendimiento es una suma de resultados satisfacción y motivación. Es importante tener objetivos claros, entorno seguro y  responsabilidad compartidas.

Habó de las 5 disfunciones del equipo, del libro de Patrick Lencini

Jerarquía es como comunicación padre-hijo como trata el Analisis transaccional. Tratando al trabajador como un padre que trata al hijo hace que el hijo se comporte como rebelde o apagado.  El equipo necesita autonomía y responsabilidad.  Lo cual se trabaja con una combinación de confianza, delegación y feedback. Un entorno de confianza es el que se debe conseguir como mínimo en las retrospectivas. Comentó que se encuentra con que en las primeras retrospectivas los miembros sólo “sueltan mierda” porque tienen muchos problemas acumulados que necesitan decir y las retrospectivas es la primera oportunidad.

Las herramienta de evaluacion de equipo deben ser usados por los propios equipos. Conflicos/Cohesion/Eficacia

La evolución se hace mediante una serie de pasos en espiral con varias iteraciones. No necesariamente en el mismo orden

  1.  Proposito
  2. Conexión (empatía).  Aportación como persona
  3. Acuerdos (Roles, Reuniones, Formas de trabajo)
  4. Seguridad a trabajar en las retrospectivas
  5. Autoconocimiento (capacidades)  funcional, llegar a identificar los Roles de Belbin (explorador, investigador, coordinador..)
  6. Consciencia
  7. Autonomía
  8. Responsabilidad

Jose Ramón Díaz. @joserra_diaz
Taller de Liderazgo para la transformación. 

Empezamos haciendo una definición de liderazgo entre todos. Salieron conceptos como capacidad/habilidad, conocimiento referente, personas, sigues, empatizas, objetivo/visión, moviliza gente, forma consciente/inconsciente

Cuando una persona tiene autoridad se la da poder, principalmente para que aporte una dirección, de orden y protección. En sociedades democráticas está asignación ocurre de abajo a arriba y en empresas normalmente de arriba a abajo.

Cuando es autoridad formal se asigna a una persona por parte de la dirección. Cuando es autoridad informal ocurre a través de la confianza.  Cuando son distintas las personas que tienen ambas ocurren los conflictos.

Después idenficamos las características de un buen seguidor. Identificamos características como  empatía, ser crítico, autonomía, fidelidad .., Después se nos pidió identificar cuales de esas características no corresponde con las de un buen lider, descubriendo por nosotros mismos que no las había. Son las mismas características.

¿Para qué necesitamos un lider?

Hay ciertos problemas que requieren conocimiento técnico como puede ser lo que ocurre cuando un médico de urgencias pide y ejecuta todo lo necesario ante un paciente que llega con una parada cardíaca. También hay problemas de tipo adaptativo que tienen que ver con el trato a personas y gestión de conflictos y que requieren un líder con valores.

Definición Liderazgo: Process of mobilizing groups to engage its challenges developing its skills for their progress and well-being.

Las conversaciones normalmente tienen un umbral de conflicto (con su nivel máximo y mínimo) que representa la zona de aprendizaje. Es importante para el líder hacer que los conflictos se mantengan en esta zona, sin que esté por debajo y no permita aprender o por encima y el conflicto tenga consecuencias negativas.

Un reto conlleva a tomar acciones lo que lleva a estar en la zona de conflicto.  ¿Cómo se sabe que está en la zona correcta?  El líder va girando entre  Observar, Interpretar y Actuar. Debe proteger el liderazgo que surge en estas conversaciones para no parar el proceso en si mismo y el propio liderazgo expontaneo.

Terminamos definiendo acciones para un reto elegido entre todos e identificando si las acciones requirieren de un líder más técnico , si requiere autoridad por parte de la compañía o un líder con valores.

 

Marta San Martín. @MartaSanMartin
Introducción al coaching. Cómo tener conversaciones diferentes

Marta nos enseño la técnica del Mirroring en la que se escucha a la persona que tiene un problema sin darle soluciones ya que normalmente esa persona tiene todo el conocimiento necesario. Hay que hacerle preguntas abiertas tipo “¿Cómo’, ¿Cuándo?, ¿Quién?, ¿Dónde?. La pregunta de “¿Por qué ?” no es recomendada porque normalmente crea en la persona que explica el problema una justificación que puede crearle incomodidad. Una cosa que sí se puede hacer es interrumpirse y refrescar para hacerle ver que se está escuchando con atención.

Hicimos el ejercicio de Mirroring en parejas, al final de cual explicábamos el uno al otro cómo nos sentíamos tanto el que explicaba el problema como la persona que hace de coach. Entre uno y otro hicimos un ejercicio de mindfuldness aprovechando que Marta es certificada y experta en el tema.

 

Keynote de Marta Pinillos. @pinillos_marta
La voz, la clave del éxito en tu comunicación

En este divertido e increíble keynote de despedida, Marta explicó la importancia de la comunicación ya que es el más usado. Realmente la comunicación cara a cara es un valor ágil por lo tanto hay que darle importancia a la voz para transmitir correctamente los mensajes.

  • Ritmo: el ritmo correcto debe ser entre 130 a 150 palabras por minuto. Si es menos el emisferio derecho que el que procesa de forma rápida se queda “dormido”.
  • Volumen. Hay que manejar el volumen, bajando en las partes importantes más que subirlo para no parecer una verdulera.
  • Tonos: Hay que tener 5 tonos de voz distintos y saber manejarlos.
  • Modulación. Manejar la modulación haciendo cambios de riemo. No debe haber un ritmo constante para mantener la atención.
  • Dicción. Saber marcas las consonantes en las palabras importantes
  • Pausas. Hacer 4 ó 5 pausas ¿por minuto?
  • Entonacion. Saber marcar las palabras
  • Respiración. Tener una respiración diafragmatica y un tono no agudo porque aporta seguridad y credibilidad.

Con esto terminó el primer día. Muchas cosas descubiertas y a tener en cuenta.

SPIKES de investigación para reducir incertidumbre y estimar mejor con Scrum

En los equipos que se usa Scrum, es normal enfrentarse con integraciones con otros sistemas (PlugIns, servicios, SDKs,..)  de los cuales no se tiene suficiente conocimiento para poder estimar con precisión cuánto se va a tardar. Planificar una historia de usuario que incluya esta integración puede hacer variar el total de puntos realizados al final del Sprint, según haya sido más fácil o más difícil esa integración.

Para resolver esa incertidumbre, lo que hacen algunos equipos es añadir un SPIKE al Sprint previo a la propia historia de usuario. Un SPIKE no tiene puntos de historia asignados sino un deadline de término. Una vez resuelto el SPIKE y sabiendo cómo se hace esa integración, se puede estimar en el siguiente Sprint de manera más precisa.

Sin embargo, a esta aproximación le veo dos problemas y es la razón por la cual no suelo usarla.

  1. Al planificar un Sprint en el cual hay SPIKES sin puntos asignados, no se puede equiparar el numero de puntos del Sprint anterior (o la media de los últimos) . Ese SPIKE puede ocupar una parte significativa del propio Sprint y al final se completarán más o menos  puntos de historia según ese SPIKE acabe siendo más o menos costoso.  Por lo tanto, creando un SPIKE previo sólo estás retrasando la incertidumbre de la integración al Sprint anterior del que se desarrolla la propia historia de usuario que  usaría ese componente.
  2. Para resolver la investigación y desenmascarar todos los posibles problemas, normalmente se necesita trabajarlo tanto que su inclusión en una historia de usuario es casi directo. Por lo tanto personalmente prefiero que todo este trabajo que se ha hecho se vea reflejado en una historia de usuario, aunque sea sencilla, y permita el feedback del usuario/Product Owner al término del propio sprint sin tener que esperar uno más.

¿Qué opinas? ¿Usais SPIKES de investigación previa?

 

 

Eficacia vs Eficiencia en Scrum

Llevo tiempo dandole vueltas

Ultima mente creo que estoy dando el mensaje incorrecto sobre Agile, que no persigue la eficiencia ya que waterfall es mas eficiente. Todo esto surge de una de las lineas que vi como propuesta del Manifiesto Lean Kanban. No hay sistema teoricamente más eficiente que el waterfall. Cada fase está realizada por un equipo especialista que, sin cambio de contexto, pasa todo su trabajo de una a la fase siguiente. Sin embargo waterfall falla en cuando hay cambios a mitad de proyecto, o cuando hay alguien que no hace perfectamente su trabajo. Cosas que ocurren el 100% de los proyectos. Sin embargo, un equipo que pasa de waterfall a scrum tiene sensación de perdida de eficiencia por las siguientes razones:

  • Reworking. Cada vez que se enseña el software al cliente existe la posibilidad de que toque rehacer algo. Implica cambiar cosas que has hecho en un sprint en el sprint siguiente. También para que el software sea entregable al fin de sprint muchas veces hay que hacer trabajo extra para dejarlo listo.
  • Tener que integrar en cada sprint hace que se tenga que cambiar el contexto continuamente. Si desde el sprint 1 el equipo está peleando con integraciones, a primer momento parece no ser tan eficiente como estar solamente desarrollando. Sin embargo, esto convierte el gran problema de la integración final en una molestia desde el primer sprint.
  • Reuniones de Scrum : planning, daily, review y el refinement. A los equipos a los que se les tradicionalmente se les da una lista de tareas sin mayor explicación, les parece que son innecesarias todas estas reuniones… “Era más productivo cuando se me daba la lista de tareas”.

Sin embargo, aunque no lo parezca Scrum hace que un equipo pueda llegar a ser mucho más productivo. Como indica el titulo del libro de Jeff Sutherland, se puede llegar a entregar el doble de valor en la mitad de tiempo que con metodologías tradicionales. Aunque esto no se consigue por la metra transición a Scrum y mucho menos en el primer sprint. Lo que sí que permite es el marco para que el equipo consiga gran eficiencia. ¿Cómo?

  • Promoviendo que no se haga más de lo solicitado (“make the right think done”). No se debe escribir una sola linea de código que no tenga que ver con el objetivo de la historia de usuario y no se debe hacer una sola tarea o historia que no esté dentro del objetivo de sprint.
  • Protegiendo al equipo de las interrupciones. El equipo está expuesto a interrupciones para hacer burocracia, explicar o documentar su progreso y hacer cosas que no tienen que ver con su objetivo de sprint. El Scrum Master es responsable de proteger a los miembros del equipo.
  • Focalizando las reuniones. Cada reunión Scrum tiene su objetivo y su ventana temporal. Esto hace que las reuniones mismas sean más productivas y permite que durante el tiempo en la que el equipo no está reunido (work time) no tenga que cambiar de contexto por culpa de ellas. Hay que detectar y minimizar o eliminar las reuniones sin foco y que no aporten nada al equipo o producto.
  • Mejorando la comunicación del equipo, haciendo que estén mas coordinados y tengan menos esperas y colisiones entre ellos.
  • Acercando el feedback y testing al momento de desarrollo. Esto hace que la corrección tarde hasta 20 veces menos que si se hubiera hecho semanas después.
  • Permitiendo al equipo pensar de qué modo mejorar a si mismo. Al juntarse en las retrospectivas les permite analizar cómo eliminar los impedimentos y desperdicios (waste) para hacer más y más puntos de historia cada sprint.
  • Permitiendo hacer experimentos de mejora durante un sprint y evaluar si seguirlo o no. Un equipo puede probar algo que parece una locura durante un sprint y evaluar en la siguiente retrospectiva su resultado. De este modo es posible encontrar modos ingeniosos de mejorar la productividad sin poner en riesgo el proyecto.

La proxima vez que explique Scrum, no olvidaré en contar ambas facetas (efectividad y eficiencia). Efectivamente se prima la efectividad ante la eficiencia, pero hay que transmitir que se puede conseguir mucha más eficiencia con equipo Scrum que en equipos tradicionales.

 

 

La importancia del término “software funcionando”

Uno de los 12 principios ágiles dice claramente “El software funcionando es la medida principal de progreso”.  Esto puede parecer muy claro cuando se están leyendo los principios de inicio a fin pero tiene aspectos que deben tenerse en cuenta.

¿Qué significa “software funcionando”? Seguramente haya tantas respuestas como ingenieros tecleando código. Una forma de llegar a un consenso de equipo sobre los criterios que lo forman es hacer entre todos la Definition of Done (DoD). Estos criterios pueden contener aspectos como mínimos de cobertura de test, de validación de código según reglas de Sonar u otro analizador, de tests manuales realizados por un QC, etc .. y no servir absolutamente para nada.

Hace poco en un proyecto subestimé la importancia de lo que significa “software funcionando”. Me di cuenta de que debe contener todos los criterios que hagan del sofware que se está produciendo una herramienta real y completa. Con completa me refiero a que de nada  sirve probar historias de usuario ejecutadas sólamente con datos moqueados porque los servicios web (que posiblemente haga un tercero) no están listos, tampoco sirve que estas pruebas se ejecuten en un entorno que no tiene que ver con el entorno real en el que se va a vivir la aplicación… Si en el proyecto faltan integraciones, fases de deploy o cualquier otro paso posterior  estamos desarrollando en un sistema Waterfall por sprints, no estamos en un proyecto Agile.

Si no vamos realizando todas las fases imprescindibles (from concept to cash) de todas las historias de usuario completadas, estas no serán más que papel mojado y al terminar “nuestro trabajo” entraremos en un entorno de incertidumbre sin saber cuándo va a funcionar de verdad todo eso que hemos estado enseñando en los Sprint Reviews. El cliente seguramente ya no creerá en el proveedor cuando le muestre el progreso en historias completadas y perderá la confianza en eso que llamamos Agile.

Para evitar estos problemas, asegurate de tener el entorno real (o como el real) lo antes posible, asegurate de integrar todas las piezas conforme se va construyendo el software.  Si no lo consigues porque está fuera de tus dominios, al menos, ten claro que ha dejado de ser un proyecto Agile.

 

A vueltas con el Manifiesto Lean Kanban

Hace un par de semanas vi este tweet de David J Anderson, creador de Kanban para desarrollo de sofware. Sé que hace tiempo que viene dandole vueltas a tener un manifiesto Lean Kanban y no sé si este será finalmente el que tomen pero sí tiene muchos puntos para reflexionar. Empieza así:

I believe in…
Empirical Process over Defined Process
Kanban, Scrum y otras metodologías ágiles están basados en el empirismo: transparencia, inspección continua y adaptación. Definir los procesos es necesario para estandarizar el trabajo y buscar mejores formas de hacerlo pero la situación real de cada momento es lo que manda.

System Thinking over Analytical Thinking
System Thinking se caracteriza por visualizar cualquier trabajo u operación como una serie de pasos interconectados que forman un flujo. Una vez definido y estandarizado este flujo de trabajo es posible ser ejecutado por más personas sin depender de un análisis concienzudo de cada petición de cliente por parte de dirección. Permite escalar una organización, buscar la mejora contínua y el empowerment de los que trabajan en ella. 

Effectiveness over Efficency
A esta le estuve dando muchas vueltas. Siempre se piensa en la eficiencia como algo que hay que perseguir pero, ¿es realmente lo más importante?. Pensando en cualquier sistema adaptativo, lo primero que hay que conseguir es un resultado de la manera más simple y lo antes posible con los medios y los conocimientos que se tienen en el momento de empezar. Por ejemplo, si el cliente piensa en tener un coche dentro de un año, nosotros le entregamos un monopatín en dos semanas. Realmente no es la forma más eficiente de trabajar ya que podríamos empezar a construir el coche sin tener que rehacer nada, pero podríamos fallar completamente buscando la forma más eficiente desde el primer momento. La eficiencia se busca poco a poco, historia tras historia, iteración tras iteración. Hazlo ya, vuélvelo a hacer de forma más eficiente, hazlo otra vez de forma aún más eficiente, y otra y otra…
Flow Efficiency over Resource Efficiency
Tradicionalmente se ha intentado aprovechar mejor los recursos individuales que ocuparse en el flujo completo de valor, desde la primera fase hasta la última. La gente de backend haciendo servicios a todo trapo sin que posiblemente los de front end tengan tiempo de integrarlos a tiempo. Es como si yendo un grupo de amigos en varios coches a un concierto cada coche fuera lo más rápido que pudiera sin pensar en el resto de amigos. Hacer esto no sólo no sirve para nada porque el coche más lento es el que define a qué hora entrarán sino que provocan problemas de sincronización que hace que vayan aún más lentos.
Small Batches over Big Batches
Trabajar en pequeños lotes tiene una serie de ventajas: se entrega antes trabajo terminado y se obtiene feedback antes, se obtiene progreso basado en software funcionando más contínuo, emergen los problemas antes, se reduce el stock de trabajo sin entregar, se puede controlar mejor la calidad… ¿Qué más razones necesitas?
Pull System over Push System
Base del sistema Lean. No hacer más trabajo de lo que necesitan las fases posteriores. Por ejemplo, no enviar a testing más de lo que puede manejar, no planificar más historias de las que se pueden desarrollar, etc.. Y por supuesto no hacer más producto de lo que pide el cliente.
Emergence over Command and Control
Las empresas están aprendiendo a cambiar su estilo de dirección reduciendo capas de jerarquía. En lugar de intentar dirigir todo top-down, se deja espacio a los trabajadores a que seas sus propios managers y resuelvan ellos mismos los problemas. De este modo se puede conseguir que empresas grandes y pequeñas respondan rápidamente a los nuevos retos que requiere la sociedad digital.
Problem Focus over Solution Focus
Es facil empezar a pensar en soluciones teniendo en consideración solamente la superficie del problema, los síntomas. Sin embargo hay que analizar más el propio problema, buscando las causas raices del mismo mediante técnicas como 5Whys o Fishbone. Una vez encontrado y estando centrados en el problema raíz ya podemos buscarle soluciones.
Omission Error over Commission Error
Preferimos quedarnos cortos y tener la posibilidad de hacerlo bien en un segundo paso que hacer algo erroneamente y tener que corregir, arreglar, deshacer y volver a hacer. Lo segundo generá más retrabajo que lo primero. Por ejemplo, sacamos de alcance la parte de una historia de usuario que no está clara para desarrollarla más adelante con máyor información.
Products Development over Project Execution
Cuando desarrollamos software es facil centrarse en los requerimientos del proyecto (plazo, cliente, necesidades solicitadas,..) sin pensar que estamos realizando un producto que tiene una vida mucho más larga que el propio proyecto, que puede usarse por varios clientes o incluso que el mismo cliente puede solicitar cambios grandes en el futuro. Esto hace que debamos prestar atención a factores como la calidad de código, la adaptabilidad y una buena elección de la tecnología.

Presupuestar historias de usuario sueltas

En la charla del viernes 27 de Mayo sobre Scrum en mundos imperfectos salió el tema de cómo presupuestar a clientes basado en historias de usuario. En ese momento no tenía una pizarra y no pude explicar cómo pienso que es la mejor forma de hacerlo por lo que voy a dejarlo plasmado en este artículo.

Lo primero es conocer la capacidad del equipo de desarrollo en puntos de historias durante un sprint. Ese sprint puede ser de una a cuatro semanas.Lo ideal es tener ya la capacidad de unos cuantos sprints para tener una media. Para nuestro ejemplo, en Baylor Enterprises, vamos a decir que la capacidad de desarrollo son 45 puntos por un sprint de 3 semanas. No está nada mal 😉

SalidaPuntos

Lo segundo es conocer qué costes tiene la empresa en ese sprint. Estos costes son la entrada necesaria en euros para producir los puntos de historia. Para calcularlo sumamos sueldos de desarrolladores, administración, alquileres, electricidad,… Puedes sumar todos los gastos mensuales y hacer una regla de 3 para conocer los relativos al sprint. Para la Baylor Enterprises, mi multinacional, los gastos totales relativos a un sprint son 10.000 Euros.

Como imagino que no trabajas en una ONG, querrás que la empresa tenga beneficios, por lo que tenemos que aplicar un multiplicador a los gastos, y entonces obtenemos los ingresos deseados por sprint. Como CEO de Baylor Enterprises, decidí aplicar un multiplicador de 1,2 y así  obtener 12.000 Euros de facturación deseada por sprint.

Facturacion

Ya lo único que nos queda hacer es dividir ese beneficio deseado por sprint por los puntos de capacidad. Esa división nos dará los ingresos deseado por punto de historia. Como en Baylor Enterprises queremos una facturación de 12.000  € por sprint y generamos 45 entonces 12000/45 = 667 € por punto de historia. Ya tenemos nuestro número mágico.

Ya puedes presupuestar para los clientesuna historia de por ejemplo  2, 3 ó 5 puntos.  Sólo multiplicando el número mágico de beneficio por punto por la estimación en puntos realizada. Para un Epic con varias historias hay que sumar los puntos de todas las historias que constituyen el Epic.

Nota: Si llega un momento que se consigue subir la capacidad del equipo sin que lleve a un mayor gasto tenemos 2 buenas opciónes: Mantener el mismo precio consiguiendo más beneficio para la empresa en cada desarrollo o bajar el precio por punto de desarrollo consiguiendo mayor competitividad.

Charla sobre Scrum en mundos imperfectos

El viernes 27 de Mayo estuve dando una charla sobre Scrum en mundos imperfectos como parte de las actividades de AgileAlicante. Fué en las instalaciones de Sistel en Alicante, ofrecidas gustosamente a la comunidad para la celebración del evento.

Hablé de los requerimientos que tiene Scrum y que hacen que sea un framework hyperproductivo. Sin embargo estos requerimientos no son siempre fáciles de conseguir pero ello no quiero decir que cualquiera no pueda beneficiarse del agilismo y usar parte de lo que propone Scrum.

Hubo 15 apuntados (llenado el aforo) y como me gusta a mí, la conversación posterior fue muy interesante. Los asistentes comentaron sus dudas y problemas, sobre todo relacionados a la estimación y el presupuestar a clientes en base a proyectos, sprints o incluso historias separadas. Al no tener pizarra no puede explicar bien cómo propongo hacerlo pero haré un artículo en breve sobre ello.

Las diapositivas de la presentación puedes verlas aquí.

Quizá repita más veces el formato de mini-evento para que la comunidad AgileAlicante se conozca un poco más y que no quede solamente el University Day de Octubre.

Las palabras del Daily Standup se las lleva el aire

Esto fue lo que había estado observando en un par de Dailyes. Un desarrollador podía decir a sus compañeros con pleno convencimiento: “Hoy voy a reticular los splines y fluzear los vértices del condensador” y al día siguiente decir que en el día anterior había hecho cualquier otra cosa sin inmutarse lo más mínimo. Lo más normal es que ni uno mismo se acuerde de cuales eran los objetivos que se había marcado el día anterior. ¡¡ Y mucho peor !!! Podía haber fallado completamente en cumplirlos por causas ajenas a su voluntad sin ni siquiera darse cuenta ni saber sus causas.

Otra cosa que había observado es que a veces se llega a los Dailyes sin tener claro cuáles van a ser los objetivos para ese día. Frases como “En cuanto termine esto ya veré con qué me pongo” o “Ahora miro el Kanban a ver que será lo siguiente”. En VSN hacemos los Daily standup a las 10 de la mañana, lo suficientemente pronto como para que sea el disparo de salida del día y lo suficientemente tarde como para que todo el mundo tenga claro ya en qué va a trabajar. El problema de no tener totalmente claros los objetivos para el día puede hacer que se acabe trabajando en las cosas urgentes y poco importantes que siempre surgen. Lo importante y no urgente se acaba retrasando hasta que es demasiado tarde. Además esto provoca que se acabe el día con la sensación de que aunque no se ha parado ni un momento,  no se ha hecho nada útil.

Eisenhower Matrix
http://www.gsdfaster.com/blog/wp-content/uploads/2015/02/eisenhower-matrix.jpg

Para evitar estos problemas, hemos llevado a cabo un experimento que por el momento está saliendo muy bien. Para el Daily todos llevan preparada un pequeña hoja (10cmx10cm) con la fecha y su objetivo (o máximo 2) para el día.  Usando estas pequeñas hojas leemos  lo que nos pusimos como objetivo el día anterior, si lo hemos cumplimos o no (y por qué) , cuál o cuales van a ser los objetivos para el día y qué bloqueos pueden ocurrir o qué necesidades vamos a tener para cumplirlos. Los Dailyes son ahora más productivos porque no se divaga con cosas que no tienen que ver con esos objetivos principales. Reuniones, tests, atenciones a soporte dejan de ser centro de conversación a no ser que hayan sido la razón para no cumplir lo importante.

TarjetaObjetivos

En el resto del día esa pequeña hoja encima de la mesa recuerda a qué se debe aferrarse. Conseguir este objetivo con la ayuda de herramientas como la técnica Pomodoro, reduciendo interrupciones, revisando el correo a horas fijas, gestionando correctamente las reuniones y automatizando lo automatizable… es otra historia.