El rol del líder técnico
Con los actuales cambios en la creación de equipos técnicos; hemos visto puestos que han evolucionado, algunos que han desaparecido y otros que han incrementado sus responsabilidades y sus conocimientos. En este último punto está el rol del líder técnico.
Pero antes de ahondar en sus responsabilidades me gustaría dar respuesta a
¿Qué es un líder técnico?
Para mi, es aquel desarrollador(a) que sabe jugar en equipo y que ha tenido experiencia analizando, desarrollando e implementando distintas soluciones (robustas) de software, que se ha encontrado con dificultades técnicas en este proceso y que ha sabido interactuar con clientes (internos y externos)
Sabe como llevar un proyecto a buen término y ver hacía el futuro en pro del equipo, siempre teniendo en cuenta al negocio. Además de estas habilidades debe de contar con una excelente forma de comunicación, don de gentes, habilidades de gestión de personal y como no, habilidades para enseñar. Todo esto debe servirle para generar confianza y empatía con el equipo técnico y junto con una visión técnica (para saber cuando y como una tecnología encaja) darle valor al negocio.
Responsabilidades de un líder técnico
- Estar al pendiente del equipo y del negocio. Por sobre todas las cosas, el líder técnico tiene que observar a su equipo, hablar con cada integrante y saber que le preocupa y hacia donde quiere llegar (junto con la visión del negocio) motivarlo y dejarlo en paz cuando sea necesario. Todos somos diferentes y es labor del líder técnico saber como interactuar con los miembros del equipo para sacar su máximo potencial para beneficio del proyecto.
- Enseñar y aprender. No hay mucho que decir aquí: la mejor forma de aprender es enseñar (lo poco o mucho que se sabe) y el equipo notará su crecimiento y añadirá más conocimiento a su caja de herramientas mental. Además, la apertura del líder de aprender de los demás, es una pequeña acción que ayudará a generar confianza en el equipo para que todos puedan preguntar sobre dudas o generar ideas sin temor a equivocarse.
- Implementar estándares de codificación. Ya lo hablamos aquí. Es importante que los desarrollos cuenten con estándares para que cualquier nuevo elemento pueda entender que está pasando dentro del software y que los desarrollos de nuevos requerimientos (y sus pruebas) puedan ser implementados con mayor eficacia.
- Instaurar y fomentar una cultura de pruebas. No vale sacar el requerimiento rápido si al llegar a producción va a romperlo todo. Es responsabilidad de todos probar. Pero si el líder técnico no lo hace, y no enseña con el ejemplo, mal vamos. Unit Testing y BDD son amigos de todos.
- Fomentar la cultura de mejora continua. Por desgracia, el software se pudre rápido. No solo es la deuda técnica (que se debe pagar si o si) a veces la base de código no siempre es la mejor y deben existir opciones de refactoring. Actuar con el ejemplo, haciendo tareas para mejorar el desempeño, documentando un módulo o mejorar la legibilidad del código hacen un gran cambio. Recuerda la teoría de las ventanas rotas: también funciona al revés, si tu actúas, los demás actuarán en consecuencia.
- Implementar buenas prácticas de desarrollo de software. El rol del líder técnico tiene que velar por implementar la mejor metodología para que el proceso de desarrollo llegue a buen puerto. Desde revisar el sprint backlog, hacer pair programming, mejorar la revisión de los pull request, hasta encontrar la mejor manera de desplegar el software.
Conclusión
Como vimos, el líder técnico es una fusión de conocimientos y habilidades de liderazgo, desarrollo y arquitectura de software que si o si incrementará la velocidad y calidad de tus equipos de desarrollo.