Posted by: Amburkar Sankar Rao on: January 19, 2010
Enterprise Software products are unique and generally different organizations use it differently. It will be rare or impossible to see enterprise software used without modifications by enterprises. A typical enterprise has unique needs based on their organization structure and they customize the software available off the shelf. They hire functional and technical consultants, who have expert level knowledge of underlying technology and functionality to perform these customizations. The nature of customization could be either simple UI change, data model change or it could even more complex such as behavioral change (i.e. configuring workflows, adding business rules etc.,) or third party integrations. The consultants will typically make changes to the application source code and would require source code maintenance with the enterprise.
With the emergence of SaaS delivery model and multi-tenancy needed to achieve economies of scale, software customization for individual is not a viable option. The vendor will not be able to maintain versions of software for every customer and with software available on cloud the enterprises cannot maintain source code in house. At the same time, customers should be able to extend the product functionality to suit their needs. Software extensibility framework helps software to be customization without a need to change the underlying source code. A good extensibility framework design will allow the end users to customize the software and these customization will be visible only in the instance which the customer is accessing.
An extensible design can be categorized as following.
I will discuss each of these with an example in my subsequent posts.
1 | Extensible Design – Data Model and User Interface « Enterprise Software Design Blog
February 1, 2010 at 10:05 pm
[...] As discussed in my earlier post(Extensibility Design), an extensible design provides the ability to customize an enterprise application software to [...]