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.