En la historia de la informática es muy frecuente ver cómo aparecen nuevas tecnologías que cambian por completo el tablero de juego. Estas permiten que se siga avanzando no solo en crear soluciones a problemas cada vez más variados, sino a implementarlas de forma más sencilla y robusta.
Un ejemplo de esto son las herramientas del Big Data, donde gracias a los avances tecnológicos que se han conseguido en los últimos años es posible implementar soluciones a gran diversidad de problemas: la optimización de recursos, el análisis de tendencias o la detección de imágenes, entre otros.
De lo que no se suele hablar tanto es de todas las tecnologías que llegan al final de su vida útil. Por cada nueva tecnología que entra con fuerza en el mundo del desarrollo software hay varias docenas que pasan a quedarse obsoletas en los meses siguientes. Este es un punto importante para decidir qué tecnologías incorporar a una empresa, por ejemplo, además de que se adecúe a las necesidades de la misma y de la experiencia de los equipos.
El coste de mantenerse al día con la tecnología
Muchas de las tecnologías revolucionarias acaban por quedarse obsoletas al poco tiempo de su lanzamiento debido a la aparición de una alternativa similar, pero con alguna
modificación en su paradigma que la hace más atractiva para los desarrolladores.
Aunque nadie puede negar la importancia que tienen estas tecnologías para el sector, tampoco se puede ignorar el esfuerzo que supone para una empresa el intentar mantenerse al día en todo momento con las nuevas tecnologías.
Cuando una empresa desea aplicar una nueva solución tecnológica debe tener en cuenta varias componentes para asegurar el éxito de la misma. Tres de ellas están fuertemente relacionadas con los avances en nuevas tecnologías:
- Uso de las herramientas adecuadas
- Experiencia y pericia del equipo con las herramientas utilizadas
- Tiempo de desarrollo y puesta a punto de la solución
Estas tres componentes tienen un efecto considerable en el coste de una solución software y, por tanto, es muy importante para las empresas el ser capaz de gestionarlas correctamente.
¿Cómo elegir la mejor tecnología para un proyecto?
A la hora de elegir una herramienta tecnológica, se deben tener en cuenta aspectos como el soporte de la misma. ¿Es de licencia libre o pertenece a una empresa privada? ¿Tiene soporte por parte de la comunidad? ¿Está asentada como tecnología o por el contrario acaba de aparecer en el mercado? ¿Existe alguna tecnología similar con la que compita? Saber responder a estas preguntas es clave a la hora de elegir la herramienta correcta para cualquier problema.
Imaginemos que queremos implementar una aplicación con una base de datos no relacional. Tras responder a algunas de las preguntas mencionadas, reducimos nuestras opciones a dos
posibles bases de datos: MongoDB y Elasticsearch. Aunque ambas son bases de datos no relacionales, cada una posee unas características más o menos óptimas para según qué operaciones, por lo que en este punto nos interesaría elegir la que nos permitiese implementar las necesidades de nuestra aplicación de la forma más orgánica.
Sin embargo, no debemos olvidar que, a la hora de implementar nuestra solución, contaremos con un equipo técnico encargado de llevar a cabo el desarrollo. En este caso, deberemos poder responder a preguntas como: ¿qué experiencia tiene mi equipo con las herramientas necesarias para mi solución? ¿Existe formación sencilla y asequible para que mi equipo se forme en una nueva tecnología en caso de ser necesario?
Si lo aplicamos al ejemplo, podemos encontrarnos que, aunque la mejor opción para nuestra aplicación sería utilizar MongoDB, nuestro equipo está ya formado en el uso de Elasticsearch. ¿Las ventajas de utilizar MongoDB superan al inconveniente de tener que formar al equipo?
A menudo será el tiempo destinado a implementar la solución quien nos dará la clave para tomar decisiones como las mencionadas anteriormente. Con este, aparecen nuevas preguntas para complementarlas: ¿mi equipo dispone del tiempo suficiente para aprender esta nueva tecnología? ¿Esta tecnología va a estar operativa durante el tiempo que hemos estimado que durará el ciclo de vida de nuestro proyecto?
De este modo, si por ejemplo queremos implementar una solución con un ciclo de vida que se alargue varios años, podemos invertir tiempo en formar a nuestro equipo para que sea experto en el uso de la tecnología que hemos decidido utilizar. Al mismo tiempo, es posible que no nos interese elegir la tecnología más puntera que acaba de aparecer en el mercado, por miedo a que no termine de encajar y quede desfasada en mitad del ciclo de vida de nuestra solución.
En nuestro ejemplo, el tiempo del proyecto podría marcar claramente la diferencia entre elegir una u otra base de datos. Si el equipo dispone del tiempo suficiente para formarse, sería interesante elegir MongoDB porque encaja mejor con nuestra aplicación, mientras que, si el tiempo es limitado, tal vez sea más acertado utilizar la experiencia del equipo en el uso de Elasticsearch, para poder implementar una aplicación robusta, aunque algunas características no sean las más adecuadas.
El equilibrio para una tecnología adecuada
Como vemos, para que una solución sea exitosa no solo se debe tener una buena idea, sino que es necesario saber ejecutarla correctamente, y por eso es tan importante gestionar de forma adecuada el uso de nuevas tecnologías a la hora de trabajar en proyectos tecnológicos.
La respuesta a este dilema sobre la rentabilidad de las nuevas tecnologías se encuentra en el equilibrio. Hay que saber elegir la tecnología adecuada al problema teniendo en cuenta la experiencia del equipo con el que se trabaja y los costes en el tiempo que pueden derivar de aplicarla, sin olvidarnos de ponderar el riesgo de que una tecnología se vuelva obsoleta en un futuro cercano.
Analizar este equilibrio a la hora de implementar y diseñar una nueva solución tecnológica es clave para aumentar las posibilidades de éxito de la misma.