Designing Applications For Feature Invention and Scalability

When we start out building an application, we usually have a fair idea of how users are going to use it. However, often we find users using our application in innovative ways that we never imagined. And when users are able to do so with an application, the application is usually a hit! So how do you design applications, which can be molded into innovative purposes by the end user? It would seem that a weak design leads to such application, but this is not so, instead it is the simplicity in design that allows for user invented features (see for example Twitter). So how do you design with simplicity in mind? A few important consideration may help:

  1. Don’t unnecessarily constrain users to follow a fixed path. Your path might be the quickest path but there’s no adventure in it. Without implementing the constraints you will end up with less code to maintain and a significantly simpler design.
  2. Concentrated on the framework first. Design features on top of the framework as if you are an end user. Not only will you be able to add features quickly to the application, at a later point of time you will also be able to open up the framework to end users in the form of an API or SDK.
  3. Don’t store your application data in proprietary formats and don’t use proprietary formats when an open alternative is available. It is very difficult to make any money when the main feature of your application is the proprietary data format :)

Post a Comment

Your email is never shared. Required fields are marked *

*
*