Tradicionalmente, ha existido cierta competencia o “pique” entre distintos profesionales de las tecnologías de la información de acuerdo al tipo de productos y tecnologías escogidas (Linux vs Windows vs Mac, Java vs .Net, Programación Orientada a Objetos vs “Programación Estructurada”, Pascal vs Cobol, Aplicaciones Web vs Clientes “pesados”, CVS vs SVN, ...).
Esta competencia ha sido generalmente “amistosa”, “la sangre nunca ha llegado al rio” y ha oscilado entre debates intelectuales intensos, con exposición de argumentos y análisis interesantes a formas amistosas de provocar o hacer bromas a un compañero.
Generalmente se ha respetado a la otra parte que utilizaba otra tecnología y como mucho se ha interiorizado al respecto reflexiones como: ”Si utiliza ese lenguaje posiblemente su código tendrá más errores”, “Creo que esa plataforma/lenguaje no tiene futuro”, “Pienso que no conseguirá buen rendimiento si utiliza ese sistema/lenguaje”,…, considerando poco adecuadas o menos eficientes las tecnologías de la otra parte pero manteniendo siempre una consideración profesional al que utilizaba esas tecnologías (como siempre con excepciones, que de todo hay).
Sin embargo, en estos últimos años creo percibir (y evidentemente no tengo datos estadísticamente significativos, y menos en algo tan subjetivo como lo que estoy comentando) una injustificada prepotencia en bastantes profesionales que utilizan tecnologías o paradigmas de “moda”, respecto a aquellos que no las utilizan o ¡incluso se atreven a criticarlas!. Entre las que situaría como “tecnologías/paradigmas de moda” podría situarse elementos como las bases de datos NoSQL, los Arquitectura de Microservicios, DevOps, desarrollo Agile, Cloud,…
La diferencia respecto a la situación anterior no es que se piense que la opción propia es mejor y que el otro profesional está eligiendo una opción errónea, es que parece que se considera a quien no utiliza esta tecnología como un “espécimen” a un nivel “evolutivo” cercano al australopiteco (tecnológicamente hablando, eso sí).
No se plantea un debate “de igual a igual”, sino una mirada de “conmiseración”, donde se opta por no entrar en debates y se llegan a oir frases como :“Pobre, no entiende cómo se hacen ahora las cosas”, “Se ha quedado anticuado”, “Usa los sistemas de antes”, "ahora las cosas ya no se hacen así",…
Esta ridícula y totalmente injustificada prepotencia, no debida unicamente a los profesionales sino también a las empresas que presionan para que se utilice “el último grito“ en tecnologías y metodologías, a quien más perjudica finalmente es a las empresas, que acaban desplegando un producto que en ocasiones carece de la calidad adecuada y cuyo coste es mayor de lo que deberían, debido al uso de metodologías/tecnologías inadecuadas.
No está de más recordar el gráfico "clásico" de implantación de tecnologías, para ayudar a pensar con ponderación sobre los riesgos de "las modas".
IOTpreneur, CC BY-SA 4.0, via Wikimedia Commons |
Los profesionales también acaban sufriendo horas adicionales de trabajo y sobrecarga y en muchas ocasiones mala imagen ya que la solución finalmente implantada “no funciona” o tiene un rendimiento lamentable, además de los retrasos sufridos. En cualquier caso, el profesional que elige o recomienda la tecnología es el primer responsable del posible fracaso. Y si recibe presiones de la empresa, debe al menos analizar esa nueva tecnología y, si no es realmente válida, transmitir ese riesgo a quien corresponde. Si aun así los responsables del proyecto insisten y luego hay problemas, no podrán decir que desconocían los incumplimiento de plazos, riesgos o costes potenciales.
Como he analizado anteriormente en artículos sobre diversos aspectos, como Cloud (http://pensamientocriticoti.blogspot.com/2019/10/cloud-o-cuidado-con-la-nube-que-puede.html), Framework (http://pensamientocriticoti.blogspot.com/2019/03/los-framework-de-desarrollo-un-regalo.html), Metodología Agile (http://pensamientocriticoti.blogspot.com/2017/12/reflexiones-sobre-las-metodologias.html) o Microservicios (http://pensamientocriticoti.blogspot.com/2017/10/los-microservicios-no-son-la-solucion.html), no no hay solución “mágica” y no siempre un paradigma o tecnología “de moda” es mejor o más adecuado.
Contra esta especie de adanismo, que piensa que “el mundo acaba de empezar y antes no existía nada comparable”, creo que es conveniente recordar datos como los siguientes:
Antes de la “moda” de los servicios REST existió hace más de 20 años la “moda” los WebServices con toda su parafernalia de productos y conceptos como “diccionarios de servicios “(diccionarios de API,), “desacople de aplicaciones”, “el final de las aplicaciones monolíticas,”.. ¿suena familiar?.
Antes de se difundiera la virtualización, IBM ya disponia en 1972 de sistemas de virtualización con su tecnología VM en sistemas tan “obsoletos” como el mainframe, trabajando con lenguajes “anticuados” como COBOL.
El concepto de nube (Cloud), como lugar donde albergar nuestros servidores y bases de datos, es básicamente lo mismo que se ofrecía en los 90 como “hosting”.
Antes del manifiesto y la metodología Agile ha habido muchos sistemas y metodologías iterativas y con implicación/revisión con el usuario/propietario del software, como puede ser la programación extrema XP ( ¿suena familiar ese proceso iterativo con intervención del cliente de la XP? ), remontándonos incluso a los años 60s.
Los famosos desarrollos serverless, es decir no tener un servidor levantado todo el tiempo sino arrancar un proceso para atender una petición (personalmente me parece un derroche y poco eficiente, pero el análisis sería objeto de otro artículo, y como siempre, puede tener ventajas en algún caso) es básicamente el mismo concepto de desarrollo de aplicaciones web por medio de CGI definido a principio de los años 90s
Por supuesto he hecho una simplificación y hay diferencias, pero las ideas y conceptos básicos de todas esas tecnologías y paradigmas que he comparado son realmente las mismas.
La conclusión de ese repaso sería que “casi no hay nada nuevo bajo el sol”, o al menos que las “nuevos” paradigmas y tecnologías de desarrollo no son tan “nuevos” como pensamos en ocasiones, salvo algunas excepciones, que por supuesto las hay. En general, es un proceso más evolutivo y gradual de lo que aparenta, con muy pocos saltos “gigantes”.
Charles Darwin [See page for author, CC BY 4.0 , via Wikimedia Commons] |
Acudiendo a Darwin, mal interpretado en muchas ocasiones, no es “La supervivencia del más FUERTE”, es “la supervivencia del mas APTO”(https://es.wikipedia.org/wiki/Supervivencia_del_m%C3%A1s_apto) para un medio y entorno concreto (por eso, una característica que facilita la supervivencia en un desierto puede dificultarla en una jungla).
En
nuestro caso la tecnología o profesional más adecuado para un
proyecto, no existe “MEJOR” (más fuerte) tecnología para todos
los proyectos, ni ninguna tecnología o metodología es mejor siempre
y por tanto, no debe aplicarse siempre ni automáticamente.
Todo ello creo que debe hacernos reflexionar, ser más abiertos y tomar más en consideración tanto a cualquier tecnología como a cualquier profesional para evaluar y diseñar soluciones.