06 Jul Desarrollo a medida con generación automática de código
Cuando una empresa tiene la necesidad de adquirir software para un proyecto de gestión interna, extranet o intranet, en ocasiones tiende a buscar un ERP conocido (como Navision, SAP, etc) descartando de partida un desarrollo a medida. La razón principal por la cual se descarta el desarrollo a medida tradicional es la desventaja de tener que codificar desde cero todo lo que la empresa necesita.
Estamos ante la posibilidad que usted disponga de un sistema de gestión basado en Desarrollo a medida con generación automática de código con herramientas orientadas a la gestión empresarial.
Desarrollo a medida con generación automática de código
Las herramientas de última generación automática de código es una opción válida que puede, en ocasiones, ser más óptima que la contratación y adaptación de un ERP estándar. Hace ya más de 10 años que profundice en este tipo de desarrollos, en aquel entonces este tipo de tecnología se desarrollaba en doctorados y en proyectos aún en fase beta, siendo foco de investigación hasta llegar el día de hoy, donde ya es una realidad. Este tipo de herramientas, en fase de evolución en equipos de estudio en muchas universidades, permiten desarrollar aplicaciones de gestión (en el caso que nos ocupa) en base a los requisitos del usuario, sin la extensa intervención del programador en el desarrollo a medida que usted como usuario, de forma general conoce.
La razón tradicional que descartaba un desarrollo a medida frente a un ERP ha sido que estos desarrollos a medida se desarrollaban con entornos de desarrollo genéricos, no orientados 100% a la gestión empresarial…con la generación automático de código esto cambia.
Este tipo de desarrollos basado en herramientas de última generación invierte, así como optimiza y reduce, la pirámide de tiempos y por tanto de coste de los desarrollos a medida tradicionales, siendo esta una de las principales ventajas. Tradicionalmente el tiempo del desarrollador era el máximo, y por tanto su dependencia respecto del éxito del proyecto. Con las herramientas de desarrollo a medida con generación automática de código conseguimos invertir esa pirámide donde el tiempo fundamental se centra ahora en las necesidades del usuario, no en como este programado:
Inversión de la pirámide de dependencias y tiempos donde las horas de desarrollo se reducen a su mínima expresión (y por tanto los errores de desarrollo).
Esta generación “automática” tiene 6 principales ventajas:
- Reduce en un factor de 1 a 10 los tiempos de time-to-Market del desarrollo.
- Se basa y se centra en los requisitos del usuario, por tanto son “casi un traje a medida” de lo que la empresa necesita. Al contrario de la implantación de un ERP, que centra su foco en que el cliente se adapte a los procesos que desarrolla, el desarrollo mediante este tipo de herramientas de última generación se realiza mediante metodología ágil iterativa, adaptando el proyecto a las necesidades especificas del cliente.
- El coste de las licencias de usuario se elimina, no existe.
- En este tipo de desarrollo el CRUD (Create, Update, Read, Delete) de registros se desarrolla a coste aproximadamente cero. Tengamos en cuenta que en un proyecto ERP o de gestión, extranet o intranet, el CRUD puede ser entre el 60% y el 80% de un proyecto.
- El éxito del proyecto ya no radica en las capacidades del programador sino en el o los directores de proyecto. Es decir el foco del proyecto es claramente el equipo gestor y cliente, no el equipo desarrollador.
- El desarrollo esta libre de errores en un 80% y por tanto reduce el tiempo de desarrollo del proyecto, reduciendo la fase de test y aumenta significativamente la calidad percibida por el cliente del proyecto.
…Muchas más que se pueden ver en este enlace.
Diferentes características que el portal web o App generado de forma automática puede aportar
Metodología de 6 fases
La metodología de desarrollo se basa en un proceso iterativo (iteraciones donde el usuario final desde una fase temprana ve el producto que tendrá en forma de prototipos que se van completando), de manera que el cliente ve la evolución de su producto constantemente desde el primer día, pudiendo interceder y reconducir, ampliar o reducir todo lo que considere.
FASE 1. VISION GLOBAL
La primera de las fases, como en metodologías ágiles, es disponer de una visión global del proyecto. Lo que denominamos un alcance macro que liste todas las necesidades o funcionalidades, workflow e interacción que el proyecto deberá pilotar, desde una visión macro. Esta visión macro debería incluir también la integración con sistemas de terceros, tipo de autenticación (a medida, AD, etc), procesos automáticos, capacidades analíticas de Business Intelligence, alertas a usuarios, etc
FASE 2. SELECCION DE LAS FUNCIONALIDADES PRIORITARIAS
De las funcionalidades anteriores, conjuntamente con el cliente, seleccionamos las funcionalidades claves para esta iteración. En la primera iteración es lógico que se seleccionen el CRUD de las tablas maestras y los principales procesos, para ir refinando los Workflows en siguientes iteraciones. Se baja a detalle en aquellas funcionalidades seleccionadas y se establecen reuniones de detalle con los key users que en ocasiones sirve incluso para mejorar los procesos que el propio usuario había planteado.
FASE 3. DISEÑO ENTIDAD RELACIÓN DE BD (E-R)
En base al proceso anterior se desarrolla el Entidad-Relación de esta iteración, siendo este el conjunto de tablas, relaciones, primary key, foreign key, Store procedure, lógica programable, índices, restricciones, tipos de datos y campos que dan soporte, como unos pilares a un edificio, a las funcionalidades seleccionadas como prioritarias en este proceso. De esta manera, el usuario, ajeno a la informática es capaz de ver un entidad relación que dará soporte a su negocio, adelantando, incluso, necesidades como por ejemplo detectar que falta un campo o alguna necesidad que no se soportara con ese entidad relación. En función de si esa necesidad tiene cabida en esta iteración, esta se implementara, o se anotara para una siguiente.
Ejemplo de E-R pensado para las necesidades del cliente
En esta fase y una vez generada la BD se puede importar datos de muestra o maestros que el cliente ya disponga (por ejemplo clientes, artículos, vehículos, usuarios, etc). De esta manera el cliente desde fases tempranas ya visualiza y hace test del proyecto.
FASE 4. GENERACION DE CÓDIGO AUTOMATICA
Una vez estas necesidades, de esta iteración, están plasmadas en una BD relacional y pensada para el negocio que estamos informatizando generamos el portal web que permite toda esta funcionalidad y/o App nativa o hibrida que el cliente puede requerir con coste temporal prácticamente nulo comparado con el coste de un desarrollo tradicional. En concreto el tiempo de test del CRUD de registros es prácticamente cero, libre de errores.
Ejemplo de aplicación de gestión o ERP donde el CRUD supone un 60%-80% de los requisitos.
FASE 5. IMPLEMENTACION PROCESOS CLAVE
Una vez el generador de código ha creado toda la capacidad de CRUD, autenticación, Report, motor de búsqueda, multiidioma, apps, etc podemos realizar “tunning” o creación de los procesos que la empresa necesita de forma particular. Por ejemplo, que cuando se cree un vehículo este se permita asociar al transportista, a un proyecto, etc o por ejemplo que cuando se guarde una factura se haga un apunte de deuda a un cliente… o se envíe un email a los responsables.
Ejemplo de programación en .net y javascript solo para aquellas especificaciones del cliente diferenciales (NO CRUD)
FASE 6. REVISION CON CLIENTE, VALIDACION DE LA ITERACION Y SIGUIENTE ITERACION EN FASE 2
El cliente ya puede ver sus funcionalidades y capacidades del entorno creado para él, asi como usar las App para aquellas funcionalidades de esta iteración, aportando su visión, opinión, ajustes o cambios y las siguientes funcionalidades clave que nos llevaran a la fase 2 de este proceso.
Ejemplo de aplicación generada de forma automatizada con cero lineas de código en base a los requisitos de usuario.
Cada cliente tiene unas necesidades diferentes o especificas que en ocasiones le hacen competitivo. En mi trabajo como perito he podido ver como proyectos ERP han fracasado por una razón fundamental, el implantador quería eliminar esa especificidad del cliente y este no ha querido. Hablando con una empresa me comentaba que gracias a sus procesos tan “raros” y “específicos” ha podido sobrevivir en la crisis y diferenciarse o ser mas óptimo que su competencia.
Ejemplo de integración con Google Maps de forma automática (0 lineas de código de programación)
Una de las preguntas seria ¿Cuando acaba este proceso? El proceso puede no terminar de una forma clara. La empresa, si es dinámica, ira encontrando nuevas funcionalidades, interacciones, integraciones, campos, etc que le ayuden a mejorar su día a día conforme use el sistema de gestión. En otras ocasiones el proceso termina cuando se considera que las iteraciones contratadas han finalizado.
Contacte con nosotros en el 911277300 o en comercial@luisvilanova.es para poder comentar sus necesidades.