The objective of any application development/delivery solution is simply productivity and quality: How can we deliver the most quality in a timely manner and at the lowest cost. However, when productivity is mentioned in the IT marketplace, it is often confused with just one of its components, application development productivity. Though the latter is very important (AOA claims to deliver an order-of-magnitude improvement in application development productivity), it is not in itself the most important component to the overall solution. This is because the initial development of an application is only a small percentage of the final costs of delivering that solution to a myriad of customers with varying needs across a variety of environments.
No, the key to that final productivity is reusability, the ability to effectively apply a complex application solution built for one envisioned set of needs in one environment to a large number of customers with a variety of needs in a variety of environments. Such reusability has been achieved with isolated subsets of application functionality, but is grossly missing across the very large application market, particularly for that area referred to as ERP systems. And at the heart of the difficulty is the level at which software systems are built: They are built with low-level programming structures, far removed from the business problems for which they are intended to solve.