La arquitectura de Youtube fue el ejemplo más evidente, aunque hay otras.
Todo esto, me llevó a reflexionar sobre lo poco de fiar que puede llegar a ser la opinión de alguien, aunque haya tenido experiencia, cuando pasan uno, dos o N años desde esta, y también me hizo pensar en la necesidad de pensar en sistemas claros y abstracción en capas, antes que en sistemas optimizados (otro tema candente en la oficina) o herramientas milagrosas. Ya lo decía (entre otras cosas) el admirado y venerable Donald Knuth en 1974:
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."
Como lectura complementaria a todo esto, me gustó mucho el artículo de Joel Spolsky: Leaky Abstractions, donde Joel reflexiona sobre el curioso efecto que tiene la cada vez mayor cantidad de capas de abstracción existentes en el desarrollo de software y la utilidad de conocer las entrañas de los sistemas. Cito una de las frases finales de tan recomendable artículo porque me llegó adentro:
"the abstractions we've created over the years do allow us to deal with new orders of complexity in software development that we didn't have to deal with ten or fifteen years ago, like GUI programming and network programming. And while these great tools, like modern OO forms-based languages, let us get a lot of work done incredibly quickly, suddenly one day we need to figure out a problem where the abstraction leaked, and it takes 2 weeks."