Cuando uno se enfrenta a la definición de un nuevo programa informático o software siempre existen una serie de condicionantes externos que afectan a la solución que se quiere diseñar. Y es que a la hora de implementar una plataforma informática una de las preguntas que debemos hacernos es, ¿cómo crear aplicaciones? Para ello, debemos tener en cuenta los siguientes aspectos o condicionantes:
Son una serie de factores que no son especialmente técnicos, pero que deben tenerse en cuenta como señales de que la solución informática se diseñará bajo una serie de premisas y no tendrá contratiempos durante todo su ciclo de vida.
Otro error común que suelen cometer las organizaciones cuando implementan un nuevo software o aplicaciones, es tratar de reinventar la rueda. Una de las primeras acciones que se deben realizar es la reutilización.
Por ejemplo, se debe buscar una solución en el mercado que satisfaga en un porcentaje elevado la funcionalidad a diseñar (por ejemplo, en torno a un 80%), y que además, funcione sin invertir más tiempo del necesario (o bien que sea posible adaptarse al cambio de funcionalidad restante).
Si el sistema en su totalidad no existe en el mercado, este deberá subdividirse en otras piezas más pequeñas que serán los componentes que formarán parte del sistema final. Para cada uno de estas componentes se deberá realizar el mismo ejercicio.
Las nuevas tendencias en el desarrollo de aplicaciones de negocio a medida nos llevan a sistemas basados en una capa frontend usualmente desarrollada con un framework JS/Javascript (Backbone, AngularJS, ExtJS, OpenUI5, etc.) y una capa backend que expone una serie de servicios REST en Java, Node.js, Php, etcétera.
Esta combinación permite desacoplar la capa de visualización de la de negocio y fomenta la reutilización de servicios dentro de la organización (arquitectura SOA). De esta forma, y gracias a esta arquitectura sería posible plantear las siguientes situaciones:
Una de las combinaciones en el frontend/backend que están teniendo más aceptación sería para el frontend AngularJS y para el backend usar Java/Spring IO.
A modo de ejemplo real, un cliente del sector automoción nos pidió ayuda con un nuevo proyecto en el que los condicionantes externos fueron los siguientes:
Ante estos problemas, vimos que debíamos invertir el tiempo en aportar valor a nuestro cliente y reducir a la mínima expresión el tiempo destinado a tareas de poco valor. Así, la búsqueda de un mejor servicio nos llevó a jHipster.
Gracias a esta tecnología pudimos crear una aplicación completa autogenerada desde un diagrama de clases UML. En menos de una semana fuimos capaces de generar una capa de servicios REST y un backoffice para gestionar las entidades (CRUD, crear, leer, actualizar y borrar).
Por si fuera poco, esta tecnología incorporó un motor de búsqueda también con servicios REST que utilizan Elasticsearch para no tener que desarrollar a medida nuevas funciones de búsqueda en los servicios y DAOs.
De este forma, invertimos el tiempo necesario a diseñar un frontend realizado en Liferay+AngularJS que utilizaría la capa de servicios REST creada con jHipster. Posteriormente, se destinó todo el esfuerzo del proyecto en el prototipado, el diseño de usabilidad y en la carga de datos ETL (extraer, transformar y cargar) con Talend Data Integration.
El proceso que debe seguirse para modelar aplicaciones con jHipster es muy simple:
En definitiva, debe analizarse muy bien qué tecnología aplicar en cada nuevo proyecto o producto porque no siempre es sota, caballo y rey. En este caso la tecnología seleccionada fue un acierto permitiéndonos aportar valor donde realmente se requería y minimizar tiempo de desarrollo en tareas de poco valor.
¿Quieres que hagamos lo mismo en tu organización? En Enzyme Group Advising, somos expertos en la aplicación y gestión de nuevas tecnologías para crear valor en tu empresa y acelerar el proceso de implementación digital. ¡No lo dudes y ponte en contacto con nosotros! ¡Verás cómo nos adaptamos a tus condicionantes sin problemas!
Creamos nuevos productos y servicios superiores hibridando la tecnología con los modelos de negocio
¿En qué ámbitos se concentran tus retos actualmente?
Algunos detalles para conocerte mejor
Ya casi terminamos 😊 Para poder contactar contigo y conocer mejor tus necesidades:
¡Ya has completado el formulario!
Revisaremos tu solicitud y nos pondremos en contacto contigo lo antes posible.