Let me start with a disclaimer – this topic is not about technology. It’s my view on Application Design.
Application Design is not just about creating beautiful/colorful user interfaces. It is all about creating a perfect rhythm between the front-end interface and back-end systems that addresses user need.
In my view, any new application design should have the following three layers. And in the same order.
Layer 1: Understand the Problem(s)
Ask what problems are we trying to solve? How do we know that these are the problems that people/organizations are really concerned about? Ask WHY should we build this application. Do we have the required capabilities to solve it?
These questions sound very simple. But many people miss these points completely. Usually, they focus more on building solutions than understanding and validating problems.
We should start with a deeper understanding of the problem(s) that we are trying to fix. We should look at end-to-end user journey before jumping on to designing a solution. We should think beyond the obvious/explicit stuff while articulating user needs and journeys.
Discover the problem(s).
Layer 2: Design Back-end Solution(s)
Explore back-end solutions that address the problem(s) in the most effective manner. Focus on workflow. Focus on data flow. Focus on integrations. Look at end-to-end user journey. Also, look at the entire lifecycle of the solution – installation, integration, upgrades, support, maintenance, etc.
Once we are confident about the back-end solution, explore options to make it lean and efficient. Question every step in the backend process flow, interaction, and processing. Try to make it as simple as possible, without compromising with the intent. The entire focus is on process flows, lean and simplicity. Try to build intelligence into the solution.
Design an effective and efficient back-end solution.
Layer 3: Design Front-end Experience
The next step after outlining an effective and efficient back-end solution is to design the experience that the users deserve. There may be multiple options here. Design each one of them keeping in mind user journey. It’s all about front-end user interface and how smoothly it works with the back-end processes and systems. Make it effortless by leveraging technology. Make the necessary changes to the back-end design. All users are not the same. Provide options to customize the interface.
Deliver user experience.