In the spring issue of the McKinsey quarterly there is a piece on The next generation of in-house software development (registration required). The piece discusses ways in which companies are streamlining applications development. I won't summarize the whole piece but it outlines various strategies for spending less on maintenance and operations and applications development. One aspect of the paper struck me as relevant to a rules-based approach.
The paper discussed how some organizations are turning business functionality into internal products and then treating them like off the shelf components - IOTS I guess (Internal Off The Shelf Software). This involves taking software that performs a function such as interest calculation or customer targeting and reusing it in multiple contexts.
Many of the examples are what I would regard as decision-centric components. Indeed one examples of multiple claims engines is a perfect case for using an Enterprise Decision Management approach and developing a single, easy to modify claims decision engine.
The authors (Sam Marwaha, Ranjit Tinaikar and Samir Patil) identify a clear process for approaching this:
- Identify areas that need new applications or changes to existing applications often
- Build these components prospectively - go looking for areas where the business has a strong interest in standardizing its approach
- Work closely with business domains to ensure that the components are in-synch with the business owner's
This seems ideally suited, to me, for a business rules or EDM approach. Not only will many of the reusable components likely be decision-centric (as these are the kinds of business functions that are often true across multiple processes and systems) but they will likely be the ones you are trying to gather data to improve. Focusing on areas where compliance or business strategy are requiring an increasingly consistent and precise approach also fits well in both their model and mine. Lastly the use of business rules technology makes it much easier for the business and IT to collaborate on these components or services and makes it possible to drive even more maintenance cost out of the system by allowing these business owners to make more of the changes themselves over time.
Additionally business rules management systems can allow the decision logic within these services to be managed in a more granular way allowing for additional re-use below the level that makes sense from a component design point of view.