Business software is delivered today in the form of applications that need development and deployment. Just like any other manufacturing domain, application development can benefit from automation and is subject to the learning curve effect. Software producers are therefore always on the lookout for tools and platforms that can accelerate the development process, increase the quality of the finished product, and reduce maintenance cost.
The proliferation of today’s computing environments (hardware, operating systems) and architectures (desktop, client-server, web, mobile) require specialized development and deployment implementations. In addition application platforms are evolving to create abstraction layers which let you separate the application logic from the delivery platform.
There is also an inherent conflict between seeking a high return on the software investment, (often translated as an extended application life-span), and adapting to the accelerating changes in the business environment. High ROI is often associated with “change resistant” packages, while what businesses are really looking for are “change resilient” solutions.
The emergence of the next generation of service oriented applications will add distributed computing features, new protocols and other building blocks of Web applications. These business applications have service-oriented architectures, rich and sophisticated user experiences, BPM and business rules, IP application protocols, metadata management, event management, and other advanced features. An increasing number are also delivered as a service, raising the challenge for software vendors.