Culturas tecnológicas en el desarrollo de software

Andres Arellano
lemontech-engineering
5 min readJan 30, 2020

Parte importante de mi tiempo lo dedico a sumar personas a nuestro equipo, principalmente ingenieros y desarrolladores de software. Esto requiere seleccionar inicialmente entre muchos candidatos, para ir avanzando en el proceso hasta llegar al candidato final.

Uno de los mecanismos que he ido desarrollando es una especie de discriminación muy temprana en función de la "cultura tecnológica" que puedo desprender del candidato en base a las tecnologías que ha utilizado durante su carrera. Y es que normalmente, cada herramienta, lenguaje de programación o framework viene asociado a ciertas dinámicas de trabajo, metodologías y énfasis en los distintos valores de trabajo.

Lo que sigue es un intento por describir estas distintas culturas. Naturalmente es una clasificación algo caricaturezca, que generaliza y que en ningún caso es exacta.

Están por un lado los corporativos, que usan soluciones propietarias, muy robustas, respaldadas por grandes empresas tecnológicas, y que entregan su confianza en base a ciclos de desarrollo controlados y seguros. La marca que destaca con más fuerza aquí es Oracle, con sus potentes bases de datos y frameworks de desarrollo empaquetado. El lenguaje de programación por excelencia sería Java, y las clásicas IDEs son Eclipse, NetBeans o IntelliJ.

Usualmente los usuarios y adherentes a esta cultura corporativa son también grandes compañías y gobiernos. Y quienes toman las decisiones de utilizar estas tecnologías son más bien aversos al riesgo, y otorgan un alto valor a contar con procesos de trabajo seguros y previsibles.

Hay incluso algunas metodologías y frameworks de trabajo que merodean esta cultura, como el manejo de proyectos en base a PMI/PMO, o las prácticas de gestión TI empaquetadas en ITIL. Y muchas certificaciones formales para dar cuenta de los conocimientos que se manejan.

Quizás la frase que mejor describe a esta cultura es la famosa cuña "Nobody gets fired for buying IBM".

Cerca de los corporativos, están los Microsoft lovers, que se caracterizan básicamente por usar toda la suite de productos y tecnologías de Microsoft, las que giran principalmente alrededor del framework .NET. El lenguaje de programación más utilizado por los MS ❤️es C#, usan SQL Server como base de datos, y su IDE obligada es Microsoft Visual Studio (no confundir con Visual Studio Code — más sobre esto en breve). Y bueno, utilizan como sistema operativo Microsoft Windows.

Esta cultura tecnológica es bien parecida a los corporativos, en el sentido que cuentan con el respaldo de una gran compañía para entregarles soporte, pero es una cultura algo más liviana, con herramientas que evolucionan más rápido, y accesibles para un mercado más amplio — no sólo para grandes empresas o gobiernos.

Ahora bien, la verdad es que esta cultura tecnológica ha experimentado profundísimos cambios durante los últimos años, coincidente con la gestión del nuevo CEO de Microsoft Satya Nadella (aprovecho de recomendar su muy buen libro Hit Refresh). Si en los inicios de la mega compañía de Bill Gates existía una clara rivalidad entre el mundo open source y Microsoft, hoy esta empresa es una de las principales promotoras del desarrollo comunitario.

Sin ir más lejos, el 2018 Microsoft adquirió Github, el principal repositorio de código libre. Esta adquisición llevó a la paradójica situación de que Microsoft es dueño de la plataforma donde está almacenado el código fuente de linux!

Esto nos lleva a la siguiente cultura tecnológica, que le podríamos llamar livianos. Esta es la tendencia predominante en la comunidad de desarrollo de software, debido a que prácticamente todas las herramientas son open source, quedando disponibles para quien quiera usarlas, y con un volumen abrumador de información para quienes quieran aprender sobre ellas.

Los lenguajes de programación son dinámicos, tales como php, python, ruby, y por supuesto, javascript, el rey de los lenguajes livianos. Frameworks modernos (de todo tipo) como Laravel, Django, Ruby on Rails, node.js, vue.js, Angular, React y muchos otros. Bases de datos relacionales como MySql y PostgreSQL, así como no relacionales como MongoDB o Redis.

Las IDEs utilizadas en esta cultura son en principio editores de texto en esteroides, como Sublime o Atom, que se complementan con cientos de extensiones que hacen más eficiente la edición y debugging del código. Y últimamente emerge como ganador Visual Studio Code, herramienta open source desarrollada por… Microsoft.

Esta cultura se caracteriza por rápidos cambios de tendencias en las tecnologías y herramientas que se utilizan. El caso de Visual Studio Code es un claro ejemplo. En la Developer Survey elaborada anualmente por Stack Overflow, el 2016 un 7% de quienes respondían decían utilizarla, y el 2019 esa cifra había crecido a un 51% !!

El sistema operativo predominante es sin duda OS X, aunque también hay quienes desarrollan utilizando Linux o incluso Windows.

Por último, yo distingo una cuarta cultura tecnológica, que la llamaré los ortodoxos. Los desarrolladores de esta cultura son muy rigurosos respecto a cómo se debe desarrollar el software, y usualmente tienen un profundo entendimiento de ciencias de la computación y aspectos de bajo nivel del software.

Pueden manejar en profundidad varios lenguajes de programación, pero sin duda el más importante es C, así como también lenguajes para escribir shell scripts, destacando bash. Para escribir el código las opciones preferidas son Vim o Emacs. Y el sistema operativo es indeclinablemente alguna distribución de Linux. Son acérrimos defensores del software libre. El mouse es un dispositivo opcional.

Corporativos, Microsoft Lovers, livianos u ortodoxos. Cuatro clasificaciones, con contornos vagos y generalizaciones caricaturezcas, pero que de alguna manera describen la fauna que habita el cambiante mundo del desarrollo de software. Si se te ocurren otras categorías o maneras distintas de analizar este ecosistema, se agradecen los comentarios.

--

--