Hace un par de semanas, los días 3 y 4 de marzo, fue el WeCode Fest de Valladolid, y en el Open Space del sábado propuse una sesión sobre cómo dar amor al Legacy Code.
Tuvo muchos votos y salió para justo antes de la comida, compitiendo duramente con el Power Point Karaoke!

Foto de Toño
Como proponente empecé contando nuestra experiencia en un cliente, de cómo estamos atacando código legado de una aplicación que lleva 5 años de desarrollo y ha pasado por varias manos. En julio hablamos ya en el blog de Codesai sobre nuestros comienzos en este proyecto.
Mi intención era que entre todos los interesados viésemos diferentes aproximaciones de acercarse al código legado, así que hice una introducción rápida.

Foto de Amisai
En este diagrama se ve parte de las cosas que comentaba.
Después de la breve introducción, empezaron las preguntas. En principio estaban muchas relacionadas con la aparente complejidad de la solución propuesta.
Todo iba bien, hasta que una persona me dijo que no teníamos “roadmap”. Al principio no sabía a qué se refería y tras explicarse un poco más entendí que se refería a que parecía que íbamos improvisando cómo atacar el Legacy. Yo le comenté que no, que realmente cogíamos la mejor opción dependiendo de la historia de usuario y de la complejidad.
A partir de ese momento varias personas empezaron a ver problemas en mi propuesta, diciendo que no les gustaba y que era equivocada.
Viendo que mi experiencia no estaba gustando mucho, intenté dar voz a más personas, pedir alguna opinión o experiencia diferente, pero siguieron las preguntas en el mismo tono.
Me empecé a sentir como si fuera un juicio y me estuvieran acusando de algo, porque no eran preguntas para obtener información, eran preguntas para comprobar que efectivamente según la visión del que preguntaba, la opción expuesta no era buena. Me vi justificándome continuamente sobre lo acertado de la solución y lo bien que lo estábamos haciendo. Incluso forzado a mostrarme categórico con decisiones que estaban en pruebas o de las que no estaba muy seguro.
Mi incomodidad era muy evidente según me dijeron luego. Incluso alguien me comentó que como dudé en alguna respuesta sirvió de acicate para aumentar la insistencia y la agresividad.
Algo se había roto en la sesión.

Foto de Alberto
No había quedado espacio para más opiniones. Solo con el tiempo vencido y casi obligando a la gente a cambiar de tema, le pedí su opinión a un compañero que sabía que había tenido experiencias con legacy y había usado otra aproximación.
La sensación que me quedó después de terminar fue horrible, me duró toda la tarde. Estaba muy afectado por ver cómo se me había ido de las manos.
Pidiendo feedback parece ser que en la explicación inicial, por querer ir rápido, no justifiqué de manera adecuada algunas decisiones, incluso llegué a bromear que fueron arbitrarias. Que me centré demasiado en el qué, en las tecnologías y poco en el cómo, en la calidad del código. Es una lección aprendida, cuando trate temas que pueden ser polémicos, seré más claro en los argumentos.
Pero lo que más me preocupa es lo que siento que se rompió ese día.
Y no solo lo noté yo, lo notaron muchas personas con las que pude hablar en la cena.
Los principios de un open son coraje y apertura, valentía para exponer lo que sabes y lo que no sabes, y confianza en el grupo que sabrá comprender tu contexto.
Eso desapareció en la charla que propuse, las preguntas parecían a pillar, y lo peor, es que sentía que no podía decir “no lo se”, o que “eso no lo tuvimos en cuenta”, o “no soy el que más conozco del tema de mi equipo”.
Como me comentaron luego, para la próxima debería intentar reaccionar diferente: aplicar la “Ley de los dos Pies”, porque ni aportaba ni estaba aportando, o decir en voz alta: “Mirad, veo que no lo estáis comprando, no pasa nada, o yo me expliqué mal, o efectivamente nos hemos equivocado. ¿Alguien tiene alguna propuesta de cómo afrontar un problema similar?”.
Tampoco era mi intención contar mi experiencia como la única y verdadera, solamente era una de muchas otras correctas.
¿Tenía que haber llevado el tema mucho mejor preparado? Seguramente.
¿Es el objetivo en un open space? No lo creo.
Si la sesiones del open no son un espacio seguro, se pierde lo más importante del open.
Aunque si tengo que dar una explicación a lo que sucedió, creo que algunas de las personas se olvidaron de que estaban allí para aprender, o para aportar, para recoger múltiples experiencias. En cambio se centraron en juzgar. Puede ser que tuvieran falta de experiencia en un Open Space, o puede ser por el desafortunado “automatismo” de nuestra profesión, donde los debates son vistos más como combates o guerras que ganar o perder.
Lo peor es que por momentos como este alguien pueda coger miedo a hacer propuestas en un Open.
Como aprendizaje me llevo intentar reaccionar cuando vea o sufra una situación parecida, y os propongo lo mismo, que si a alguien le vuelve a suceder levante la mano, pare la sesión y reconduzca a un espacio de aprendizaje. Todos se lo agradeceremos.