I’m always wondering why I tend to be more excited to develop a kind of application but not the other kind. Now that I’m thinking about it, I can differentiate the applications into enterprise system and specific-purpose application. Let’s see what description that can I provide between the two different application.
Please note that even though I try to distinguish one between each other, it does not ruled out the possibility of an application can serve as specific-purpose application and enterprise system simultaneously. And the characteristic can be swapped each other, means that enterprise system can have a characteristic of specific-purpose application.
What I mean by specific-purpose application here is an application that it’s function and features only serve one purpose. Calculator, Microsoft Excel, Word, Adobe Photoshop, Notepad++ goes into this kind of specific-purpose application. They only serve one purpose. The features are revolved around the purpose itself. Example: Ms.Word’s features will focus to document creation and design, while Ms.Excel’s features will focus to tabular operations and creation.
Wikipedia says that:
Enterprise systems (ES) are large-scale application software packages that support business processes, information flows, reporting, and data analytics in complex organizations. While ES are generally packaged enterprise application software (PEAS) systems they can also be bespoke, custom developed systems created to support a specific organization’s needs.
If I want to describe my point of view: it is a collection of integrated applications that primarily do data operations. The main characteristic of enterprise system is that they are integrated, and they have a single storage, or a fixed set of storage. The storage is fixed so that other integrated applications can access the same data. The features in enterprise system focus to data processing.
The difference in architecture
In specific-purpose application, the operations are defined in smaller scope. Most of the time the operations aren’t contradict or related between each other. And usually it is not customizable, meaning that all of the user can expect the same thing to perform in other installation of application. The operation may have customization into some point, however the customization is limited and predictable.
For example, save operation in Ms.Word should be the same with other installation of Ms.Word. Even with other similar-applications such as Ms.Excel and Adobe Photoshop. And the save operation is not directly related with other operations such as copy/paste, delete, change font. But let’s say that in the developer IDE such as VIM or EMACS, they have different configuration, such as tab size and word wrap. Customizable, but predicted and limited.
The operation in enterprise system is more dynamic and customizable. The same operation in same system installed in other server can behave differently. Moreover, the operations in one part may affect other data because the integration. Example: Updating an purchase order in company A will produce a material request, while updating in company B isn’t.
Specific-purpose application and enterprise system is different. Both have different focus and purpose.