Líder Técnico
Hace algunos años el ciclo de vida del software llevado a cabo por fábricas y compañías alrededor del mundo se menospreció y por ello, el valor que tenía el rol de “líder técnico” en los proyectos de construcción de software decayó hasta el punto en el que muchas compañías quitaron de la estructura organizacional dicho cargo y, por ende, los proyectos fueron perdiendo fuerza hasta que dejaron de ejecutarse.
Hoy en día el panorama es diferente, muchas organizaciones en el mundo reevaluaron la importancia del rol en la dinámica de los proyectos de construcción de software y le otorgaron un puesto digno dentro de la jerarquía organizacional, aun así, muchas compañías pierden de vista la importancia de aquel rol y se termina delegando las responsabilidades que debería ejercer el líder, entre un desarrollador y un Arquitecto de Software, quienes, a su vez, tienen a cargo otras tareas fundamentales dentro de un proyecto.
De líder técnico a Arquitecto de software
Lo anterior pasa tan a menudo que inclusive muchos ingenieros desconocen el rol de líder técnico dentro de la estructura de los proyectos, ya que por lo general los ARQUITECTOS DE SOFTWARE son quienes asumen las responsabilidades asociadas al mismo, lo no permite ejecutar un trabajo de calidad y a la larga, generando consecuencias como: sobrecarga de trabajo, reprocesos y sobrecostos.
En el presente artículo, exploraremos la importancia de este rol y su anatomía, todo con el objetivo de concientizar a las organizaciones de su valor, y proveer a los Desarrolladores de una guía básica para convertirse en uno, ya que por lo general este es el siguiente paso en el proceso evolutivo de un Ingeniero de Software dedicado a la construcción de software, en su camino para convertirse en un Arquitecto de Software.
El liderazgo técnico como puente. Tomado de “Bridging The Gap”
El rol del líder técnico
La importancia del rol de líder técnico en un proyecto de software es muy similar a la del puente de Brooklyn en Nueva York: conecta los distritos de Manhattan y Brooklyn, y permite la dinámica diaria de esta inmensa ciudad; de la misma manera, un líder técnico conecta la arquitectura planteada para un proyecto de software con la realidad del código, y permite la dinámica de la construcción eficiente de software.
Puente de Brooklyn. Tomado de “Puente de Brooklyn”.
Un líder técnico es responsable de alumbrar y dar forma a la arquitectura planteada por el Arquitecto de software, haciendo énfasis en las especificaciones que la arquitectura no presenta en detalle, es básicamente responsable de un proceso de refinamiento, en el cual se toma la visión del Arquitecto de software y se especifica en detalles más prácticos para el equipo de desarrollo. En el caso del surgimiento de retos y/o problemas, es el responsable de definir las metodologías y las técnicas para abordarlos.
Por último, cabe resaltar una de las principales responsabilidades de un líder técnico: tiene una meta diaria que nunca puede olvidar y es la de brindar ayuda técnica continua y proactiva a todos los desarrolladores del equipo, con el fin de garantizar el éxito de cada uno de ellos en el proyecto.
Líder Técnico puente entre el arquitecto de software y los desarrolladores. Tomado de “Cracking the Code: Breaking Down the Software Development Roles”.
Ahora bien, ya que hemos descrito a grandes rasgos las responsabilidades y la importancia de un líder técnico en la dinámica de un proyecto de software, surge la pregunta: ¿Cómo llegar a ser uno? o ¿Cuáles son sus funciones?, e inclusive ¿Cuáles son sus herramientas?, daremos respuesta a estas preguntas a continuación, y para empezar debemos tratar el principio fundamental de este tema: ¿Qué es ser un líder y Cómo ser uno?, existe un principio trivial, antes de ser líderes técnicos debemos ser líderes, y no solo en nuestras actividades como ingenieros de software, sino también en nuestra vida personal, es más, este es el primer ámbito de nuestras vidas por el cual comienza la construcción de nuestro liderazgo.
¿Qué es ser un líder?
Antes que nada, saquémonos de la cabeza el mito de que las personas nacen siendo líderes, además de que es una afirmación absurda, la realidad es que los líderes se hacen, y cualquiera de nosotros puede ser uno, lo único que hace falta es determinación, y es algo con lo que contamos todos.
La calidad de un líder se basa en la experiencia, y el tema principal aquí, es que la habilidad principal de un líder está en NO evadir los errores o culpar a otros, sino en buscar soluciones efectivas, rápidas y de alto impacto para mitigar las consecuencias del error.
El liderazgo tiene cuatro realidades básicas y tres principios básicos, los cuales exploraremos a continuación:>
Primera realidad
Un buen líder debe ser primero un excelente seguidor, es de suma importancia para una persona que desea liderar un grupo, haber estado en la posición de recibir órdenes y ejecutarlas, esto le permite a un futuro líder forjar un criterio a partir de la experiencia de haber compartido con sus seguidores, ya que la comunicación establecida y el comprender las diferentes situaciones, conllevan a establecer una conexión mucho mayor con su grupo, e inclusive le permite mirar los problemas desde diferentes perspectivas y modelos de vida, una ventaja importante sobre las personas que piensan que lo saben todo.
Segunda realidad
Un líder tiene confianza en sí mismo, la autoconfianza y la coherencia de vida son las columnas del liderazgo, ya que cualquiera de nosotros en la posición de seguidor solo confiamos en las personas que se nota que saben de lo que hablan, y no en charlatanes.
La confianza como tal es algo que se desarrolla como un hábito, y pertenece a todos los ámbitos de nuestra vida, si nos vamos a la parte profesional, debemos empezar con confiar en nuestros conocimientos, y si de alguno no estamos seguros es preferible fundamentarlo, y no hablar de él como un palabrero, básicamente es confiar en nuestra experiencia y estar orgullosos de ella, pero sin rayar en la soberbia, ya que debemos ser conscientes de que nuestro crecimiento depende de aprender de todos y cada uno de nuestros semejantes.
Tercera realidad
Un líder toma el control, un líder debe aprender a tomar el control de una situación en cualquier momento por difícil que sea, si existe una solución, el líder de forma inmediata y proactiva analiza la solución y define un plan de acción, para el cual establece los recursos y las personas necesarias, y finalmente lo pone en marcha, eso sí, sin alejarse de la cabeza del grupo, ya que siempre está pendiente de todos los procesos del plan ejecutado, e inclusive si es necesario hace parte del recurso humano del mismo.
Cuarta realidad
El liderazgo es un hábito gradual, sencillamente no esperemos ser líderes de la noche a la mañana, el liderazgo se forma a partir de habilidades y hábitos de vida, los cuales con el tiempo nos permitirán tomar el control de situaciones complejas y riesgosas.
Ahora bien, un líder basa su comportamiento en tres principios básicos:
- Primero, un líder siempre escucha, el liderazgo no solo se trata de generar planes de acción y dar órdenes, se trata de escuchar las opiniones del grupo y ponerse en los zapatos de sus miembros, todo con el objetivo de tomar decisiones inteligentes teniendo en cuenta todas las perspectivas y realidades posibles.
- Segundo, un líder es humilde, sencillamente no por ser el líder del grupo estamos por encima de los demás, el principio aquí es siempre escuchar y comprender a los demás, sabiendo que todos estamos al mismo nivel
- Tercero un líder es comunicativo, el liderazgo como tal no es una fuente unidireccional de información, es más, es todo lo contrario ya que es un puente que conecta a las personas y los procesos, por lo cual es de suma importancia saber comunicarse, ya que de esta manera es posible hacer llegar los mensajes al grupo de forma correcta y eficiente.El ser comunicativo también es un hábito que se puede forjar con el tiempo, basta con aprovechar las oportunidades que nos da el día a día para ser más sociables, no solo en nuestro trabajo sino también en nuestra vida personal.
Lo anterior fue una descripción básica de la anatomía del liderazgo, y antes de continuar, no debemos olvidar un principio fundamental:
Todo líder desarrolla una actividad capaz de influenciar a la gente, con el fin de que se empeñe voluntariamente en el logro de las metas del grupo.
¿Cómo ser un líder técnico?
Ya que hemos explorado a grandes rasgos el cómo ser un líder, ahora debemos preguntarnos ¿Cómo ser un líder técnico?, para esto debemos partir del hecho de que un líder técnico es un punto intermedio entre ser un desarrollador y un Arquitecto de Software, es decir que es un profesional que gasto muchas horas de su día a día codificando software, y que inclusive al ser líder técnico, tiene los pies muy bien puestos en la realidad, pero ahora dedica su día a la meta principal de ser un mentor para el grupo del proyecto, y es una persona que está pendiente en todo momento de los problemas y retos técnicos del equipo.
Mentores
Ahora partiendo del principio de que ser un líder técnico es ser un mentor, debemos llegar a la conclusión de que se requieren un conjunto de habilidades y experiencia para serlo, y la mejor manera de comenzar es ser un buen desarrollador, uno que constantemente evalúa el camino correcto para crear soluciones eficaces y eficientes, identificando patrones y respetando los marcos definidos por la arquitectura del software, pero también a la vez identificado posibles problemas y proponiendo proactivamente soluciones sobre dicha arquitectura.
El liderazgo técnico comienza como una maestría en las habilidades de desarrollo de software, y se añade el fundamento conceptual de dichas habilidades. Un desarrollador que busque ser líder técnico debe ver más allá de sus tareas asignadas, con el fin de encontrar caminos más eficientes para una solución y crear artefactos reusables por el sistema construido y por ende por el equipo de construcción, brindando valor al trabajo del equipo y al negocio de la compañía.
Una caja de herramientas
Un líder técnico debe contar con una caja de herramientas en la que todo no tiene necesariamente un lugar definido, a diferencia de un electricista el líder técnico no usa la mayoría de sus herramientas a diario, sino que las usas según sea la necesidad.
Vamos a explorar algunas de estas herramientas para acercarnos a las funciones más comunes de un líder técnico, aparte de ser el mentor del equipo de construcción.
Procesador de texto
Una de sus herramientas más comunes, es un procesador de texto, que es utilizado para crear especificaciones detalladas de patrones, componentes o artefactos que hacen parte del sistema, y como tal el resultado de dicho trabajo son documentos pequeños y en términos sencillos: son más prácticos para la naturaleza del equipo de desarrollo.
Junto al procesador de texto, el líder técnico cuenta con herramientas que facilitan la especificación técnica de un sistema software, tales como herramientas de diagramación UML y de Entidad Relación.
Control de código fuente
Otra de sus herramientas es un sistema de control de código fuente, el cual es utilizado para mantener el control de versiones de todos los artefactos creados para el proyecto, el líder técnico es el responsable de mantener el control sobre el código fuente creado por el equipo de desarrollo junto a sus diferentes ramificaciones y versiones.
Junto al sistema de control de código fuente, existen herramientas que le permiten al líder técnico realizar revisiones del código fuente creado por los miembros del equipo de desarrollo, esto con el fin de asegurarse que cada desarrollador este creando artefactos que cumplan con las especificaciones funcionales y de arquitectura, además de revisar el uso de estándares de codificación y buenas prácticas.
Lo anterior hace parte importante de la función de mentoría del líder técnico, ya que las revisiones de código son un medio excelente para impulsar la asimilación de los mejores conocimientos técnicos y de las formas correctas de construcción por parte de los desarrolladores.
Gestión de la configuración
Un líder técnico también cuenta con un conjunto de herramientas que le facilitan la gestión de configuración de los ambientes de desarrollo y pruebas, de los cuales es responsable de mantenerlos alineados con el ambiente productivo del sistema. Con esto el líder técnico no es solo responsable del código fuente generado por el equipo de desarrollo, sino también cumple con la función de mantener un ambiente de desarrollo y pruebas estable, ambos estructurados bajo los estándares de la compañía.
Más herramientas
Un líder técnico cuenta con otro conjunto de herramientas que le permiten realizar diferentes procesos de diagnóstico cuando un problema surge, sea en un ambiente de desarrollo o en un ambiente productivo. Entre estas herramientas contamos con debuggers, entre otras, todo esto le permite al líder técnico hacer frente a una gran variedad de problemas en diferentes ambientes.
Por último, hay que tener en cuenta, que una de las cualidades de un líder es ser proactivo, por lo cual cuando una herramienta no existe o sencillamente no puede ser obtenida por la compañía, el líder técnico a menudo pone manos a la obra con el fin de crear dicha herramienta, en consecuencia, su desván de herramientas cuenta con más de una creación de su propia autoría.
Conclusión
Hemos explorado la anatomía de un líder técnico, su importancia en las organizaciones, y sus herramientas, y hemos llegado a la conclusión de que para convertirse en uno, dependemos en gran medida de nuestra experiencia como desarrolladores, por lo cual no puede pasar de la noche a la mañana, y el primer paso para lograrlo es aprovechar cada día nuestro rol, aprendiendo las mejores prácticas y fundamentando el conocimiento de cada una de las tecnologías de nuestro manejo, además de mejorar nuestras habilidades como líder tanto en nuestra vida profesional como en nuestra vida personal, la realidad es que es un trabajo que lleva su tiempo, pero hace parte de nuestro proceso de evolución como ingenieros de software.
La regla aquí es la determinación y la paciencia, siguiendo el consejo de uno de los grandes líderes de la historia moderna “Debemos usar el tiempo sabiamente, y darnos cuenta de que siempre es el momento oportuno para hacer las cosas bien” Nelson Mandela.
BIBLIOGRAFÍA 1. Robert Bogue. 2005. Cracking the Code: Breaking Down the Software Development Roles.2. Robert Bogue. 2005. Anatomy of a Software Development Role: Development Lead.3. Juan Sebastián Celis Maya. 2017. La anatomía de un buen líder.