¿Horas ideales o puntos abstractos?
Escrito el 11 de Mayo de 2010 a las 18:10
Artículo ladrillaco por encargo, como los escritores de verdad
. Es técnico y está muy orientado a las metodologías Ágiles, pero creo que todo el que tenga que realizar estimaciones en un proyecto se puede beneficiar de muchas de las ideas que contiene. Allá vamos.
Me escribe uno de mis clientes-y-a-pesar-de-ello-amiguetes comentándome la dificultad que tiene para convencer a sus equipos de que estimen en “puntos abstractos”, una técnica Ágil empleada, entre otras cosas, para enfatizar que en un buen proceso de estimación el foco no está en la precisión, algo casi imposible de lograr en un entorno complejo como el del desarrollo de software, sino en tener una idea común de cómo de grande y compleja es cada historia y, a partir de esa idea, concentrarse en trabajar con la velocidad del equipo como métrica. De hecho, la velocidad es la métrica Ágil por excelencia, y en mi opinión es la medida última de madurez de un equipo de desarrollo: lo rápidamente que puede satisfacer las necesidades del cliente con un producto de calidad.
Vamos a empezar por lo básico. ¿Por qué inventar cosas raras cuando todo el mundo estima en horas-hombre o en días-hombre, algo intuitivo, lógico y que se basa en un patrón perfectamente conocido como la hora o el día? Bueno, es cierto que las horas son una medida muy bien definida cuando hablamos de lo que tarda una máquina en hacer mil tuercas, pero cuando empezamos a intentar definir lo que tarda una persona en hacer algo, la cosa se complica. Porque las personas no son como las tuercas: no vienen todas en la misma medida. Y si hablamos de campos como el software, en el que según Pilar Jericó contaba en su libro “Gestión del talento”, el mejor de su campo es 50 veces más productivo que la media, entonces lo de la hora empieza a desmoronarse.
Así pues, si un experto tarda ocho horas en hacer algo realmente sutil y complejo, el programador promedio tarda veinte horas y un Junior tarda treinta y cinco… ¿Cuál es la estimación que debemos dar a esa tarea?
La respuesta lógica sería que la estimación dependerá de la persona que vaya a realizar esa tarea. Pero eso nos obliga a definir desde el principio quién va a hacer cada tarea del proyecto hasta el día de su finalización, y a reajustar constantemente esa asignación conforme vaya apareciendo incertidumbre en el proyecto.
Demasiada e innecesaria gestión.
Por ello se deberían estima las tareas contra un “programador mítico promedio e ideal” y lo que este señor tarda en hacer cada cosa. De ahí libros legendarios como “The Mythical Man Month”, que debería leer todo el que esté en este negocio de crear software y, en mi opinión, todo el que gestione proyectos de cualquier tipo. Lo que pasa es que definir las capacidades de ese “programador promedio” no es sencillo: ¿Tarda lo mismo en una tarea de Java que una de .Net? ¿Sabe de bases de datos? ¿Hace el diseño? Y aunque resolvieramos todo esto, seguiríamos teniendo otros problemas.
Por ejemplo, los de medida de la productividad. Hay grandes gurús de esto que predican que no es posible medir la productividad de un programador. Yo no es que discrepe, pero añadiría “aunque se puede aproximar muchísimo, sobre todo si medimos al equipo en lugar de a la persona”. La tesis básica es la siguiente: si tú has programado ocho horas, y yo he programado ocho horas, ¿hemos programado lo mismo? O dicho de otra forma, ¿hemos producido la misma cantidad de funcionalidad?
Y en contra de la lógica que nos indica que no, lo que hace la industria del software es poner un “precio medio” por hora y dedicarse a contar todas las horas que meten los programadores ante sus teclados. Y claro, no me gusta encontrarme al final de la semana con que alguien mete menos de cuarenta horas. Que las reuniones de trabajo, los correos, la gestión del proyecto, la formación, el I+D, el team building, las retrospectivas, las entrevistas a candidatos, la redacción de informes y todo lo demás que no sea programar se supone que lo hacen los programadores en sus horas libres porque les gusta. Sonamos. En fin, prefiero no hablar de las herramientas de seguimiento horario, que luego dicen que soy un sobrao
.
Seguimos con los problemas: si este año cada programador mete cuarenta horas de programación a la semana, y el año que viene sigue metiendo cuarenta horas de programación a la semana… ¿Ha aumentado la productividad? Alguien diría que no (se facturan las mismas horas), pero a lo mejor ese programador está cometiendo un 1% de los errores que cometía el año anterior, y está entregando cerca del doble de funcionalidades por semana que antes… ¿Y le seguimos cobrando lo mismo a los clientes? Es más, ¿Le estamos pagando lo mismo al programador? Que mal, ¿no?
Más razones, bordeando el campo de Earn Value Management (EVM): si en un proyecto de mil horas llevamos invertidas quinientas horas… ¿está la mitad del proyecto hecha? Respuesta típica: “esperemos por Diox que sí”
. Respuesta correcta: no lo sabemos.
Es por todas estas razones y alguna más que los equipos Ágiles maduros estiman las funcionalidades que deben desarrollar en función de su tamaño, no en función de las horas o recursos necesarios para construirlas. Sería, de alguna forma, estimar cuantos “kilos” de software vamos a entregar. O cuantos cientos de líneas de código (por el amor de $deity, no estiméis vuestros proyectos en cosas como ULOC’s , espero que no sea necesario explicar por qué
).
Por ejemplo, podríamos escoger una funcionalidad prototipo que nos sirva como patrón. Ésta toma diferentes formas dependiendo del entorno tecnológico y de mercado que tengamos: puede ser un formulario básico de cuatro campos, un login/logout, una pantalla de móvil con una consulta a base de datos, un listado básico de AS400… La idea es localizar un “bloque” de trabajo básico que siempre, o muy frecuentemente, se da en nuestros proyectos, y asignarle a esta idea un valor: por ejemplo, cien. ¿Cien qué? Cien. Cien Chipiklanders, si os sentís mejor (pequeño y sentido homenaje al maestro Fuckowski).
Y ahora comparamos las demás historias del proyecto contra el tamaño de este prototipo. Esta historia es algo más del doble de grande… doscientos cincuenta. Esta es el triple: trescientos.
Ahora veamos qué pasa los primeros días que utilizamos puntos. Cuando sacamos la historia prototipo (un formulario con cuatro campos), el miembro senior piensa “bah, dos horas”, el promedio “cuatro horas” y el junior “ocho horas”. Si se ponen a discutir sobre cuantas horas necesitan, cada uno dice un número. Y todos tienen razón. Y todos están equivocados. Como en la historia del elefante.
Pero ahora es un “cien”, y todos están de acuerdo en que es un cien. De forma que cuando sale una tarea el doble de grande, el senior piensa “ok, cuatro horas”, el promedio “ocho horas”, el junior “dieciséis horas”… Y todos dicen “doscientos”.
Este proceso interno de conversión personal de puntos-horas suele darse al principio. Es lo que lo llamo el “periodo de transición al euro”, en el que al principio nos decían “veinte euros” y pensábamos “ok, 6 euros son mil pesetas, 12 son dos mil, 18 son tres mil, y me quedan dos euros, que son 2 por 166 como algo, o sea algo más de trescientas… Uuuuuh… Tres mil trescientas pesetas”. Pero cuando ha pasado un tiempo suficiente, veinte euros es un cine con palomitas para dos, o dos menús, o una camiseta, o un tercio de depósito del coche… Ese número, que antes era abstracto, ahora tiene sentido para nosotros.
Otro de los problemas iniciales es que todo el mundo está muy acostumbrado a que se les pida precisión absoluta. De hecho, cuando les piden estimación generalmente lo que les están pidiendo es un compromiso, y eso funciona muy, pero que muy mal. Pero el caso es que cuando decimos “dame una estimación para esta historia, sabiendo que esta otra (aproximadamente la mitad) es un cien”, hay quien se bloquea con los detalles. ¿Esto es con patiflux de peristone o sin patiflux de peristone? ¿Los campos tienen que esgorziarse con el tetraconmutador cíclico? ¿Contamos con un condensador de fluzo? Detalles que, casi siempre, no tiene sentido ponerse a detallar en un proceso de estimación siempre que dejemos claro que el objetivo no es la precisión (esto daría para otro ladrillo importante
). Hay un ejercicio que suelo hacer en estos casos que es preguntar “¿Cuánto vale un adosado?”, sin más detalles. Si la gente no responde, voy diciendo cosas como “¿Un millón de euros? ¿menos? ¿cicuenta mil euros? ¿más? ¿doscientos mil euros? ¿trescientos mil euros? ¿Más trescientos o doscientos?”. Y al final hay un número. Que por descontado habrá que pulir, pero lo que me interesa ahora mismo es tener un primer orden de magnitud (¿diez mil o trescientos mil?), y eso es lo que procuramos al usar puntos. Porque si usamos horas o días, inmediatamente el subsconciente de los que luego van a tener que entregar el proyecto comienza a traducir la estimación en plazos de entrega. Y entonces comienzan otra vez los problemas.
Al grano: poco a poco el equipo comienza a familiarizarse con lo que es un “cien”, un “doscientos” o un “cuatrocientos”, y comenzarán a escoger en cada iteración tantas historias como consideren que pueden terminar totalmente (terminado, terminado) en una iteración (Sprint). Con el tiempo, en media, harán más o menos la misma cantidad de trabajo en cada iteración.
Y las palabras clave son “en media”.
Porque hay semanas buenas y semanas malas. Hay semanas que haremos tres mil puntos y semanas que haremos mil quinientos. Y lo malo es que muchos gestores entonces optarán por planificar de cara a tres mil puntos por semana. Cuando los consigan (semana buena), dirán “¿veis? ¿veis como cuando queréis podéis?”. Y cuando no los consigan (semana mala: muchos Bugs, reuniones, distracciones, retrabajos, peticiones de clientes…) dirán “es que no se os puede dejar solos, hay que estar con la vara encima de vosotros todo el tiempo”.
Lo lógico es no planificar de cara a tres mil puntos por iteración ni a mil quinientos, sino analizar la media sostenida. Si la media es dos mil y planificamos contra esa media, unas semanas andaremos retrasados, otras adelantados y, en media, cuadraremos los proyectos.
Y eso nos permite otra cosa importantísima: analizar cuál es nuestra velocidad media ahora y ver cuál será dentro de un año. Y entonces si podemos aproximar si nuestra productividad ha crecido o no, porque si hace un año nuestra media era de dos mil y ahora es de dos mil quinientos, podemos inferir una mejora de la productividad del 25%.
En resumen: la estimación en puntos cuenta con grandes ventajas para los procesos de estimación y gestión de proyectos, así como para la medida de la productividad y la mejora de los equipos de desarrollo, y el único inconveniente que personalmente he podido encontrarle con el tiempo es que es poco intuitiva de usar al principio… Como cualquier innovación basada en un cambio de paradigmas, por otra parte.
En fin, que espero que este granito de arena anime a algunos a investigar más sobre el tema, y si tenéis dudas o experiencias al respecto serán bienvenidas en los comentarios.
Charla sobre Lean y Kanban
Escrito el 27 de Abril de 2010 a las 22:41
Un par de líneas para dejaros esta charla realizada en el marco de las presentaciones sobre Itinerario Ágil organizadas por CEIN en Pamplona. Gracias a todos los asistentes, a los que espero ver en las próximas citas que tenemos dentro de este ciclo de charlas.
Scrum: El Señor de los Pardillos
Escrito el 29 de Marzo de 2010 a las 8:57
En realidad me pidieron que diera una charla sobre Scrum y desarrollo Ágil, pero con ese título iba a sonar un poco fuera de lugar en un evento como el XGN, así que al final decidí echarle un poco de fantasía y… Bueno, dejo que lo veáis vosotros mismos. En breve el video y la presentación en Inglés
Actualización: primer video subido. Hay que trabajar el tema del sonido en el futuro, me veo comprándome una petaquita de esas de ponente serio (tendré que ver si mi cámara tiene entrada de audio, que espero que sí…) . En breve el segundo video.
Actualización 30/3/2010: La presentación está disponible en Inglés gracias a la colaboración de Jaime Buelta… Espero que sirva para evangelizar allende fronteras (y espero que a Peter Jackson no le de por ponerse medieval con mi c….
).
Actualización 1/4/2010: Segunda parte del video
Próximas charlas
Escrito el 18 de Marzo de 2010 a las 16:34
En los próximos meses tengo varias charlas programadas, por si alguien tiene interés y posibilidad de asistir a alguna:
- Por una parte los señores de CEIN en Pamplona han tenido la amabilidad de tenerme en cuenta para el ciclo de conferencias sobre metodologías Ágiles que están programando de aquí a Junio. En concreto participaré en cinco sesiones sobre Agilismo en general, Scrum, Lean+Kanban (esta en solitario, jejeje), gestión ágil de equipos y herramientas de ingeniería y gestión Ágil de proyectos. En varias de estas charlas coincido con buenos amiguetes y excelentes ponentes, Rodrigo Corral, Jorge Uriarte y Joserra Díaz, por lo que el nivel de estas charlas está asegurado
- Por otra, y gracias a la buena gente del grupo local de Galicia de Agile-Spain (Axilmente), la semana que viene tengo un espacio en Santiago en Xuventude Galicia Net (XGN) . La verdad, habiendo actividades tan divertidas como las que tienen programadas (paintball, torneos de videojuegos) no se qué clase de malditos frikis van a venir a una charla sobre metodologías Ágiles…¡enfermos! Salid a que os de un poco el aire
. JM Beas, Xavi Gost, Jerónimo López, David Esmerodes y David Bonilla andarán también por ahí repartiendo caña - Y, last but not least, si todo va bien probablemente tenga un sarao en Junio por Donosti, que me apetece mogollón porque es una ciudad con la que tengo varias deudas pendientes (gastronómicas, por supuesto
). Ya os comento cuando sea oficial.
Videos de charla en Biko2
Escrito el 13 de Marzo de 2010 a las 21:26
Como intuís por la (baja) frecuencia de publicación, voy hasta arriba desde que empezó el año, ¡que vivan los brotes verdes! No obstante intentaré ir subiendo algunas de las muuuuchas cosas interesantes que tengo cuasi-listas para publicar: muchos videos, algún white-paper, un ejercicio de Scrum para simulación de sprints, una aplicación de XP a la realización de documentos, una traslación de 5S a software, una aproximación a “Lone Scrum” (Scrum como herramienta de productividad personal)… como os digo, muchas cosas. Como muestra, un par de videos montados por los amigos de Biko2 en los que cuento algunas de mis metáforas clásicas como el horno de las magdalenas, los orcos a las puertas o “imprimir la wikipedia”:
Actualización 13/3/2010: Me he precipitado un poco y los videos están aun en modo privado, calculo que el lunes los amigos de Biko los publicarán. Atentos a sus pantallas.
Charla “proyectos Ágiles” en Vitoria
Escrito el 19 de Febrero de 2010 a las 13:56
Ayer tuve el privilegio de poder hablar un rato sobre la gestión Ágil de proyectos como parte de las charlas sobre innovación pública que está organizando el Gobierno Vasco, con el impulso de los incombustibles Alberto Ortiz de Zárate(@alorza) e Iñaki Ortiz, responsables de Atención al Ciudadano y Modernización de la Administración respectivamente y promotores desde hace tiempo del blog Administraciones en Red . El video lo podéis ver en Irekia, y la presentación que usé la tenéis en Slideshare:
Actualización: Wala! Si se puede incrustar el video de Irekia!
Montañas en la tierra media
Escrito el 4 de Febrero de 2010 a las 11:20
Es descorazonadora la cantidad de gente que viene a mis cursos o charlas con hambre en los ojos, con necesidad de cambiar las cosas, angustiados, presionados, sobreviviendo en entornos corporativos agresivos, corruptos y desmoralizadores. Pero es igualmente descorazonador que mucha de esta gente, cuando se les presentan las raices y principios en los que se basan sus males y las herramientas y líneas de acción encaminadas a reducirlos o eliminarlos, responden sistemáticamente con el “Yapero”.
“Ya, pero es que nuestros proveedores nos engañan”. Pues controla a tus proveedores. O mejor, cambia de proveedores. “Ya, pero es que todo el mundo hace lo mismo”. No, todo el mundo no. Y si todo el mundo hace lo mismo, tendrás que cambiar el mundo. “Ya, pero es que no nos dejan cambiar de proveedores”. Insisto: cambia la forma en que trabajan tus proveedores. “Ya, pero es que no quieren”…
Lo gracioso es que luego vas a trabajar con esos mismos proveedores y se repite la historia. “Ya, pero es que el cliente nos cierra alcances, tiempos y dinero”. Pues diseña y gestiona buffers de proyecto. “Ya, pero es que ni con buffers cuadra el proyecto”. Pues entonces estás perdiendo dinero y no deberías coger ese proyecto. “Ya, pero es que si cogemos este proyecto, aunque perdamos, luego podemos coger otros más jugosos”. No creo que comenzar una relación de negocios con abusos de poder y pérdidas económicas establezca un buen precedente. “Ya, pero es que si no lo coge la competencia”. Si la competencia pierde dinero, mejor para tí. “Ya, pero es que entonces nosotros nos quedamos sin clientes”. Hay millones de empresas en todo el mundo. Sal de tu terruño y búscate la vida. “Ya, pero es que para eso hay que saber inglés”. Aprende inglés. “Ya, pero…”
Ya hablé de esto con la parábola del mago del método. Y ahí estamos todos. Con picos y palas a nuestro alcance, quejándonos toda la vida de la montaña que se alza en la tierra media entre clientes y proveedores. Pero nadie mueve un dedo. Nadie pica la montaña. Nadie se pone a cavar un tunel. Nadie.
O casi. ![]()
Kanban vs Scrum en castellano
Escrito el 28 de Enero de 2010 a las 10:49
Como algunos sabéis, hace ya un par de añitos traduje desde Proyectalis el magnífico libro “Scrum y XP desde las trincheras” de Henrik Kniberg, uno de mis heroes Ágiles de todos los tiempos. Las razones que me llevaron a ello fueron varias. Fundamentalmente, mi consideración sobre la estupenda calidad de la obra, el caracter abierto de la misma (podéis descargarla gratuitamente en InfoQ o en Proyectalis) y el convencimiento de que uno debe devolver algo a la comunidad de vez en cuando. Esto vale para el software libre, las presentaciones de Slideshare, los libros abiertos, los wifi sin contraseña y cualquier otra cosa de la que os estéis beneficiendo de forma gratuita: si creeis en los mecanismos de retribución Kármica, y ya sabéis que yo lo hago a pies juntillas, hay que ir compensando lo que uno recibe o se genera una deuda, y las deudas es lo que tienen, que crecen exponencialmente. Total, que la cosa fue bien, porque conseguimos bastantes enlaces, tráfico y el pagerank de Proyectalis mejoró. Karma wins again.
Ahora Kniberg ha sacado un nuevo trabajo comparando Scrum con una aproximación nueva que se está realizando a los procesos de desarrollo: Kanban. Kanban no es nuevo para nada, surge como todas estas herramientas y disciplinas en el seno del sistema de producción de Toyota, “la máquina que cambió el mundo”. Consiste en la generación de una serie de tarjetas que representan los productos que se están desarrollando y que actuan como testigos de una carrera de relevos a lo largo de la línea de producción, disparando los eventos de fabricación conforme van siendo necesarios. La ventaja que pregonan los partidarios de Kanban para el desarrollo de software es la reducción del número de reglas y obligaciones respecto a otras metodologías: nada de planificación de producto, nada de scrum diario, nada de retrospectivas; sólo flujo productivo, priorización y limitación del número de tareas en curso en un momento dado (WIP o Work In Progress).
Es un planteamiento muy positivo para equipos que ya han “disuelto la regla” de Scrum y han interiorizado muy bien el proceso, o bien para equipos de mantenimiento u operaciones en los que los “tickets” deben ir atendiéndose conforme van generándose y no es factible realizar planificaciones ni predicciones a medio o largo plazo. El problema estiba en que equipos sin experiencia previa en Ágile se vean atraidos por la simplicidad de Kanban y entonces no lleguen a interiorizar los importantes conceptos contenidos en los roles, procesos y artefactos de Scrum. Por ello este trabajo de Kniberg, en colaboración con Mattias Skarin, es tan importante para todos aquellos que quieran iniciar una experiencia con Kanban, ya que en él resumen tanto las diferencias como los parecidos y la manera de combinarlos ambos de la forma más efectiva posible.
Hay que reseñar que esta vez la traducción ha sido coordinada por Proyectalis pero realizada por el equipo de contenidos de Agile Spain. Concretamente hay que agradecer la colaboración desinteresada de Rodrigo Corral, Teo Sánchez, Gregorio Mena, Laura Morillo Velarde, Ángel Agueda (Legnita), Jorge Uriarte, Agustín Yague, Juan Palacio, Xavier Quesada, Javier Sánchez, Jorge Jiménez y Juan Carlos Quijano.
Así que aquí lo tenéis. A la fecha de redacción, y por culpa de as múltiples versiones de MS Word y el puñetero filtro PDF de Mac, la versión PDF pesa unos 74Mb (OMG!), pero procuraremos bajar esa cifra en los próximos días. Si alguien no tiene tanta paciencia, lo podéis ir bajando ya de aquí.
Actualización 29/01/10: nueva versión, con un peso mucho más razonable aunque con mayor margen… Gracias a Xavi Albaladejo y Antonio Kobashikawa por liarse con el PDF (es probable que subamos una versión con márgenes correctos pronto, ¡Beta perpétua!). Ah, por cierto, lo lamento por todos los que se han “fusilado” este artículo en sus sitios en vez de enlazar aquí, pero el enlace anterior ha dejado de funcionar… ¡Oooh, que mala suerte!
. Esto os pasa por enfadar al enanito del Karma…
Scrum Multiproyectos, Métricas y Agile EVM
Escrito el 16 de Enero de 2010 a las 15:33
He subido a Slideshare un pequeño extracto de nuestro seminario de gestión del portfolio de proyectos aliñado con unas pocas slides de nuestro curso de introducción al PMBOK desde una perspectiva Ágil, en el que introducimos el concepto de Earn Value Managemente aplicado a proyectos Ágiles y Scrum Multiproyectos (oh yeah!). No se, ayer en la ducha (suele ser mi momento más creativo e inspirado del día, qué cosas…
) se me ocurrió que tenía sentido reordenar este conjunto de slides en esta forma y dar un poco de vidilla a un concepto que está poco trabajado tanto en la literatura como en el material disponible on-line: que pasa cuando salimos del típico ejemplo de libro de “un cliente, un equipo, un proyecto” (Ein Volk, ein Reich, ein Führer!
), al auténtico carajal que vivimos todos en las trincheras reales: múltiples clientes, múltiples proyectos en distintos momentos del ciclo de vida (unos cerrándo, otros en preventa, etc.) y múltiples equipos, a veces compartiendo proyectos (relaciones “muchos a muchos” y esas cosas). Y nada, que aquí lo dejo. Ya sabéis que estoy disponible para montar saraos y hablar de estas cosas si os ape
Nota: que pasada como abuso de los paréntesis… Y de los puntos suspensivos
. Propósito de año nuevo al saco. ![]()
Charla en Pamplona
Escrito el 28 de Noviembre de 2009 a las 13:13
Ayer viernes dí una charla-desayuno en Pamplona invitado por mis clientes y a pesar de ello amigos de Biko2
. Asistieron mayoritariamente gestores de IT de empresas como (así de memoria), Caja Navarra, Microsoft CEIN, Aranzadi, Tracasa y representantes del Gobierno de Navarra y el Gobierno Vasco (por cierto, gracias a los que vinísteis de lejos).
Visto lo visto en twitter, y sin falsas modestias, parece que oficialmente lo hemos petado
:
- @tatai Pues al final no hemos tenido demo esta mañana, aunque ha sido un gusto volver a escuchar a @angel_m después de un año
- @alorza IMPRESIONANTE la charla de Angel Medinilla sobre Agile y Srcum -vamos a cambiar muchas cosas
- @futuretelematic Ha sido espectacular… scrum se vende facil en el caos de los proyectos ASDM pero Angel lo borda!
- @alorza @angel_m @bikolabs impresionado y decidido a cambiar, ¡gracias!
- @diegocenzano @riskyandfunky La intervención de @angel_m ha sido brillante en el desayuno Agile, así es fácil darle al twitter este…
- @jnarro RT @Biko_2: Gracias @angel_m , Iñaki Tellería y a todos los asistentes a este Biko desayuno! así que sí… Fearless Change http://bit.ly/8vRMz1
- @lullamas Un desayuno “redondo” en #pamplona. Metodología scrum por @angel_m muy bueno, transmite. Gracias @diegocenzano about 23 hours ago from web
- @bikoLabs Melé! #scrum @angel_m @agilespain
- @fegido De camino a la reunión de presupuestos. La escapada a la charla de @angel_m sobre Scrum ha merecido la pena. Thx @biko_2!! #fb
- @bikoLabs Dilbert, el caos y las metodologías sexys #scrum @angel_m @agilespain
- @fegido Disfrutando de la charla de @angel_m. Vaya crack!
- @alorza con @fegido @futuretelematic @angel_m de ponente y otros twitteros como @guzmangarmendia @acidonitrix @wila_ @diegocenzano
- @fegido Sentado junto a @alorza y @futuretelematic. @angel_m de ponente y otros twitteros como @guzmangarmendia @acidonitrix @wila_ @diegocenzano
Como había poco tiempo, organizamos la charla en sprints, de más prioritario a menos, y lamentablemente no nos dio tiempo a arrancar el sprint 3 (contratos). Para los que os quedásteis con las ganas, tenéis la presentación completa de contratos en Slideshare y la charla de Autentia grabada en video aquí y aquí.
La presentación que usamos ayer en Pamplona fue esta (es un poco refrito de las que ya conocéis los que seguís mis pobre-poings, pero bueno… Tendré que empezar a renovar un poco el repertorio para los habituales
):
Equipos o cirujanos
Escrito el 25 de Noviembre de 2009 a las 11:16
Me encuentro ultimamente con algunas organizaciones que han ido creciendo desde equipos pequeños de personas y, conforme han ido añadiendo miembros al área de desarrollo, han ido evolucionando hacia un modelo de un proyecto - una persona. Se trata (espero) de una adaptación del “paradigma del cirujano estrella” publicado por IBM en los 60-70, en el marco del desarrollo de OS360 (¿alguien ha leido The Mythical Man Month?
). Según este modelo, los proyectos más productivos que IBM había detectado eran aquellos en los que existía un “cirujano estrella” que tenía en su mente la arquitectura y el diseño y realizaba toda la programación rodeado por un equipo de ayudantes (documentadores, testers, administradores…). Según las mediciones de IBM, un programador estrella aportaba 10 veces la productividad de un programador medio. Pilar Jericó, en “Gestión del Talento” (citada por Juan Palacio en su libro, si no recuerdo mal) va más lejos y afirma que en el mundo tecnológico los mejores lo hacen entre 50 y 100 veces mejor que la media, y la cifra aumenta conforme la tecnología se hace más compleja.
Monos y máquinas de escribir, vaya. Quien no se crea estas cifras, que meta a 100 programadores promedio en una sala y a Alan Cox en la otra, y a ver quién termina antes con la pila TCP-IP del núcleo de Linux
.
Pero antes de que despidáis a toda vuestra plantilla de programadores promedio (a mi entre ellos, jejejeje) y salgais al mercado a buscar programadores estrella, preguntaos por qué el modelo fue abandonado.
Even though, que dicen los ingleses: suponiendo que el modelo sea válido en todos los casos, el problema es que lo que me suelo encontrar en las empresas con las que trabajo son programadores my buenos, estupendos, con talento… Pero seamos francos y humildes: no somos Alan Cox
.
Así que ya tenemos el primer problema de este modelo: encontrar a estas “estrellas” que hacen de todo, que son capaces de enfrentarse a todo tipo de proyectos y productos. Y pagarles. Y fidelizarles. Y que no se conviertan en “Prima Donnas” tecnológicas a la primera de cambio.
Pero incluso obviando el tema de las estrellas, el enfoque de un proyecto - una persona (a veces en relación muchos a uno, jejeje) tiene una serie de problemas considerables, que es por lo que en Agile consideramos los equipos como los bloques de construcción básicos de proyectos, procesos y empresas. Y ojo, que un conjunto de personas que se sientan juntas no es lo mismo que un equipo. Un equipo es una forma de pensar ante todo, y el espacio que comparten no puede ser únicamente físico.
A lo que ibamos, que parezco una abuela divagando. Problemas del enfoque de un proyecto - una persona:
- Escalabilidad: el modelo funciona cuando tenemos cinco o seis personas, puesto que, para ver el estado del portfolio de proyectos, no tengo más que hacer una ronda por estas personas y que me cuenten como va todo. Es el Scrum Diario de Scrum o el stand up meeting de XP. Pero cuando la empresa empieza a ir bien y a crecer el modelo no tarda en colapsarse. Cuarenta personas, todas contándonos el estado de su proyecto (o sus proyectos) todos los días, o todas las semanas… Imposible. No hay más remedio que multiplexar. Cinco grupos de ocho personas, y un responsable por cada equipo. Con eso puedo volver a mis rondas diarias con cinco personas que me resumen el estado de todo. Mejor. Cada proyecto sigue asignado a una persona concreta (por ahora), pero hemos resuelto el problema de la escalabilidad… Formando grupos de personas (aun no equipos).
- Robustez: ok, tengo ya grupos de personas, pero de repente se va Paquito, y hay que traspasar sus proyectos. Como es el único que los conoce, estos proyectos van a sufrir considerablemente. Y lo que es peor: el año que viene nos piden que repasemos algunos proyectos de Paquito y nadie sabe nada de ellos. Relexionamos: en el futuro sería interesante que tuvieramos estándares de como hacer las cosas y documentásemos bien los proyectos para que podamos solucionar estas situaciones de una forma mejor. Pero el problema es que por mucho que le decimos a la gente que documente, como siempre vamos hasta arriba, al final siempre se queda la documentación por hacer. Quizás si las personas estuvieran un poco más al tanto de lo que hacen sus compañeros… Pero es muy dificil, muy dificil. Seguimos haciendo las cosas como siempre y obteniendo los mismos resultados.
- Flujo de conocimiento: cuando alguien comete un error, típicamente lo tapa, lo corrige y listo. Mañana otra persona, en la otra punta de la oficina, cometerá el mismo error. Y pasado otra. Y cada uno da soluciones diferentes. Por otra parte, un día alguien encuentra una solución ingeniosa a una necesidad habitual de los proyectos. Pero nadie se entera. Entonces reflexionamos y decimos que hay que montar un sistema de gestión del conocimiento, y desarrollamos una intranet, un blog, un wiki… Pero nadie los usa. Si hubiera una forma de que las personas se contasen unas a otras sus problemas y soluciones, y que unos revisasen el trabajo de otros… Bah, muy dificil.
- Duplicación: al igual que ocurre con los errores, los desarrollos comienzan a duplicarse. Un día nos encontramos con que dos personas, en dos esquinas de la oficina, han desarrollado dos librerías idénticas para el mismo problema. Vaya por Diox. Si hubiera una forma de sincronizar a todo el mundo…
- Incorporaciones: cuando reclutamos a juniors, sería interesante que pudieran ir aprendiendo de los seniors. Pero los seniors están muy liados con sus proyectos como para andar enseñando a la gente. Sí, ya dijimos antes que deberíamos tener estándares de códificación, sistemas de gestión de conocimiento… Pero no se hacen. Si pudieramos organizar a la gente en equipos, equipos de verdad, no solo grupos de personas, que se sincronicen a diario, compartan tareas y proyectos, programen por parejas de vez en cuando, hagan retrospectivas de grupo frecuentemente, analicen todos los proyectos juntos, distribuyan la carga según ellos mismos convengan… Así sería mas rápido y sencillo que una persona recién incorporada fuera pillando el ritmo y el estilo del equipo.
- Flexibilidad: si una persona está muy cargada y queremos reforzar su proyecto con más personas, significa que esas personas deben coger el proyecto desde el principio y adaptarse al enfoque que el primero ha dado al desarrollo. Si de alguna forma se hubieran hecho revisiones breves del proyecto desde el principio en equipo, no solo se habría podido ir incorporando el feedback de todo el mundo al enfoque del proyecto (¿Crowdsourcing anyone?
), sino que sería más fácil incorporarse al proyecto. - Estandarización: antes hemos dicho que sería bueno contar con estándares para facilitar el trabajo en equipos, pero los estándares son buenos per se, no solo como herramienta. Permiten, como hemos visto, que las personas que se incorporan se adapten más rápidamente y nos permiten analizar de una forma coherente y estándar el rendimiento de los procedimientos para buscar las mejores soluciones y difundirlas entre los equipos.
- Tribus: asumidlo, los seres humanos somos tribales. Los que no lo eran se extinguieron en la última edad de hielo, muertos de hambre o devorados por los tigres dientes de sable, es una cuestión puramente evolutiva. Y a todos nos gusta pertenecer a una tribu, no ser guerreros cubiculares aislados, por muy romántica que nos parezca la idea del “justiciero solitario”. El problema es que cuando formamos una tribu, lo primero que buscamos es otra tribu a la que declarar la guerra. Y si nuestra tribu es “desarrollo”, le declararemos la guerra a “QA”, a “Infraestructura”, a “Diseño”… Es mejor crear la “tribu equipo”, donde todos colaboramos para sacar adelante los proyectos. E independienteemente de si nuestros equipos son multidisciplinares o no, el pertenecer a una tribu aumenta la motivación, la la motivación aumenta la productividad (quien no crea firmemente en esto debería de reflexionar largo y tendido sobre temas más fundamentales que equipos si / equipos no)
Y se me ocurren varias más, pero entonces este artículo se haría insufrible. ¿Como lo véis vosotros?
Crónica del Agile Open Spain
Escrito el 30 de Octubre de 2009 a las 19:38
Los que me seguís hace tiempo ya sabéis que cuando los posts escasean pueden ocurrir dos cosas: hastío creativo o pico de trabajo. Afortunadamente, (bendito sea el FSM), en este caso se trata de lo segundo. Pero aunque estoy recién bajado del avión despues de dos días muy productivos en Canarias y ya casi estoy haciendo otra vez la maleta para Málaga (pasando por Madrid), tengo que sacar unos minutillos para contar un poco como fue lo del Agile Open Spain del 23-24 de Octubre, que para algo lo patrocinabamos…
Como sabréis, se trata del primer evento sobre metodologías ágiles que se celebra en España, y aunque los que lo hemos montado somos absolutamente novatos en estas lides hemos de decir que ha sido un éxito: 160 participantes de empresas de software de toda España, entre ellos (of course) muchos clientes míos
. Desarrolladores, jefes de proyecto, gerentes… Muy buen nivel, la verdad, y una estupenda ocasión de networking profesional. En este sentido, el mejor evento al que he asistido profesionalmente hablando, ya que estaba absolutamente dirigido a nuestro target de negocio. Por lo tanto, magnífica inversión en patrocinio (algo que una empresa pequeñita como la mía debe medir con lupa).
Por si alguno no conocía el formato, la verdad es que fue una de las cosas que más llamó la atención y que mejor funcionó. El primer día, se forma una cola con todas las personas que están interesadas en proponer un tema de debate, exponer un asunto, aprender sobre algo en concreto… Cada persona explica su propuesta en un minuto y la anota en una tarjeta. Esas tarjetas luego son votadas por todos los asistentes por un sistema de dot-voting y se celebran las sesiones que más votos han obtenido. Self-management y arquitectura emergente en estado puro. Este fue nuestro resultado:
Lo único malo de este tipo de formato es que a muchos nos hubiera gustado ir a todas las sesiones. Se me quedaron en el tintero las sesiones de Xavi Gost (que fueron la comidilla del evento) o las de Xavi Quesada y Rodrigo Corral, a quien he emplazado necesariamente a un proyecto común el añi que viene, que seguro que nos lo vamos a pasar pipa
. Procuré balancear mi elección entre sesiones técnicas (integración continua, con Juan Gutierrez, o test driven development con Carlos Ble) y las de negocio (PMO ágil, con Xavier Albaladejo). Yo dirigí una sobre implementación de Scrum (”Es muy dificil!”) y otra sobre desarrollo Offshore, y debo decir que tuve un lleno total (creo que incluso con gente de pie en ambas sesiones, ¡gracias por el esfuerzo, chicos y chicas!). Ah, esa es otra: ¡hay chicas Ágiles! ¡Existen!
Pues nada: que ha merecido la pena de largo, y que recomiendo a todos los que participéis en algún tipo de comunidad técnica (incluso dentro de vuestras empresas) a que estudiéis el formato, porque la verdad es que funciona fenomenal.
Ah… ¿La próxima en Sevilla? ![]()
Curso Scrum Madrid, 12-13 Nov. 2009: lugar de celebración
Escrito el 30 de Octubre de 2009 a las 19:23
Como sabéis, el 12 y 13 de Noviembre celebramos un curso de Scrum abierto en Madrid. Aun quedan algunas plazas, por lo que si estáis interesados os recomendamos que os pongáis en contacto cuanto antes con info@proyectalis.com.
Finalmente el curso se celebrará en el hotel Barceló Torre Arias, en la calle Julián Camarillo 19-21.
Steve Johnson on Product Management and Agile (a.k.a. ‘Friends build products, enemies build documentation’)
Escrito el 28 de Septiembre de 2009 a las 12:41
La mayoría ni os plantearéis verlo porque dura una hora y está en inglçes. Shame on you! Por si consigo engatusaros, aquí van algunas perlas anotadas:
- Demasiadas compañías comienzan centrándose en la tecnología y el producto, entonces se centran en las ventas, entonces pasan a centrarse en el marketing y la marca, entonces están gastantdo mucho y se centran en las finanzas para que entonces alguien diga “tenemos que volver a nuestros origenes y volver a la tecnología y el producto”. Entonces el ciclo comienza de nuevo, pero la respuesta no está dentro de la empresa: hay que escuchar al cliente.
- No hay documento de requisitos, por muy exquisito que sea, que un desarrollador no pueda malinterpretar
- Nada parece complicado para la persona que no sabe de lo que está hablando
- Típicamente, más documentos, más requisitos, más especificaciones, más reuniones = menos desarrollo
- “Mientras más aprietes tu puño, más sistemas se escaparán entre tus dedos”” (Princesa Leia). Tremenda cita y tremenda aplicación.
- Comparación de las empresas con Star Trek: desarrollo sería Spock: muy técnico, muy centrado en su labor y tratando por todos los medios de parecer humano; Marketing sería el doctor ‘Bones’ McCoy, quejándose constántemente de lo que NO es (’Por el amor de Dios, soy un médico, no un….”); y el Capitán Kirk sería ventas, constantemente comprometiendo la nave más allá de sus posibilidades.
![]()
- El feedback que obtenemos desde soporte técnico está basado en clientes que tienen problemas, y ni siquiera en todos ellos (¿cuantos de vosotros habéis llamado a Microsoft para quejaros de MS Project?) ![]()
- Tus actuales clientes nunca te van a pedir que sustituyas por completo su actual instalación convirtiéndola en obsoleta, aunque eso sea exáctamente lo que necesiten.
- Que una idea no tenga una evidencia de mercado no quiere decir que no sea una innovación y proporcione al mercado algo que necesita pero no ha pedido.
- De todas las reuniones que has tenido en la última semana, ¿Cuántas han sido sobre el cliente y cuántas han sido “blame management” (gestión de la culpa, echarse la culpa de todo unos a otros)?
El horno de las magdalenas
Escrito el 14 de Septiembre de 2009 a las 14:57
Esta es una historia que cuento en mis cursos y suele gustar bastante. Tanto que ya me han pedido alguna vez que la escriba e incluso tengo un dibujo dedicado que reproduzco al final del artículo (gracias, Juanjo, iremos poniendo el resto poco a poco
). La cosa va así:
Supongamos que tenemos una fábrica de magdalenas que consta de las siguientes partes:
.- Una cinta sin fin en la que se van colocando los moldes de magdalena con la masa
.- Un horno en el que se van introduciendo los moldes de cinco en cinco y son horneados durante 5 minutos
.- Una salida del horno, por la que las magdalenas ya horneadas salen en dirección al cliente
Tenemos a dos personas operando la fábrica. Una opera la cinta y va colocando los moldes. La otra opera el horno. La primera se llama Don Dueño de Producto, y la segunda se llama Don Equipo. Lo vamos pillando, ¿no?
La fábrica de magdalenas funciona muy bien y los clientes están contentos con el producto. Tan contentos que empezamos a tener más clientes, más demanda, y a Don Dueño de Producto le entran las prisas.
Entonces, en medio de una hornada, Don Dueño de Producto se dirige a Don Equipo y le dice “oye, abreme el horno que quiero ver cómo va todo”. Don Equipo le responde “no hombre, no… Si abrimos el horno se va toda la temperatura, y las magdalenas no suben”. Y Don Dueño de Producto, refunfuñando, se aguanta.
Pero entonces entra corriendo un mensajero con un encargo: un bizcocho urgente. El bizcocho ocupa el espacio de tres moldes de magdalenas. Y Don Dueño de Producto dice “parad la hornada, que hay que meter un bizcocho urgente”. Don Equipo dice “mira, la hornada lleva dos minutos… ¿No puedes esperar tres minutos más para que metamos el bizcocho?”
“¡No! ¡No lo entiendes! ¡Es urgente! ¡El cliente lo demanda!”. Don Equipo mira al cielo resignado y dice “ok, ok, paramos la hornada y tiramos estos moldes para empezar una hornada nueva de cinco minutos”.
Y entonces, para asombro de Don Equipo, Don Dueño de Producto le mira con cara de horror y dice “¡No! no lo has entendido… Hay que hacer el bizcocho en esta hornada y *además* de las magadalenas“. Cuando Don Equipo logra salir de su asombro le dice “pero vamos a ver… Lo primero es que te vas a cargar las magdalenas que estan metidas, pero incluso aunque aceptes eso, ¿dónde quieres que meta el bizcocho si el horno ya esta lleno?”.
Entonces Don Dueño de Producto se enfada de verdad. “¡Estoy harto de quejas! No entendéis los malos tiempos que vivimos y lo importante que es este encargo, el cliente siempre tiene la razón. Hay que hacerlo y hay que hacerlo. Si no se puede, pues se tiene que poder. Y punto. Y si no hay sitio, pues lo colocais encima de esos tres moldes de magdalenas, y como escuche mas quejas voy a empezar a escribir cartas de despido a la voz de ya”.
Ante la amenaza, Don Equipo abre el horno (con lo que se va la temperatura), coloca el bizcocho encima de tres moldes (con lo que el bizcocho queda cerca de la resistenci superior del horno y las magdalenas aplastadas), cierra el horno y espera tres minutos a que termine la hornada, también conocida como Sprint. El resultado es el lógico:

Claro, al realizar el envío al cliente, este lo devuelve indignado. Así que ahora tenemos que hacer cinco magdalenas, un bizcocho y las cinco magdalenas que tocaría hacer ahora. Suponiendo que hagamos bien las cosas, generamos ahora mismo un retraso de ocho magdalenas: tenemos que parar la linea, meter cinco magdalenas y luego meter el bizcocho, y aprovecharíamos el segundo turno para meter al menos dos magdalenas nuevas, así que en dos turnos produciríamos dos magdalenas nuevas además de todo el trabajo rechazado.
Si desde el principio hubieramos hecho las cosas bien y hubieramos esperado al segundo turno para meter el bizcocho, solo habríamos generado un retraso de tres magdalenas (las que ocupa el bizcocho). Ahora sin embargo hemos generado deuda técnica, y típicamente Don Dueño de Producto ser irá poniendo cada vez más nervioso y seguirá pieiendo que metamos más cosas de las que caben en el horno
Moralejas (algunas
):
1.- Los equipos necesitan su temperatura adecuada. Ni tan frío que no cueza ni tan caliente que se queme. La sopa, por ejemplo, tiene su temperatura de cocción a la que todos los ingredientes dan su punto. Más frío y no sabrá a nada, más caliente y se quemará. Esta temperatura adecuada de equipo es lo que yo denomino un “estrés saludable” o, en términos Agile, el “paso sostenible”, es decir, el ritmo que podemos mantener indefinidamente sin cansarnos.
2.- El Dueño de Producto debe de manejar la Pila de Producto, no la Pila de Sprint. Si el Dueño de Producto se dedica a interferir en el espacio de trabajo del equipo (Sprint), no podemos esperar que emerja la autogestión ni los estados hiper-productivos asociados a Scrum. Eso no quiere decir que el equipo no informe diariamente del progreso, proporcione toda la visibilidad posible y acepte el criterio del Dueño de Producto en las entregas (si el Dueño de Producto dice que no vale, es que no vale). Esto también aplica a cualquier entorno jefe-empleados, no necesariamente a Scrum: los equipos tienen que tener su espacio y su margen de maniobra, y la microgestión solo conduce a la suboptimización y al bajo rendimiento.
3.- Ante una situación de deuda técnica cualquier momento es mejor que el siguiente para decir “alto” y aplicar el principio Lean de Jidoka. Dicho de otra forma, cuando uno está en el fondo de un pozo lo primero que tiene que hacer es dejar de cavar. Tened en cuenta que, como otros tipos de deuda, crece a interés compuesto (por cierto, es falso que Einstein dijera que se trata de la mayor fuerza del Universo o el mayor invento del siglo veinte
).





