Los sombreros del desarrollo de software
Un estudio sobre la personalidad de programadores publicado por el psicólogo Tino Gnambs en la revista Journal of Research and Personality cruzaba los grandes rasgos de personalidad con la probabilidad de ser desarrollador. En él se ha descrito que la apertura a la experiencia y el escrupulosidad se mostraban bastante asociados a esta profesión. También se comprobó que los mejores programadores eran también los que tenían menor extraversión, es decir, que eran más introvertidos.
Y la pregunta aquí es, ¿por qué empiezo un artículo sobre sombreros con los rasgos de personalidad en los programadores? Empiezo este artículo por que no voy a hablar de sombreros reales, si no de sombreros figurados, en los que cada sombrero es un rol.
Según mi experiencia. Los inicios tanto en desarrollo de software como en ciencia de datos son similares en el día a día: Idealmente, empezamos haciendo un conjunto relativamente pequeño de tareas sencillas con poca presión y bastante seguimiento. Con el tiempo, el seguimiento se va reduciendo a la par que la presión va aumentando de forma progresiva y siempre dentro de unos límites razonables. Esta presión, más que en número de tareas (que también), debería verse en los requisitos de calidad de los diferentes desarrollos: Por ejemplo, no debería ser igual un código escrito por alguien con un mes de experiencia que alguien que lleve uno o varios años de experiencia.
Los sombreros
A la par que se adquiere experiencia se adquieren los diferentes sombreros: Reuniones, diseños, y propuestas se van jalonando con las sesiones de concentración junto con otras sesiones de resolución de dudas y soporte a los demás compañeros: Empezando con un sombrero, acabamos teniendo tantos sombreros haciendo que se llegue a agradecer poder disponer de una hora seguida de concentración.
Hoy día, dentro de los roles de ingeniería de software (con una pizca de ciencia de datos) se podría decir que se pueden ocupar los siguientes sombreros: Desarrollador de software, arquitecto, analista, investigador, técnico de laboratorio, tutor, psicólogo y finalmente gestor.
Los sombreros de desarrollador de software, arquitecto y analista están centrados en habilidades que se pueden considerar duras, centradas en la resolución de problemas lógicos, construcción de funcionalidades de software o generación de modelos. Estas habilidades se basan en conocimientos y técnicas adquiridas, pudiendo hacerse perfectamente de forma individual.
Las habilidades relacionadas con la investigación, aunque similares, tienen como objetivo la identificación de efectos o deducción de ideas nuevas. Esta idea de novedad condiciona todo el proceso de investigación. Mientras que en los ambientes de ingeniería las reglas y metodologías sirven para poder construir algo basado en la certeza, en el mundo de la investigación las reglas, metodologías y trabajos análogos son herramientas que sirven para explorar lo desconocido.
Finalmente, en el día a día también es necesario trabajar, en mayor o menor medida, todo ese conjunto de habilidades blandas de liderazgo como podrían ser la gestión efectiva, tutorización, formación y cultivo de ambientes de trabajo positivos. Mientras que los campos de la ingeniería y la investigación presentan diferencias relativamente sutiles, las habilidades de gestión y liderazgo, centradas en personas, se parecen como un huevo a una castaña. Las reglas de trabajo de las habilidades duras, por ejemplo, están centradas en procesos de efectividad demostrada. Por el contrario, en los procesos de gestión de personas cada compañero es diferente, provocando que grandes iniciativas en unos grupos sean fracasos absolutos en otros.
Esta incertidumbre viene agravada por el hecho que los efectos de las decisiones de los managers se ven a largo plazo, normalmente tras realizar un trabajo continuado, silencioso y poco agradecido. En los entornos especializados de desarrollo de software sucede también que las habilidades de los ingenieros son las que ofrecen el valor añadido de por si, convirtiendo más el rol del manager de TI en el del facilitador que en el de un capataz.
¿Cómo hacerlo todo a la vez?
Por tanto, dentro del mundo de la ingeniería de la TI en general y de la ciencia de datos en particular, a la par que se va progresando se van adquiriendo estos sombreros, los cuales requieren dejar el ego a un lado y entrar en un proceso continuo de aprendizaje y desaprendizaje continuo.
Volviendo al día a día, el principal problema de estas tareas y responsabilidades es que se tienen que ejercer en paralelo ya que, mientras que se está implementando una suite de test para una nueva funcionalidad o cerrando los detalles sobre las reglas de inclusión y exclusión de unos datos se se puede hacer menester resolver las dudas de un compañero, mediar en un conflicto o colaborar en la toma de decisiones estratégicas del departamento. En estos casos se aplica muy bien el refrán tradicional que reza que "quien mucho abarca, poco aprieta", por lo que se hace necesario tanto aprender a delegar, decir que no, simplificar y a compartimentar los problemas.
Cuando el camino nos lleva a tratar tantos temas a la vez, no puedo dejar de pensar en el hombre orquesta que, aunque no puede profundizar, sí que necesita ser capaz de poder tocar muchísimos temas de forma más o menos adecuada con tal de permitir que tanto su trabajo como el de los demás especialistas sí que brille. Esto no deja de ser sencillo, y más cuando la introversión es bastante común en el desarrollo de software.
Recomendado por LinkedIn
Finalmente, y como toque personal, en la mayoría de los casos sí que podemos aprender todo este espectro de habilidades, pasar de los sombreros más técnicos o duros a los más interpersonales, no deja de ser una salida muy intensa en la zona de confort, y más si tratamos con personas.