Avoid Building Bad Software
- Name
- Roshni P
- Published on

A product becomes useful only when the design is capable of performing and fulfilling its intended function. So it is important that you make your good looking design easily interactable. And that's how you can build a successful software.
Like many of you, I wanted to keep myself positive and productive during this pandemic so I was on a hunt for self-care apps like habit tracker, journal etc. What I understood after trying a lot of software is that even if the design was aesthetically good, it was awfully difficult to interact with the features and get the job done. And it wasn’t because of any bugs but it was frustrating to use. Lets see how not to build a product like these ones.
Step 1: Reduce the number of interruptions towards the goal.
Pay attention to the sequence of steps used to perform a task, especially the complex ones. When you make the users repeatedly stop while they are in the middle of some task, and make them search around for the functions or data to complete the task, it gives the users a maddening experience. Rather, you should allow the users to reach their goals real quick with less number of steps and navigation.
Present information and features at the point of need to your users. Investigate realistic usage scenarios to understand the users’ goals and the sequence of actions to be performed. And then start designing accordingly. This will help you to place the controls and data in the right place at the right time.
You will also know which items users frequently use so that you can make them highly visible. If an action contains a linear sequence of steps, it must be presented together so that the users don’t go searching for it to continue with the next step. So it's important to keep in mind that you avoid interrupted flow while performing any actions on the software. And showing data only at the point of need will get the job done.
Step 2: Use Task Analysis and Job-to-be-done analysis
Out of the many softwares i tried, some had this confusing workflow problem. These inefficient workflow problems require understanding the root causes. What's more challenging is that we can't find these problems at the first glance. There is a chance we might build new features on top of it without knowing and resolving these issues.
These may lead to structural problems and interaction with the software might get more frustrating. Best solution to this problem is to stop creating them in the first place. Before you design the app structure, understand what a user will need at each step to perform an operation. There are two approaches that can help you with that.
Task analysis is the systematic study of understanding how users complete each operation. This analysis is crucial to ensure that the product is designed efficiently to reach the desired goal. This analysis involves 2 steps.
- Collect information about user goals and tasks. Various techniques include contextual inquiry, critical incident technique, record keeping, activity sampling and simulations.
- Analyze and understand the overall number of tasks, subtasks, their sequence, their hierarchy, and their complexity. The result of this is represented using a task-analysis diagram.
Jobs-to-be-done analysis is outcome focused. Real needs of the customers are learned from qualitative user research. The core reason why customers want a product (solution) is identified, followed by competitor analysis. After gathering all this information, the product team can finalize how to effectively offer a solution to the customer’s problem. Also how we can do that better than the competitors.
Thus using these analysis methods, you can understand why, what and when a user will need specific features or data and design the screens based on that.