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?
Releyendo a los clásicos
Escrito el 24 de Noviembre de 2009 a las 10:43
La perspectiva de los años siempre aporta nuevas lecturas a los buenos libros. Incluso si son pocos años, si han sido intensos aportarán matices, vivencias, experiencias, nuevos paradigmas… Al final, nosotros leemos los libros, pero de alguna forma, como dice Terry Pratchett, el libro también nos lee a nosotros. A veces es como encontrarse con un viejo amigo: las cosas no son las mismas, y probablemente no sientas esa conexión tan profunda e intensa que había hace tiempo, pero también nos sirve para vernos de alguna manera reflejados en el espejo de su perspectiva y para comprobar que, a pesar de todo, las raices siguen ahí, y que siempre puedes contar con esa persona (ese libro, en este caso).
Por eso me está encantando releer a mi gurú de los recursos humanos, Ricardo Semler, a quien leí antes de hacerme empresario. Mucha gente que ha ojeado “Radical” tiene la visión de que Semler predica el “flower power” de anarquía y cerveza fría, de paz, amor y el plus p’al salón. Sin departamento de recursos humanos, sin controles, sin reglas…Lógico. Uno es empleado y lee solo la parte que conviene al empleado. En Scrum por ejemplo (para mi audiencia Agilista, jejejeje
) esto sería “el Dueño de Producto no puede intervenir en el Sprint“, pero luego no aceptar compromisos, no dar estimaciones, no reportar diariamente, no mejorar la velocidad…).
Que no. Que no, hombre, que no. Que no os estáis leyendo toda la historia. Repasad. Concretamente, algunos pasajes de “El fin de semana de siete días”:
- “El primer principio que se debe aceptar es que si un empleado no siente interés por un producto o proyecto, en ese caso la iniciativa nunca tendrá éxito. Yo prefiero descubrir eso antes, de modo que pueda despedir a la persona, hacer que se despida ella, o lo que es mejor, pasarla a otro proyecto que sí le interese. […] Quiero empleados que se entusiasmen con su trabajo. Si desconocen como crear esa pasión, haré lo posible para ayudarlos. […] Para que una compañía destaque, los empleados deben estar seguros de que el interés propio, no el de la empresa, es su principal prioridad.” Lectura: que le den a la empresa, a mi lo que me interesa es jugar a la consola. Mal. Persiga usted esa pasión de jugar a la consola, caballero, pero eso implica no hacerlo aquí, ya que nosotros no nos dedicamos a eso. Si ninguno de nuestros proyectos o iniciativas le motiva, ¿se puede saber por qué demonios vino a trabajar aquí en un principio?
- “Si alguien trabaja de auxiliar de vuelo de tierra en un aeropuerto y la empresa cree que se necesitan cincuenta horas lectivas para aprender a realizar correctamente ese trabajo, ofrecerán ese curso con esa carga horaria. Pero dependerá del empleado en cuestión aceptar esas clases. La persona puede invertir ese dinero en formación para directivos o cursos de idiomas en vez de clases de control de tráfico. En vez de desalentar esas decisiones, la compañía las acepta, siempre que el empleado sepa manejar el tráfico aéreo o tratar a los clientes sin tener que recibir clases”. Lectura: debo aprender inglés, pero he visto un curso de patrón de yates que mola mucho más. Mal. Haga el curso de patrón de yates, pero en cuanto no rinda usted con el inglés consideraremos que no tiene usted criterio como para tomar decisiones por sí mismo, y como no queremos hacer de niñera de nadie le invitaremos a que madure o busque una empresa en la que les guste manejar droides sin mente.
- “Quizás las empresas no tendrían que esforzarse tanto en motivar a los empleados si intentaran hablar con ellos, descubrir lo que quieren y después otorgarles libertad para perseguir sus ideales”. Lectura: jefe, a mi lo que me motiva es tumbarme en la playita a tomar el sol. Mal. De hecho, muy bien, vaya usted a la playa y tome todo el sol que quiera, ¿qué le detiene? Lo único, claro, es que no lo va a hacer cobrando un sueldo de esta empresa. Ah, que necesita el sueldo. Bueno, puede buscar un sueldo en muchísimos sectores o empresas que no son estos. ¿Qué le detiene? Busque uno cerca de la playa. Vuelva a leer de paso el punto primero.
Al final, todo se reduce a la actitud. Semler lo resume con un ejemplo: “la mujer de la limpieza de Semco (la empresa de Semler) es tan importante como el más alto de los ejecutivos. ¿Por qué? Cuando el consejero delegado de nuestra fábrica de balanzas digitales le preguntó cuál era su trabajo, la limpiadora contestó sin dudarlo ‘fabrico balanzas’”. Mientras ni entendáis esto, queridos, ya podéis chillar, patalear, quejaros, llorar y culpar a la economía, al sector, a los clientes, a los jefes, a la vida, al tiempo, al espacio y al sum sum corda. Y sobre todo, yo no puedo explicaros lo que es Matrix: lo tenéis que ver por vosotros mismos.
Píldora roja, chicos. Píldora roja.
¿Quién dirige y quién paga?
Escrito el 20 de Noviembre de 2009 a las 19:57
El cliente, of course. Fin del artículo, estoy muy liado.
Bueeeeeeno, vaaaaale, es verdad, llevo un montón de tiempo sin escribir, vamos a darle un mínimo de literatura.
La cosa surge hace unas semanas en un proyecto con un cliente en el que estoy proponiendo, como ya he hecho con éxito en otros muchos sitios, montar una tarde de viernes de cada dos como “tarde de laboratorio”. La idea no es mía directamente, la tomo prestada de Henrik Kniberg, y como está en Internet a disposición del respetable sería tontería guardármela en plan “secreto de empresa” o “know how”. Ala, el que quiera ya puede ponerse a ello, que el mercado es de todos. Arrieritos somos
.
Suponiendo una tarde cada dos semanas, la inversión total de I+D de la compañía estaría por debajo del 5%, algo que considero peligrosamente bajo en una empresa que depende fundamentalmente del capital humano y del conocimiento y capacidad de sus desarrolladores, pero por algo hay que empezar. Total, que el cliente a priori acepta bien la idea, pero hay una cosa que no acaba de ver claro. ¿Cómo le dice al cliente (al suyo) que los desarrolladores no están a piñón con el proyecto, que están “jugando” en el laboratorio?
Ahí es donde yo me quedo a cuadros claro. Quien me conoce sabe que no creo que los desarrolladores puedan sacar más de seis horas buenas-buenas de programación al día, y eso defendiéndolos a saco de interrupciones y context-switching. Lo que nos deja dos horas al día para slack (relajación, desayuno, café, facebook, twitter, blog
), gestión del proyecto, actividades de la empresa (informes, reuniones), I+D (incluiría la formación aquí) y, lo que hay que perseguir, gasto, el enemigo en Lean: re-trabajos, esperas, errores y mantenimientos, pérdidas de tiempo, procrastinación, charlitas de pasillo…
Todas esas cosas nadie las cuestiona. Se hacen. Cuando los desarrolladores reportan otra estupenda semana de 40 horas dedicadas al proyecto dormimos tranquilos, pero la verdad, la terrible verdad, es que muchas veces ni siquiera han salido 20 horas buenas en la semana. Que demonios, a veces no salen ni diez. Pero reportamos 40, el Jefe de Proyecto contento porque se factura y el cliente preocupado porque no entiende cómo leches después de 40 horas con el proyecto apenas tiene una pantallita de bienvenida a la aplicación. “Es que esto es muy complicado, Jefe”. Facturita al canto.
A lo que vamos: que podríamos ser honestos y, si cobramos 1.500 euros por consultor a la semana, reportar 20 horas a 1.500 euros. Pero entonces los chapuceros de nuestra competencia dicen que ellos son más baratos, que ellos cobran 1.500 euros por una semana de 40 horas. Sus consultores no desyunan, no van al baño, no asisten a reuniones, no responden correos, no leen en Internet, no tienen Facebook… O eso, o pasan 80 horas a la semana en la oficina, claro.
Y entonces somos poco competitivos. Así que subimos las horas y ponemos ese “100% de dedicación al proyecto” que al cliente le gusta tanto. Y todo el que ha estado en una consultora sabe que luego la gente está cargada al 200%, al 300%… Y lo que es peor: el cliente lo sabe también, pero hace como que no y baila el juego. Las cosas son así, siempre lo han sido.
Bueno, eso está bien para los que aun vivis en Matrix y dependéis del sistema tanto que matareis por defenderlo. Pero los renacidos en Sión, los que hemos estado en el otro extremo de la realidad, los que tenemos clientes con los que se puede colaborar, crecer y pasarlo bien… Nosotros vemos las cosas de otra forma.
Por lo pronto seguimos y asimilamos el dicho de Tom Peters : ¿Quién dirige la compañía? Los clientes. Los habitantes de Matrix oyen esto y dicen “el cliente quiere muchas horas gratis”, y crean una realidad en la que solo van a comprarles ese tipo de clientes. El que vaya a pedir un proyecto a una de las grandes “cárnicas” ya sabe a lo que va. Pero el estado mayor de Sión se reune y cuelga en la web (en la más fea de la Internet, eso sí) un manifiesto en el que declaran que el cliente lo que quiere es producto funcional, adaptación a los cambios, colaboración y trato personal. Y eso es en lo que creemos.
¿Quién paga las horas de I+D? El cliente. ¿Quién paga la fiesta de la empresa? El cliente. ¿Quién paga las nóminas, incluyendo la de la limpiadora? El cliente. Todo lo que no sale puntualmente de una ampliación de capital o un préstamo es, tarde o temprano, pagado por el cliente. Costes de infraestructura, maldita sea, repercutidos directamente en el coste del producto o en la tarifa horaria. Lo que el cliente quiere no es saber cuanto gastamos en donuts. Quiere un producto cojonudo muy bueno, a muy buen precio y muy rápido. Y eso se consigue siendo muy bueno y muy rápido. Y a eso se llega desarrollándose y mejorando.
Y para poder ser competitivos está bien que intentemos reducir el gasto (Muda, en la terminología Lean) y que los costes de gestión sean lo más eficientes posibles. Pero ponerse a recortar en I+D, y más con los vientos que corren… Y encima usar para ello la excusa de que el cliente es lo que quiere… En fin, no puedes salvarlos a todos, Neo.



