Tres cosas hay en la vida, como dice la canción, y en el ámbito de las aplicaciones, estas tres cosas son procesos, servicios y reglas de negocio.
Sobre los procesos de negocio, los servicios y cómo se complementan ambos ya los he tratado en entradas anteriores en este mismo blog
Los gestores de reglas de negocio son quizás los más desconocidos en relación con los otros dos. Si bien las reglas de negocio están presentes, obviamente, en todas las aplicaciones de negocio, normalmente estas forman parte del código fuente del programa y han sido implementadas por un desarrollador en un lenguaje de programación como Java, Cobol, .Net, etc.
Sin embargo las reglas de negocio cambian con frecuencia, cada vez más, debido a la necesidad de ser más competitivos y buscar nuevas oportunidades de negocio o debido a cambios legales. Por ejemplo, en una campaña de promoción se quiere aplicar descuentos a un determinado grupo de clientes, por ejemplo, los clientes premium. Lamentablemente los ciclos habituales de desarrollo pueden resultar demasiado lentos para las necesidades de negocio. Si el habitual ciclo de análisis, diseño, construcción, pruebas y despliegue (con las variaciones que se quieran) no se ajusta a los cada vez exiguos plazos del famoso time to market, tal vez los gestores de reglas de negocio puedan ser la solución.
La gran novedad que plantean es hacer posible que el propio usuario de negocio, el que en definitiva define estas reglas, pueda él mismo implementar estas reglas e incluirlas en el servicio o aplicación. Ya no hará falta, por tanto la intervención de un equipo de desarrollo que traduzca las reglas de negocio a un lenguaje informático. Así, por ejemplo, el tiempo necesario para añadir un descuento en la tarifa a un grupo de clientes, puede reducirse a minutos. El usuario entra en la aplicación de edición y teclea lo siguiente:

Si el usuario es del tipo premium y realiza una compra superior a 100€ realizar descuento del 5%.

¿Cómo se consigue que el usuario de negocio pueda implementar estas reglas? ¿cómo puede hacer un trabajo históricamente reservado a un programador?
Pues proporcionando un lenguaje de programación que en en realidad es lenguaje natural (en inglés o en español por ejemplo) que es realmente el mismo que habla el usuario. Así puede fácilmente crear nuevas reglas o modificar las existentes.
Incluso en los gestores más avanzados como Ilog de IBM , el usuario escribe directamente en documento Word. Internamente este documento tiene las macros necesarias para insertar estas reglas en el motor para su ejecución.
A este lenguaje natural se le añaden todas las herramientas necesarias por ejemplo, para empaquetar un conjunto de reglas, versionarlas, desplegarlas en el entorno de producción ,etc, etc.