(Posed by guest blogger, James Taylor)
I have been thinking about adaptive applications recently and about what makes an application adaptive (see my twitter stream for instance). This seems like an important topic as people throw "business agility" and "agile enterprise" around. Making an application adaptive can be important when modernizing an existing application (how can I make this application more adaptive for the current/future environment) or when building a new one (unlike previous attempts, let's make this one easy to change) or when adding "smarts" to an enterprise application (everyone is using the same instance of SAP, how can I let each division adapt its business a little without losing the common platform).
The first issue that comes up is one of where you make an application adaptive. Some (like Forrester) have used the expression flexi points to discuss the places in an application where you should build for change. My experience is that almost all of these turn out to be decision points. It is the way an organization chooses to act that changes and the embodiment of this in applications is around decisions. To build in adaptability, then, one must focus on decisions and decision services. This works for all three scenarios:
- Externalize core decisions from a legacy application and make the resulting decision services easy to change and the whole application becomes more adaptable
- Building a new application, externalize the rapidly changing business logic in decision services and the number of changes for the rest of the application will drop steeply.
- Use decision services to enhance enterprise applications and the common backbone will have flexible decisions bolted on.
Using decision services like this also allows you to add adaptive control. Adaptive control, the constant evaluation of an existing champion approach against multiple new or challenger approaches, helps instill continuous improment and exploration in an application. Adaptive control is often best applied to decision services, certainly this is an approach that works making these decision services even more adaptive. Finally, of course,analytics can be applied to decision services to make better decisions and the infrastructure of a rules-based decision service allows for rapid analytic deployment, further improving adaptability.
If this is an area that interests you, check out this page to register for a series of white papers around this topic, courtesy of my friends at Fair Isaac.
You might also enjoy these posts:
- The last decomposition of the application
- Lean application development and maintenance - some thoughts
- Process Management and Decision Management
- Getting Started with Adaptive Control
- Why are enterprise applications so dumb?
- Decision management at the heart of your digital business
- Achieving Agility - some notes after Gartner
- Using EDM and adaptive control to respond to uncertainty