Presentaciones XP2011

Escrito el 12 de Mayo de 2011 a las 10:16 

¡Hola chic@s! Un par de líneas para dejar links a las presentaciones sobre gestión Ágil y Scrumban que he podido celebrar en el XP2011. Lo siento, están en inglés, pero son bastante autoexplicativas, así que espero que os sean de utilidad. En el blog en inglés tengo algo más de información sobre las sesiones, por si estáis interesados :-)

El Rol de Scrum Master / lider de equipo

Escrito el 26 de Marzo de 2011 a las 11:00 

Esta semana había una discusión interesante en Agile Spain y me dió por resumir lo que, de alguna forma, cuento en los cursos de Scrum sobre qué significa para mi el rol de Scrum Master. Creo que ha quedado apañado, así que lo recojo aquí para que no se me pierda ;-)

El problema cuando hablamos del SM es que hay muchos tipos de SM. Para mi (o mejor dicho, en la escuela de pensamiento en la que yo milito) el SM no es un estado, sino un camino. Este camino tiene varios estadíos:

  1. “Scrunch Master” - El SM convoca las reuniones y poco más. Como no tiene mucha dedicación, suele ser alguien que trabaja en el equipo y, a ratos, hace de SM. Quizás actua como portavoz del grupo. Se habla de rotar el puesto de SM entre los miembros del equipo.
  2. “SM Mamá”: El SM comienza a tomar decisiones para el equipo en lo relativo a Scrum / Agile y a los impedimentos a los que el equipo se enfrenta. Elimina impedimentos para el equipo en la forma de “Ya lo hago yo”. Si el equipo o el P.O. no cumplen con alguna de sus responsabilidades también las asume él (”ya reporto yo en el tablón”, “ya escribo yo las historias de usuario”). Mayordomo y secretaria del equipo “para que el equipo no se desconcentre y no pierda el tiempo”, línea de pensamiento preliminar en las implementaciones que, si bien puede ser necesaria al principio, es peligrosa a largo plazo, ya que puede conducir a que el equipo no sea convocado a las reuniones por lo mismo. Interlocutor / Interfaz del equipo (misma consideración respecto a peligrosidad en el largo plazo). Comienza a moderar las reuniones. Es un avance respecto al Scrunch Master, pero no debería quedarse aquí.
  3. Scrum Master: Facilita y dinamiza las reuniones. Actúa de formador y mentor: enseña a cada uno a ejecutar su papel dentro de Scrum. Evangeliza en la organización y en el equipo sobre las prácticas ágiles, no solo Scrum (programación por parejas, refactorización, TDD, propiedad colectiva de código, estimación en puntos, planning poker, Kanban…). Es un agente del cambio organizativo. Es un lider del equipo. Mantiene y ejecuta con el equipo un plan de mejora continua. Diagnostica problemas y propone soluciones.
  4. Scrum Sensei / Agile Coach: Maestro de la escucha. Nunca decide ni sugiere soluciones: hace preguntas. Pero son las preguntas correctas. Respeta las decisiones del equipo, pero hace al equipo responsable de ellas. Ayuda al equipo a identificar problemas, descubrir soluciones e implementarlas por ellos mismos. Trabaja aspectos como el trabajo en equipo, la comunicación, la colaboración… Bajo su influjo emergen equipos de alto rendimiento con el máximo nivel de compromiso, motivación y rendimiento.

DISCLAIMER: utilizar la estrategia del Agile Coach con un equipo principiante solo conduce al desastre. Al igual que el SM, el equipo debe andar un camino.

ScrumWeek

Escrito el 24 de Febrero de 2011 a las 12:33 

La semana del 4 al 8 de Abril Plain Concepts y Proyectalis organizamos la ScrumWeek, una semana de formación con tres tracks separados en los que habrán sesiones sobre Scrum, Coaching de equipos Ágiles, Agile Management (gerentes Ágiles), cultura corporativa Ágil, un Scrum Clinic con Rodrigo Corral y conmigo, unit testing, visual studio, certificación PSD… En definitiva, creo que es una iniciativa bastante pionera en España y una muy buena oportunidad para todos los que ya conocéis los cursos de Proyectalis y de Plain Concepts y queréis ampliar conocimientos o tenéis a alguien en vuestra empresa que se ha quedado “rezagado” y podría ser interesante poder mandarle a un curso de refresco ;-) .

Los precios son también bastante competitivos, incluyendo varias sesiones gratuitas como las de Cultura Corporativa o las de Visual Studio Ágil, y hay plazas limitadas (que ya se están vendiendo), por lo que os animo a que si estáis interesados lo arregléis con vuestras empreasas cuanto antes. Ah, en este sentido, hay cursos de sólo mañanas (como por ejemplo el de Coaching de equipos Ágiles), con lo que debería ser más fácil convencer a vuestra empresa que os deje ir… Si vivís en Madrid, claro :-D .

¡Os esperamos!

Saraos, extremistas, fotos, videos y presentaciones

Escrito el 27 de Noviembre de 2010 a las 10:14 

Octubre y noviembre han sido dos meses ajetreados. A los habituales proyectos de formación y consultoría se han unido dos eventos interesantes: El Agile Open Spain 2010 y el Amsterdam Scrum Gathering.

Del Agile OPen Spain 2010 tenéis un par de fotos aquí. Me volví con una sensación agridulce, la verdad. Por una parte, es patente como ha subido el nivel del evento, con mucha más gente dispuesta a aportar experiencia real y con preocupaciones más relacionadas con la implementación y práctica de metodologías Ágiles que con descubrir de qué tratan. Bien por la comunidad Ágil española. Pero por otra se pudo respirar muy evidentemente algo que ya se intuye por los espacios virtuales: se están creando dos corrientes de pensamiento, y una de ellas está de alguna forma enfrentada a la otra.

Concretamente, existe un nucleo duro de “Anarco-sindicalistas del teclado;-) que han creado un espacio extremista en el que “lo único” importante es la programación, el código bonito, TDD, disfrutar programando, la excelencia técnica y las camisetas con chistes en binario. Que no es que no sea importantísimo. Pero no es “LO” importante, en plan “todo lo demás es malignmo y debe ser descartado de la faz de la tierra”. Para ellos, “Scrum es cosa de gerentes” y los procesos son algo a ser destruido junto con la documentación, las herramientas, los contratos y los planes. Es decir, realizan una lectura extrema del manifiesto Ágil y se olvidan de la parte de “aunque valoramos los elementos de la derecha, valoramos más los de la izquierda“.

Son gente que dice cosas como “no se puede programar sin TDD” (aunque productos como Linux o Apache se hayan hecho sin TDD), “no se puede ser Ágil si no haces programación orientada a objeto” (aunque haya gente haciendo Agilidad en Cobol o, ya puestos, en Marketing o en equipos que hacen televisión) o “no se puede hacer Scrum sin técnicas de programación Ágil”. Que no es que “La excelencia técnia no mejore la agilidad”, por citar un principio Ágil, pero en ninguna fuente autorizada sobre el universo Ágil se citan estas técnicas como condición “sine qua non” o “necesaria y suficiente” para ser Ágil.

De hecho el manifiesto cita cuatro valores, ninguno de los cuales se refiere directamente a la ingeniería, y 12 principios, de los cuales solo uno cita una “mejora” de la Agilidad mediante la aplicación de la excelencia técnica.

Insisto: me paso la vida evangelizando sobre cosas como la automatización de tests, la propiedad colectiva de código, los estándares de programación, la integración continua e incluso los repositorios de código y el control de versiones. Creo que en pleno siglo XXI un equipo que busca la mejora continua acabará tarde o temprano enfrentado al estado del arte. Pero si de buenas a primeras te atrincheras en un elitismo taliban y, además, condenas cualquier cosa que huela a proceso u organización, luego no te quejes de lo dificil que es que te dejen ser Ágil en la empresa. Porque para empezar, no has entendido nada.

El problema es que muchas masas oprimidas en las trincheras de la programación se están arremolinando en torno al ideal libertario de los verdes pastos de la comuna digital y se están creyendo cosas como “si el código está bien hecho, lo demás no importa”. Hartos de entornos viciados, compañeros tóxicos y jefes incompetentes, creen que la salida es echarse al monte compilador a cuestas y entonar cánticos de integración continua y refactorización en torno a la hoguera comunitaria del subversion.

Bueno. Tiempo al tiempo. :-(

El otro grupo (en el que me auto-alineo, claro), discute frecuentemente sobre aspectos culturales de la Agilidad, el comportamiento de las personas, la frontera entre disciplina y auto-organización, los procesos que no se anteponen a los individuos, la mínima documentación que debe existir con cada incremento de código funcionando, negociar y colaborar con el cliente, crear equipos de alto rendimiento, las retrospectivas, los planes de mejora, la adaptación al cambio, el concepto de valor, el diseño emergente, la definición de set mínimo de funcionalidades con valor de mercado, el coaching de equipos, personas, gerentes y clientes, los contratos que reflejan nuestra forma de trabajar, la gestión de proyectos, los sistemas complejos… Y no condenamos las prácticas de ingeniería ($deity nos libre). De hecho las recomendamos. Y sin embargo existe un cierto interés en hacernos aparecer como “el enemigo”. Dejo a criterio del lector el decidir por qué, que bastante me estoy mojando ya con este rant.

He estado también como decía en el Amsterdam Scrum Gathering, del que tenéis varias fotillos aquí. Será porque “Scrum es cosa de gerentes”, pero ni aquí ni en la Lean Kanban Europe pude respirar este mismo clima de “talibanismo técnico” que me pareció respirar en la #aos2010.

Tuve la oportunidad de hacer una lightning-talk o “charla relámpago”, de la que pude grabar este video (la presentación está aquí):

Sustainable Pace: The Boxer, The Aikidoka and the Katana Suburi from Proyectalis on Vimeo.

También pude hacer un Ideacamp sobre Scrumban parecido al que hice en a Agile Open Spain. Gustó tanto que varias personas me pidieron que hiciera un “whitepaper” sobre esta aproximación, pero como eso es muy aburrido en su lugar he hecho esta presentación que espero que pueda ayudar a los que intentan compaginar Scrum con un entorno de alta incertidumbre en el que, en el día a día, siguen surgiendo muchas otras cosas que también deben ser atendidas:

La experiencia del Lean Kanban Europe y la del Scrum Gathering han sido tan buenas que me he decidido a abrir un blog en inglés dedicado específicamente a la Agilidad. Seguiremos informando ;-)

Actualización: borraré inmisericordemente cualquier comentario en la línea de “para ti las prácticas de ingeniería no son importantes / son secundarias / son optativas”, ya que no es eso lo que he dicho como cualquier lector con dos dedos de frente podrá interpretar ;-) ;-) ;-)

Irracionalidad

Escrito el 25 de Octubre de 2010 a las 18:32 

Es curioso como mis proyectos llevan un ritmo primordial y casi arcano. El año pasado me pegué meses yendo a Madrid, el primer semestre del año ha tocado Pamplona, y de repente en Barcelona no pueden vivir una semana sin mi (¡hola chicos! :-D ). En todos los casos he intercalado viajes a otros sitios, pero hay tendencias cíclicas, casi mareas. Y no solo en la localización geográfica, sino en los temas que surgen.

Hace unos meses el tema era la organización de equipos con un único responsable / jefe de proyecto / Dueño de Producto. Ahora, por una causa o la otra, el tema caliente en varios de mis proyectos es “mi Dueño de Producto me presiona con plazos irreales”. Y no estamos hablando de sitios en los que no existe ningún tipo de cultura respecto a la gestión de proyectos, sino casos en los que ya llevamos meses formando e implementando metodologías con toda la organización.

O sea, que no es que no le hayamos contado a los Comerciales / Clientes / Gerentes, por citar más perfiles, la historia del triángulo de hierro, la incertidumbre y cómo esta se desborda hacia las variables que no hayamos fijado, y que en el caso de que fijemos todas las variables principales (alcance, tiempo, coste) más nos vale haber diseñado un dispositivo de almacenamiento de incertidumbre, es decir, un buffer de proyecto en la terminología de CCPM o, en andalú, corshón :-D , porque en caso contrario la incertidumbre volcará en variables como la calidad, los riesgos o los recursos humanos. O sea, que acabaremos haciendo más horas que cascoporro, entregaremos una bazofia hedionda e indocumentada que habremos de pasar por producto y suerte tendremos si no peta todo sin que tengamos un solo backup porque no había tiempo de hacer backups.

Oh, yeah!
:twisted:

Intento por todos los medios armar a los líderes de equipo / miembros senior / scrum master / jefes de proyecto con un arsenal de argumentos para explicar a los clientes / dueños de producto / comerciales / gerentes que, básicamente, lo que no puede ser, no puede ser y además es imposible. A lo que ellos responden “pues se tiene que poder“.

Y claro, el problema está ahí: en la irracionalidad. Ahí ya no hay argumentos que valgan. El equipo agacha las orejas, traga… Y la caga estrepitosamente, porque ahora la culpa de que todo haya ido mal es del equipo. El comercial es un heroe que vendió la moto, y el equipo unos pringaos que no consiguen que la moto (en realidad un triciclo) coja los 100 en 3,2sg. A echar horas. Y lo que es peor: quizás no sois culpables de que todo siga como siempre, pero como mínimo sois complices.

Así que ahí va mi receta para lidiar con estas situaciones: racionalidad, disciplina y coraje.

Una última palabra: como en todo, no se puede ser extremista ni talibán. Hay situaciones en las que hay que arrimar el hombro y tirar millas, pero en base a mi experiencia, en equipos motivados y en entornos sanos, no hace falta ni siquiera pedirle al equipo ese esfuerzo ya que ellos mismos serán los que tomen la decisión de apretar. Pero en el momento en que se toma esa decisión por ellos y no entienden los motivos o les parecen arbitrarios y parciales… Nos vemos en el mundo de la irracionalidad.

Por qué digo que no hay una industria del software en España

Escrito el 30 de Septiembre de 2010 a las 10:56 

Bueno, la primera razón es que me gusta el rollo “profeta del apocalípsis” :twisted: : me da muy buen resultado en las charlas, como en esta de la Conferencia Agile Spain 2010, en la que solté esta perla y fue ampliamente comentada:

Pero en serio, el caso es que llevo tiempo queriendo escribir sobre el tema siguiendo con la línea de mis dos post anteriores (consultoría Don Simón, Chapatas calentitas), y el hecho de que Xavi me haya remitido hoy un enlace a este artículo referenciado en barrapunto me empuja a hacerlo. La verdad es que coincido en gran mayoría de los aspectos y argumentos comentados por el autor, y específicamente la diferencia fundamental y no entendida entre los procesos de fabricación industrial (Taylorismo / Fordismo) y la naturaleza intrínseca del desarrollo de software es algo que se ha comentado ampliamente en la comunidad Ágil y que podéis ver en algunas de las presentaciones que he realizado al respecto (verbigratia, esta slide).

Naturalmente, cualquier afirmación grandilocuente, generalista y extrema como “No hay una industria del software en España” es tremendamente injusta, ya que al fin y al cabo se trata de un recurso retórico ;-) . Por supuesto que hay empresas dedicadas al software. Pero el promedio de la industria no es ese, y la dispersión respecto a la media no es muy grande que digamos. Si nos preguntamos cuál es la industria media del software en España, habrá poca gente que piense cosas fuera de un circuito “consultoras, banca, administración…”. Y ahí es donde digo que eso no es una industria del software, porque este tipo de empresas no te venden un software: te venden “horas de programador”. Como si una hora de programador fuera una commodity, es decir, algo perfectamente intercambiable por la hora de cualquier otro programador, y cuyo único valor reside en la cantidad de producto que poseemos o negociamos.

Oh. Dios. Mío. Las cosas pueden estar algo más rotas, pero no mucho, la verdad.

Pensamientos como este conducen a desastres organizativos como las “líneas de montaje” consultor-analista-desarrollador-tester en las que diagramas UML, mapas entidad-relación, modelos de datos y documentos de requisitos viajan por correo electrónico entre personas que no hablan nunca entre ellas. Como si un programador fuera una máquina a la que alimentamos con UML y escupe código. Y claro, en algún momento acabamos por pensar si no habría forma de diseñar algún tipo de máquina o herramienta (no se, llamemoslas CASE) para librarnos del incordio de los programadores, que son unos tíos raros que llevan camisetas frikis, huelen mal y protestan por todo. Bloody programmers. :-D :-D

¿Veis lo roto que llega a estar todo?

Claro, si al final la oferta se basa únicamente en “horas de programador” y no en producto, la discusión comercial ya no va en términos de funcionalidad, calidad, rendimiento… Si discutimos cobre una commodity, como por ejemplo el petroleo, solo discutimos el precio del barril y dónde me lo vas a entregar. Y cuando de repente vendo diez mil barriles, da igual si cojo dos mil de aquí, tres mil de allá, cuatro mil de acullá y luego voy “sisando” otros mil barriles poco a poco de otros sitios: el proyecto ha sido un éxito.

Pero cuando intento hacer una operación a corazón abierto, a nadie se le ocurre que la primera hora la haga un cirujano, la segunda otro distinto y la tercera ya veremos si pillamos a alguien por el pasillo para que la termine. La ventaja con la que cuentan los médicos es que ya llevaban miles de años gestionando hospitales antes de que los industriales del automovil se alzaran como adalides de la producción en cadena, las economías de escala y los sistemas MRP.

Lo mismo ocurre con los equipos de desarrollo. Nadie que de verdad conozca cómo funciona la creación de un producto sofwtare puede pretender que enfoques como el “pool de recursos” proporcionen mejor rendimiento que un modelo basado en equipos comprometidos, autogestionados y capacitados. Tendré que hacer otro articulo para hablar de los factores de motivación inherentes al trabajo en equipo y su efecto en el rendimiento cerebral de una persona a la que, en realidad, no pagamos por calentar un asiento o imputar horas de “farmville” al proyecto, sino por resolver problemas complejos y únicos de la forma más eficaz y eficiente posible.

¿Alguien puede creerse aun que las economías de escala funcionan necesaria y directamente en el mundo del software? Si eso es así, y teniendo en cuenta que una consultora puede considerarse afortunada si genera entre 60.000 y 200.000 euros por empleado, ¿Cómo es posible que compañías como Craiglists, con 30 empleados, generen un ratio de más de tres millones de dólares por empleado? ¿Cómo consigue 37Signals, creadores de Basecamp y Ruby on Rails, dar soporte a más de tres millones de clientes con una plantilla de en torno a 18 personas?

Y seguimos sin entederlo. Medimos los proyectos por el número de horas que imputamos, y claro, si te acercas a una de estas empresas y les dices “puedo enseñarte cómo hacer ese proyecto de doce años en solo uno” te miran con cara de susto y te responden “¿tú eres idiota? ¿por qué debería cobrar sólo por un año si puedo cobrar por doce?”.

Y tienen razón. Y ganan pasta. Mucha.

No vendemos software: vendemos servicios. Vendemos disponibilidad, horas suboptimas de bajo rendimiento pero en gran cantidad y baratas, muy baratas, más baratas. Las primeras compañías que se dieron el batacazo con el offshoring ya se dieron cuenta que externalizar el trabajo a una compañía que te vende las horas a mitad de precio no es tan buen negocio si luego las horas crecen al cuádruple porque no sabemos gestionar bien proyectos con el “ruido” que introduce un entorno offshore o porque los programadores tan baratos que nos han vendido no distinguen un ordenador de un piano. El panorama ha cambiado y después de décadas de offshoring los proveedores de estos servicios han descubierto muchas cosas respecto al negocio en el que operan, y ahora mandan a gente al origen para que haga de puente entre sus clientes y ellos, forman a sus trabajadores, protegen a sus equipos… Y usan metodologías Ágiles de desarrollo, pero esa es otra historia.

Tengo muy pocas esperanzas puestas en que el negocio de las “cárnicas” cambie, pero las pocas que existen están en el lado del cliente más que en la capacidad de los equipos y miembros de estas empresas para cambiar una mentalidad directiva que solo ve los resultados desde la perspectiva del dividendo y la cifra de negocio. Las consultoras comienzan a llamarme para que las forme porque sus clientes empiezan a exigir enfoques Ágiles de los proyectos, y esto es una gran noticia. Esperemos que la cosa prospere a partir de ahí: mucho más bajo no podemos ir… ;-)

Proximos saraos

Escrito el 22 de Septiembre de 2010 a las 10:03 

Un poco de Spam, que para eso el blog es mío: aparte de todo el trabajo privado que ando haciendo en empresas, tenéis oportunidad de asistir a cursos y charlas en los siguientes “saraos”:

Tenéis las convocatorias de CEIN aquí y la información del Agile Open Spain aquí. Ah, estaré el viernes en Lean & Kanban Europe 2010, pero creo que a esta ya no llegáis… :twisted: . También estoy intentando que me inviten al Scrum Gathering de Amsterdam, para lo cual me vendría bien que votaseis esta charla…Anda, venga, promocionemos internacionalmente el producto patrio… :-D

Conferencia Agile Spain 2010

Escrito el 11 de Mayo de 2010 a las 18:20 

agilev230largo_.png

Ya deberíais etar al corriente, pero por si las moscas: los días 10 y 11 de Junio se celebra la primera conferencia sobre metodologías Ágiles en España, organizada por la Asociación Agile Spain. Tengo el placer y el privilegio de que me hayan seleccionado dos sesiones (sobre itinerario de implementación Ágil y sobre gestión de equipos Ágiles) y un taller conjunto con Xavi Albaladejo sobre dirección de retrospectivas, cosa que me hace especial ilusión porque, aparte de que Xavi es un profesional al que respeto profundamente y del que seguro aprendo muchas cosas nuevas preparando este taller, creo que las retrospectivas son la gran herramienta Kaizen de metodologías como Scrum, y creo que la gente tiene muchos problemas para sacarle todo el partido que debería. También tendré el lujazo de asistir a Henrik Kniberg en su taller sobre mapas de flujo de valor y Kanban, ya que al ser en inglés puede que algunos de los asistentes necesiten algo de atención perrsonalizada.

Las inscripciones a la conferencia ya están abiertas, y el programa disponible. Las plazas son limitadas, especialmente en el caso de los talleres, por lo que os recomiendo a todos que os apuntéis cuanto antes (¡queda un mes y contando!).

Algo que quería hacer desde aquí es felicitar al equipo que está organizándolo todo, al que intento apoyar en la medida de mis posibilidades, porque ninguno vive de esto y sin embargo la dedicación que le están poniendo y la calidad de los resultados creo que hablan por si mismos. Si es que cuando un equipo Ágil se pone… ;-)

¿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 :-D . 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 :twisted: .

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í:-D . 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é :twisted: ).

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”. :-D

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. ;-)

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…. :-D ).

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:

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! :-D

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! :twisted: . Esto os pasa por enfadar al enanito del Karma… :-D :-D

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… :-D ) 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! :twisted: ), 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 :twisted: . Propósito de año nuevo al saco. ;-)

Más antiguos →

Buscar:

Suscriptores:

Kisei Dojo Aikido

Pastafari!

Tags

Que se dice por aquí:

Qué se dice por ahí:

Twitter

    Fotos

    www.flickr.com
    angel.medinilla fotos Más fotos de angel.medinilla
    Cerrar
    Enviar por Correo