Saturday, November 28, 2020

Educación tecnológica en la industria del Software

Como en cualquier actividad humana, la toma de decisiones es clave durante todo el proceso de desarrollo de software. Por más que intentemos huir de esta responsabilidad tarde o temprano experimentaremos sus consecuencias. No decidir es decidir. 

Personalmente, me interesan mucho aquellas decisiones dentro del contexto del diseño técnico, aquellas que con un trabajo iterativo nos permiten producir las estructuras necesarias para lograr una solución aceptable que satisfaga nuestros objetivos de producto/proyecto. Con diseño técnico me refiero a un diseño estratégico donde las decisiones tomadas son de impacto global sobre nuestro producto/proyecto. 

Considerando la categorización de las decisiones de diseño propuesta en el libro Software Architecture in Practice (Third Edition), hago foco en la categoría Selección de tecnología, de especial importancia, porque casi siempre implementamos nuestras ideas a través de la tecnología.  

La evaluación y elección de tecnología en una industria del software con cambios tecnológicos incesantes nos propone retos que podrían plantearse con las siguientes preguntas:

  • ¿Cómo mantenerse actualizado en una industria en constante evolución?
  •  ¿Qué criterios seguir al evaluar y adoptar una nueva tecnología?
  •  ¿Qué enfoque seguir para que los integrantes de nuestro equipo adopten la nueva tecnología?
  •  ¿Cómo gestionar los atributos de calidad del sistema una vez que se introduzca la nueva tecnología?
  •  Si un vendor anuncia el fin de vida útil de un producto que utilizamos ¿cómo vamos a realizar la migración?
Son muchas cuestiones de interés alrededor de la tecnología que merecen nuestra atención. Sería demasiado pretencioso tratar de abarcar todos estos temas en un sólo artículo, por lo que trataré de responder sólo a la interrogante ¿cómo mantenerse actualizado en una industria en constante evolución? Tema no menor, pues implica estar pendientes de nuestra educación tecnológica que influirá directamente en nuestras decisiones técnicas. 

Estar al día con la nueva tecnología

Poniéndonos el sombrero de un tecnólogo nos toca mantenernos al día con la novedades de la industria. Sin embargo, hay que reconocer que no podemos con todo: hay demasiados cambios como para que una persona pueda dominarlo todo. 

El mejor camino es elegir una o dos áreas que te motiven (con el tiempo puede variar) y profundizar leyendo los textos fundamentales, siguiendo a los líderes de opinión, mirando presentaciones clave, etc. Para lo demás, es suficiente tener una idea general. Esta estrategia nos lleva a desarrollar un perfil "T" que denota un profesional con una habilidad principal (línea vertical de la letra T) con conocimientos generales en otras disciplinas (línea horizontal de la letra T). 

La idea del perfil "T" va en contraposición de mitos como el del famoso full stack developer, un perfil que aparentemente puede hacerlo todo. Pero seamos sinceros, el software es demasiado complejo para eso, pues a medida que las industrian evolucionan, es inevitable que surjan las especializaciones. 

Radar tecnológico

Es fundamental tener un panorama tecnológico de las novedades de la industria, una "big picture" que puede resultar difícil de obtener por la ingente cantidad de nuevos lenguajes, bibliotecas, frameworks y técnicas que pueden confundirnos. Considerando que nuestro tiempo es valioso, la pregunta clave es: ¿cómo centrar nuestra atención en las cosas que realmente importan? ¿cómo realizar un filtro sobre este amplio universo de novedades?

Una solución interesante es consultar fuentes confiables, como el radar tecnológico de ThoughtWorks el cual lo define de la siguiente manera: 

El Radar es un documento que establece los cambios que creemos que son relevantes actualmente en el desarrollo de software — cosas en movimiento a las que creemos que deberían prestar atención y considerar aplicar en sus proyectos. Refleja la opinión idiosincrásica de un grupo de tecnólogos de alto nivel y está basado en nuestras experiencias y trabajo cotidiano. Si bien pensamos que esto resulta interesante, no debería tomarse como un análisis profundo del mercado. https://www.thoughtworks.com/radar
Entonces, un radar tecnológico es un mecanismo para detectar las novedades que valen la pena dedicarle tiempo y atención. Con el mismo fin, podríamos apoyarnos en miembros reconocidos, líderes de opinión dentro de la comunidad del campo del software para orientarnos en donde podríamos invertir tiempo y esfuerzo. 

En conclusión, entender que la selección de tecnología es una decisión de diseño clave en el desarrollo de nuestros productos de software y que nuestra educación tecnológica influye directamente en esta decisión es un buen inicio para aprender a gestionar el cambio dentro de una industria en evolución constante y acelerada.

Gracias por llegar hasta aquí!



No comments:

Post a Comment

Cuando el código funciona, pero no tiene tests: ¿y ahora qué?

Seguramente te ha pasado alguna vez. Te dan acceso al repositorio de un nuevo proyecto. Lo abres con curiosidad, esperas encontrar una estru...