There are multiple ways to approach software product design, primary among them are the data-driven and user-driven approaches. These approaches are not mutually exclusive, but let’s look at each of them in the purest form and analyze their pros and cons.
Data Driven Design
Data-driven design is how software product design started. In the beginning, there was no user except for the person who types the code on the console or feeds it via a punch card, and another user that receives printed reports on their desk. Thus, for software that emanated from conversion of a paper-based system to an electronic system, the primary designated purpose of the system was a means for data entry, be it files or user input on a screen. The goal in such a system is for the data to be fed into it in the right form so that it can subsequently be transformed into various states based on time.
Data-driven design requires a very thorough analysis of the manual process, and a very good understanding of the inter-relationship between the various data files, also known as database tables or schemas. This provides a certain consistency to the maintainer of the systems as well as to the experienced end users, who, having used one part of the system can easily predict how another part will behave. There is, however, a learning curve for a new user or a new maintainer because they need to understand the underlying data storage design.
In addition, the schema is practically exposed to the end users, and it may acquire quirks over time, leading to a feeling that the system is weird from a usability perspective. However, you will find seasoned and experienced users swearing by such a system because they have a good understanding of the quirks.
Maintainability is a challenge because of the exposed schema, it may not be possible to change the implementation because the implementation is practically the interface.
The user-driven design is the new, new thing that’s already becoming old. It has shown its face via many avatars and is driven by user stories, user experience, usability, and disability discrimination acts.
In a user-driven software product design, rather than start with the data being stored, the designers start with the actors who are going to be participating in the system, and determine what is the minimum number of things, or data elements that they need to be given, and in what sequence, so that they can push the envelope to the next stage with the minimum friction. Rather than worry about each and every element of the data files at the outset (although it will have to be done eventually), the designers start with what each actor needs to have and needs to provide on what events.
Interactivity takes the front seat, and the designer doesn’t worry too much about the actual data being passed around. This approach is very good when a software vendor wants to give a product demonstration because when a prospect is evaluating a product, they want to know how the product is going to change the workflow for the people playing various roles in their organization. This approach also tries to get the maximum productivity out of each participant in the system by designing efficient screens, notifications, and workflow.
There are of course some aspects that can take a back seat with this approach, namely consistency of the design. Actor A, who is interested in, say applying for a loan, has different interests than actor B, who needs to get sufficient data to underwrite that loan. However, they are both acting on the same data set and there may be plenty of back and forth happening between them in the entire process. Therefore it is necessary to be consistent in terms of the shared data that both the actors are acting on.
In addition, it is important that there is a shared understanding of what each and every field of data means, how it changes state upon user actions. Failing that, a good user experience initially can end up being a very difficult solution to maintain and debug.
While at first glance it may appear to be a foregone conclusion that between data and user-driven design, user-driven design wins, a deeper analysis indicates that even the users are best served when the data design is prim and proper. Rather than being mutually exclusive, it is necessary to have the best of both.
At Sigma Infosolutions we follow a user-driven design approach which is backed by strong modeling experience to model the data that the software systems will be dealing with and that gives our users and customers the best of both worlds.