Friday, November 2, 2007

Classification of Software Applications – Customer View

There may be several classifications already exists for Software applications. I want to classify applications based on their customers independent of the technology.

At a high level below is the classification of software application business segments

  1. End User Applications
  2. End user service provider application
  3. Enterprise Applications
  4. Enterprise Service Provider Application

Applications in every segment have their unique requirements. We can not impress users of one segment with the application developed for another segment. In reality there may be a slight overlap, but we can identify the sweat spot easily if we look at the feature set carefully. In this article I will try to explain each segment and its unique properties. These aspects not just related to product marketing, product development also required to understand to develop best fit applications for the requirement world.

End User applications are targeted for install, use and maintain by the end users. Very good installation wizards, easy or zero maintenance are some of the key properties. Application should work in normal environments without having a need for installing additional applications. Some of the examples for this category are Editors, Games, Utilities like file compression, etc.

End user service provider applications are usually web applications. One service provider hosts the application, several users uses the system concurrently. Unlike end user applications, installing and uninstalling application is not very important but other features like backup, staging and restore play a critical role. It is required to support huge number of concurrent users.

Enterprise applications are the applications targeted to use in enterprise environments. To use an application in enterprise environment it need to have some mandatory requirements like authentication, role based access, scalability, performance. Application should be easily integrated with existing infrastructure. So integrating with external authentication systems and integration with existing management systems makes application to fit in enterprise environments.

For small enterprises maintaining infrastructure is a burden so they started relying on service providers with stringent requirements agreed in the form of SLAs. This adds special requirements to the applications running in this segment. Application scalability, performance and user management plays critical role. Non availability or performance issues may incur a huge loss to the service provider so monitoring these applications is very important. Securing privacy of individual users or enterprises is another unique property of the applications in this space.