I saw this post on Jeff Schneider's blog about design-time agility and performance. He talks about working with a client to "define their core architectural principles" and had one that read "Agility over Performance". His post went on to discussing having both Agility and Performance and the fact that it is
"More common is the need to resolve competing interests such as 'agility' or 'performance'"
At some level he is, of course, 100% correct.There is no such thing as a free lunch and almost any benefit (increased agility say) will have implications of increased cost (say performance problems). That said there are approaches that offer a great deal of agility while minimizing performance problems. To the extent to which SOA delivers agility it can be done without a massive performance hit as Jeff discusses. However, making services themselves agile (rather than assemblies of services) requires a different approach to programming them. Using business rules to build decision services can offer a very high degree of agility while still delivering great performance - not only do many business rules management systems offer a compiled-out version for sequential execution, new algorithms for inferencing such as Rete III mean that forward-chaining or inferencing can also deliver high performance when the agility offered by it is essential. Using business rules to develop these decision services offers great agility without having to build clunky database-table driven parameterization or something.
Jeff correctly pointed out that the recent focus in IT development has been to make software more agile from a design perspective and summarized the reason for this nicely as well as pointing out a key issue in some shops:
A fundamental notion that I.T. embraces is that we must increase developer productivity to enable "development at the speed of business"
Many I.T. shops have implicitly embraced the opposite view (Runtime Performance Cost over Design Time Agility).
It does not matter how fast you can process a transaction if the way you are doing it is no longer the way your business wants you to. Sacrificing this kind of agility to maximize runtime performance is not just stupid, in this era of regulation it could be criminally negligent. Modernizing your legacy applications to add this kind of agility might be just what you need.
Technorati Tags: agility, BRE, BRMS, Business Rules, legacy modernization, SOA










Leave a comment