Intentional design, functionality, optimization and user-friendly features are the components of creating good software products. In order for your product to delight users you need to walk the extra mile in the users' shoes. 

Enter design thinking. The design thinking process starts with empathy, which means setting aside your beliefs on what you think the end user wants, and listening to them to learn what they actually want.

If you think that your product is good enough, good luck. Design thinking is what sets companies like AirBnB and Instagram apart from everyone else. 

There are various academic explanations of what design thinking is, but in simple words, it is a creative process of human-centered problem-solving. Now you might be wondering, doesn’t all software development have a person as the starting point? Yes and no. 

Software development takes as a basis the end-user, which is a person, but it addresses the logical side that optimizes the behavior. The problem is that humans are more emotional and irrational rather than logical and you need to dig deeper in their motivations and feelings in order to find out how to improve your product. 

Business conduct research to observe how users use their products, and ask them questions about certain features to learn what’s working and what doesn’t. Managers can also conduct secondary research on the internet to discover user pain points through Reddit discussions and user reviews.

When Swiss houseware company Zyliss wanted to design a new set of handy kitchen tools, it had a team of designers spend time with people in the kitchen. They noticed that some people licked their spoons before placing it in the sink. While this wasn’t reflected in any of the questionnaires, they saw a less obvious need and addressed it with their design. 

In software development, design thinking helps engineers create and improve features that stronger relationships end users by understanding their customers’ core needs better. The design thinking process consists of 5 steps that aren’t linear. You can jump from one to the other to make adjustments: 

  • Empathize with the user - software engineers can get a better understanding of what can improve their product by listening to users feedback and identifying pain points
  • Define the problem - during this process software engineers analyze the information that was previously gathered and identify a problem in a human-centered manner. The set goal will direct the next steps of the development process. 
  • Ideate possible solutions - this is where the team brainstorms. There are plenty of techniques from the Worst Possible Idea to Mindmapping. The purpose of design thinking is to start the creative flow and find new solutions. 
  • Prototype selected solutions - once you select the best ideas, prototyping stage begins. You can test multiple ideas, and each prototype gives a better idea of functionality and how it will be accepted by the users. 
  • Test the prototype with users - once the prototypes are ready, users can test and give their feedback. Based on this information, software engineers can make changes to the chosen product or go back and try to find a new solution. 

Technology integrates deeply with our lives and products must delight users otherwise they will eventually stop using them. 

Tech industry giants like Apple and Uber has championed design thinking and can attribute their success to the emphasis that they placed on great design.

Design thinking might not be a solution to every complex software engineering problem, but it certainly does provide a better understanding of the end user and their needs. Applying it to the development process helps engineers take good software one step further and make it more intuitive to users. It reminds us that the best solutions are often the most simple.