Recientemente he (re)descubierto el Business Rules Manifesto que proclama la importanica de las reglas de negocio y define como deberían especificarse/procesarse.
Algunos de mis artículos favoritos en el manifesto son (disponibles en español en el link anterior):
- Rules are a first-class citizen of the requirements world.
- Rules must be explicit. No rule is ever assumed about any concept or fact.
- Rules should be expressed declaratively in natural-language sentences for the business audience.
- Business rules should be expressed in such a way that they can be validated for correctness by business people.
- Business rules should be expressed in such a way that they can be verified against each other for consistency.
- A business rule system must always be able to explain the reasoning by which it arrives at conclusions or takes action.
- More rules is not better. Usually fewer good rules is better.
Especialmente importante para mi es el primer artículo “rules are first-class citizens of the requirements world” . Creo que esto ha sido ámpliamente ignorado durante el desarrollo de software, como mínimo hasta hace poco. Cuando era absolutamente necesario tener en cuenta alguna regla de negocio en concreto, se integraba su definición como parte de la especificación de los procesos a ejecutar por el software (cosa que lleva fácilmente a errores, ya que los diseñadores tienes que tener en la cabeza todas las reglas y pensar qué procesos puede afectar su integridad)
Cuando empezé mi doctorado (en 2002!), mi sensación era que las reglas de negocio sólo eran consideradas importantes por una comunidad muy específica (e.j. the business rules group ) con sus propios métodos de desarrollo y herramientas (and conferences), llamados “rule engines”, capaces de ejecutar directamente las reglas (siguiendo otro de los artículos en el manifesto: “Executing rules directly — for example in a rules engine — is a better implementation strategy than transcribing the rules into some procedural form “).
De hecho, con
Antoni Olivé escribimos que una mejor integración entre las reglas de negocio y el desarrollo dirigido por modelos era una de las “research challenges” en el área de desarrollo de sistemas de información.
De todas formas, hoy en día me siento mucho más optimista. Gracias a la eclosión de la web semántica, todo lo reference a las reglas de negocio se ha puesto de moda de nuevo. Esto, conjuntamente con la definición de diversos estándares para especificar las reglas (especialmente SBVR- Semantics of Business Vocabulary and Business Rules), ha contribuïdo a que haya ahora algunos grupos que se dediquen a estudiar la mejor forma de combinar las dos aproximaciones al desarrollo de software (entre otros yo mismo pero de eso hablaremos otro día).
Si te ha gustado esta entrada, puedes subscribirte a este Software Modeling blog y/o seguirme en twitter y/o a través de la lista de distribución del portal Y si realmente te ha gustado ayúdame a hacerlo llegar a otros utilizando los bookmarks que tienes a continuación: