Choose Right Technology

En la versión anterior del blog hacía mención a un post en DZone (éste es el enlace del post original) donde se aconsejan algunos puntos de cara a seleccionar la mejor tecnología para los nuevos proyectos.

Las conclusiones son éstas:

  • Elige la tecnología con la que el equipo esté familiarizado.

  • No seas "cool" - juega en tu tiempo libre.

  • Elige la herramienta adecuada para el trabajo.

  • Es preferible los principios un buen diseño de software frente a la última moda.

  • No sobrecargue el número de lenguajes de programación.

  • Edúcate y educa al equipo sobre los fundamentos de la informática.

Y la verdad es que hay aplicar estas conclusiones con más frecuencia. Voy a comentar la experiencia en el último proyecto en el que he colaborado.

El proyecto se basa en una solución open-source basada en Spring Boot a la que hemos añadido otras funcionalidades desarrolladas bajo microservicios y desplegadas en contenedores.

En este caso, al principio del proyecto pensé: "Vamos a desarrollar nuestros microservicios basándonos en programación reactiva", lo que significaría utilizar Spring WebFlux, Spring Data R2DBC y acceso a base de datos PostgreSQL con R2DBC. Bien, dicho y hecho…​ o no!

La pequeña curva de aprendizaje nos llevaba a no cumplir las fechas comprometidas de entrega dado que el equipo (un compañero y yo) no estaba familiarizado con la tecnología y dada la repercusión que tiene el proyecto, más vale no jugárnosla así que finalmente hemos desarrollado todos los servicios con Spring Boot, Spring Data, JPA e Hibernate.

Ya habrá tiempo de, quizá, refactorizar alguno de los microservicios no críticos incluso a otro framework como pudiera ser Micronaut o Quarkus.