Que en España no se valoren las habilidades técnicas es algo que todos sabemos, no nos vamos a engañar. Todo el mundo termina la carrera y su primer trabajo suele ser de programador. A partir de ahí la carrera profesional premia el ir abandonando esa habilidad y avanzar en otras para cambiar de puesto: analista, jefe de equipo, arquitecto, … así hasta llegar a ser el director de “algo”. Y claro, pues pasa lo que pasa y nos encontramos con la mayoría de proyectos de software suelen fracasar (en tiempo, en presupuesto, …) y a veces el mercado nos dice que el problema es la falta de buenos programadores.
¿Y no sería mejor que los “jefes” continuarán programando? ¿No sería mejor que al menos una parte de su tiempo siguiese siendo “técnica”?
No paro de verlo en otros sectores donde lo normal es que la gente trabaje en lo que mejor preparado esté (y más experiencia tenga), y no al contrario.
Por ejemplo, el jefe de urgencias de un hospital no está sentando en un despacho viendo como vienen y van los pacientes mientras que otros los atienden. Si bien es cierto que un porcentaje del trabajo es de coordinación y gestión, hay una parte que todavía le obliga a remangarse y atender a pacientes como médico que es. ¿A qué a nadie se le ocurre poner a coordinar un servicio de urgencias a un médico que nunca haya estado en urgencias?
Y cuando vas a un restaurante… ¿a qué a nadie se le ocurre que un jefe de cocina (el chef) no sepa cocinar? Desde luego yo no iría a ese restaurante si fuese así… ¿Y quién tiene el prestigio del restaurante? Prácticamente siempre el chef.
Esto es así en cualquier trabajo que requiera un mínimo de creatividad y de capacidad intelectual para solucionar problemas. Y el software tienen una complejidad que es muy alta, y no es diferente al resto.
Si pierdes el contacto con el código pierdes la conexión con el equipo y en consecuencia con el proyecto. Pero lo peor de todo es que perderás la habilidad que te ha llevado hasta tu puesto. Eso nunca puede ser bueno.
Esta claro que los gestores deben concentrarse en las estrategias, la coordinación, la supervisión, etc. y tiene sentido que dediquen gran parte de tiempo a todo eso. ¿Pero acaso nuestra industria no es tecnológica? Si abandonas la tecnología (el desarrollo de software) la consecuencia en el resto de aspectos puede ser devastadora: malas decisiones, mala planificación o pérdida de liderazgo, entre otras.
Aquí van algunas razones de por qué deberías seguir dedicando algo de tiempo a programar:
Por la propia naturaleza del software todos somos muy malos planificando así que imagina si además te alejas mucho de la codificación y las tareas técnicas.
¿De verdad crees que puedes saber la complejidad de las cosas como para estimar el tiempo de resolverlas? Olvidate. Te vas a equivocar siempre. Estimar no es timar.
Si no programas, dime cómo vas a saber el impacto que tiene el hacer las cosas de una u otra manera. ¿Cómo vas a ser capaz de priorizar una nueva funcionalidad frente a refactorizar? ¿Cómo vas a debatir con tu equipo si algo que haces hoy puede ser peor o mejor a largo plazo?
Al final, solo te centrarás en estar pendiente de que la planificación se cumpla, algo que por cierto ya sabes que nunca se cumple. Menudo problemón. Acabarás acumulando mucha deuda técnica.
Cuando eres gestor debes liderar. No se trata de estar tomando todas las decisiones de tu equipo, o aprobándolas todas, se trata de tener el conocimiento y estar en contexto para poder facilitar esas decisiones.
Tu eres el responsable del resultado, y tu habilidad para poder elegir entre las diferentes opciones debe ser acorde a esa responsabilidad.
Si tu equipo tiene pasión por el desarrollar código entonces tu tienes que dar ejemplo y ser el primero en hacerlo.
Ten en cuenta que los miembros de tu equipo te respetan, y lo harán mucho más si demuestras que lo que ellos hacen (programar) es algo que tú también haces.
Un buen líder no se queda en un pedestal, se baja de él y empuja para sacar el proyecto adelante como cualquier otro miembro del equipo.
Deja de mantener tus habilidades técnicas y te quedarás fuera de juego en menos que canta un gallo. Nunca sabes lo que ocurrirá mañana, así que debes seguir “entrenándote” continuamente para lo que pueda pasar. Y esto es como hablar un idioma, si no se practica, se pierde.
Es curioso como muchos gestores/jefes/managers hablan constantemente de la mejora continua, de lo necesaria que es, de como ayuda a innovar, a crecer y a tantas cosas, pero siempre olvidándose de la mejora en habilidades técnicas. Es curioso como algunos incluso lo venden como un servicio para tu organización.
Pero cuando rascas un poco, te das cuenta de que siguen usando el mismo Excel que hace 20 años para gestionar, que nadie los saca de su metodología X para planificar, que no adoptan nuevas técnicas de gestión, que siguen con sus diagramas de Gantt que nadie cumple, y tantas y tantas otras cosas.
Y es curiosos como todos ellos les piden (o más bien exigen) a sus equipos que sepan todos los lenguajes de programación actuales, que sepan de las últimas tecnologías disponibles, que de un día para otro hagan magia con su código, que hagan demos de plataformas que no han probado, que cambien de tecnología cada año, y tantas y tantas otras barbaridades.
Así que desde aquí, si me lees, te pido por favor que no permitamos que esto ocurra, que no nos convirtamos en simplemente gestores y nos olvidemos de la tecnología y demos esa parte por “hecha”, porque es la más importante de nuestros proyectos.
Basta ya de gestores trogloditas. Está en nuestras manos cambiarlo.