El significado de la tecnología aburrida (boring tech)
- Que NetBSD sea "aburrido" es el mayor elogio posible
- Lo que quiere un administrador de sistemas es previsibilidad, no sorpresas
- Que una tecnología sea aburrida significa que es altamente confiable
- Es el resultado de que mucha gente la haya probado y optimizado
- Hay menos probabilidades de encontrar comportamientos inesperados o problemas por falta de documentación
- Si surge un problema, existe una comunidad o materiales de apoyo para ayudar
La complejidad del entorno tecnológico
- La tecnología no existe por sí sola, sino que interactúa con diversos sistemas
- Cuantos más componentes haya, mayor es la posibilidad de que aparezcan problemas inesperados
- La tecnología nueva no siempre es la mejor opción, y la tecnología estable y ya probada puede ser una mejor elección
- Existen casos en los que se reemplazó un clúster de Kubernetes por unas cuantas máquinas virtuales y se mejoró la estabilidad
Objeciones e interpretaciones sobre la "tecnología aburrida"
- La postura de Robert Roskam
- La suposición de que tecnología "aburrida" = tecnología que ha existido durante mucho tiempo puede ser incorrecta
- La adopción generalizada no garantiza necesariamente la comprensión
- La tecnología antigua no siempre es fácil de mantener (ej.: sistemas COBOL)
- Refutación
- Que algo sea viejo no lo vuelve aburrido (ej.: Oracle es complejo y difícil de mantener)
- BSD es una tecnología aburrida, pero no es tan universal como Linux
- Lo importante no es la edad, sino la madurez (maturity)
Conclusión: tecnología aburrida = tecnología madura
- Tecnología vieja ≠ tecnología madura
- Tecnología madura = tecnología con código, documentación, comunidad y experiencia operativa acumulados
- Que NetBSD sea aburrido significa alta confiabilidad y estabilidad, y es el mayor elogio posible
5 comentarios
La expresión "tecnología aburrida" puede dar una impresión algo negativa, así que "madura" suena bien.
Oracle es complejo y difícil de mantener :(
Las relaciones aburridas no son relaciones viejas, sino relaciones maduras.
Me recuerda a un texto que antes se publicó en GeekNews
en Temas sobre desarrollo de software en los que cambié de opinión después de 10 años en la industria (https://es.news.hada.io/topic?id=19081):
Java es un gran lenguaje precisamente porque es aburrido.
Opiniones de Hacker News
Creo que la tecnología aburrida es buena porque te permite enfocarte en la tecnología real del producto. Al operar una app SaaS, siento que hago trabajo de punta en varias áreas relacionadas con el producto. Prefiero mantener lo que funciona “por detrás”, como la base de datos o el framework de backend, lo más aburrido y estable posible. Cuando trabajas solo en un proyecto, el tiempo es muy limitado. Quiero dedicar mi tiempo a desarrollar funciones nuevas e interesantes del producto, no a tocar partes que no le importan al cliente. El cliente no sabe ni le importa si uso Deno o Bun en vez de Node, o pnpm en vez de NPM. Lo que sí sabe es qué tan bien funciona mi app y qué funciones tiene
Estoy de acuerdo con esa opinión, pero quiero presentar la perspectiva contraria desde mi experiencia personal. En muchas situaciones, alguien llama “aburrida” a su propia opción cuando quiere que la organización elija su preferencia personal de software. Al llamarla aburrida, caracteriza su preferencia como una decisión madura y obvia aceptada por la mayoría, mientras presenta las demás como si fueran solo ingenieros de software persiguiendo lo brillante y nuevo. La verdad casi siempre es más compleja. Ambas soluciones tienen ventajas y desventajas. Intercambian valores que resuenan más o menos con distintas personas. Hay que tener cuidado con el argumento de “es aburrido, así que claramente es mejor”. No debería convertirse en una forma de reemplazar la preferencia de otra persona por la propia sin una discusión profunda. De lo contrario, no es muy distinto de otro intento arrogante de ganar una discusión sin presentar argumentos de fondo
Quisiera agregar “estable” a la idea de tecnología “aburrida”. En particular, “estable” no significa “que no se cae”, sino “que no cambia”. Normalmente vemos eso en cosas antiguas y establecidas. Pero no hay nada que lo garantice. Muchas veces es el resultado de que los mantenedores de una tecnología toman ciertas decisiones. A menudo puede explicarse en términos de compatibilidad hacia atrás. Esa es una acción clara que puede perseguirse para obtener estabilidad. Pero también puede verse como algo que limita mucho el alcance. Por ejemplo, nos gusta hablar de escala, pero no necesitamos diseñar y construir para una escala que probablemente nunca veremos
El debate eterno no es entre lo viejo y lo nuevo, ni entre lo aburrido y lo interesante. La madurez es madurez, sin importar la edad. Un sistema que se rompe al actualizar dependencias, que introduce comportamientos inesperados mediante valores predeterminados ambiguos, o que te obliga a navegar capas de abstracción no es maduro... (estoy viendo a Spring y al ecosistema Java), es viejo e inestable. La estabilidad, la previsibilidad y una simplicidad bien diseñada son lo que define la madurez, no la edad por sí sola. ¿Python es maduro y aburrido? Tiene problemas de toolchain y dolores de cabeza de varios tipos... Lenguajes más nuevos como Go o Rust resuelven todos esos problemas de toolchain y se vuelven verdaderamente aburridos de la mejor manera posible
Lo aburrido está bien, a menos que estés buscando trabajo. Si te aferras a tecnologías aburridas, corres el riesgo de irte sacando poco a poco del mercado laboral. Al próximo empleador no le importará que hayas generado un gran valor de negocio. La mayoría quiere lo nuevo y brillante. Cuando leo los anuncios de mi empleador actual, no creo que me contratarían
En GitHub es difícil distinguir si un proyecto es maduro o está muerto. Un commit, sea para lo que sea, es una señal de que alguien está mirando y manteniéndolo, y de que probablemente los problemas nuevos se resuelvan rápido. Eso significa que lo nuevo siempre tendrá una ventaja ahí
Nadie fue ascendido ni contratado por usar tecnología aburrida. Creo que la razón por la que no recibo respuestas a muchas postulaciones es que la mayoría del trabajo que he hecho es “aburrido”, y la mayor parte del código open source que he escrito son scripts de shell. Todo funciona de maravilla, sin bugs y sin costos de mantenimiento, pero no es llamativo. El elitismo intelectual definió mi rol ("DevOps Engineer" es literalmente "administrador de sistemas en la nube", pero como supuestamente deberíamos <i>avergonzarnos</i> de administrar sistemas, no podemos decirlo así); estoy seguro de que si mi currículum dijera más "Go y Rust" que "Python y Shell", me contratarían de inmediato
La tecnología aburrida permite terminar el trabajo y enfocarnos en el problema que realmente estamos tratando de resolver, en lugar de hacer trabajo innecesario
Iba a hacer un Ask HN sobre este tema, pero creo que esta publicación es excelente para plantear mi pregunta. ¿Qué tecnología te parece tan aburrida que ya no puedes usarla? ¿Cuánto tiempo la usaste? En mi caso son cosas como Vim, C, Python, Fedora y mutt, y las he usado durante 25-30 años. ¿Y tú?
Si los beneficios de una tecnología nueva superan los riesgos, la uso. El reto es evaluar la evidencia. Las tecnologías nuevas presumen sus ventajas, pero sus desventajas no se publicitan tanto y muchas veces se descubren después de haber hecho la inversión. “Aburrido” o “interesante” es un encuadre equivocado