Back to Blog

Design Thinking on Software Development

06
Apr
2021
Strategy
Design Thinking in Software Development

One of our most important roles as devs is to help clients define their ideas. Design Thinking's short feedback loops allow us to reach better products. Also, it's faster and more effective for our clients. Not only are we software developers, but also we have to be experts in UI/UX design. That’s why we have had a designed-centered process since our start. Yet, Design-Oriented and Design Thinking are not the same thing. So, we’ve been moving towards the latter. What are its benefits? Design Thinking processes can save our clients and ourselves time and money.

The Old Design Thinking Model

Let’s look at how budgeting problems often arise in a project. The traditional process goes like this:

Client has idea client/company draws up wireframes and works out features company provides estimates company makes design client approves design company makes product tests run on product company launches product for users.

At some point, the client or company may discover a feature far from the original plan. Or also find that something is missing. In this case, an inexperienced team will almost always make this mistake. Yet, it can also happen with experienced teams and clear-cut projects. Worse yet, the company could deliver a product that doesn’t meet the expectations of the client or the users. Resolving these oversights comes with sometimes stressful back-and-forth talk. And unfortunately, someone ends up eating the cost.

Design Thinking on Software Development

What is Design Thinking?

​​Design Thinking has been a concept in use since the 60s. It's been recently promoted by ODEO, a design and consultancy firm. Also, it's a formal line of study at Stanford University. Many big brands have designers trained in Design Thinking. Names from IBM to Airbnb apply this method to make new products. Short-term, it's a user-first approach focusing on rapid prototyping and feedback. The steps are:

1. Empathize with users to find out what they need.2. Define specific problems that the product will resolve.3. Ideate (or brainstorm) to come up with possible solutions.4. Prototype the solution.5. Test the solution with users.

This process gets repeated until users feel the product solves their problem. Yet, it sometimes catches flack. That's because it’s rather theoretical and has a buzzword sheen that can turn people off. As you might guess, not every company has the resources for a room full of experts dreaming up the next big thing.

Making Design Thinking Agile

We've known Design Thinking for a long time ago. Yet, we incorporate it into our processes after reading Sprint. This Jake Knapp book provides a Design Sprints method adaptable to all companies. One of the keys between Design Sprints from Design Thinking is putting a time limit of five days on the process. 

The idea of a Design Sprint is to create a feedback loop at the start of the development process. Sometimes, you may have to invest in these processes. Yet, its point is to circumvent possible problems from poorly developed ideas. It emphasizes getting a prototype rolled out and creating detailed user stories.

An example of this is Mandala, a new cryptocurrency exchange. The venture contracted us to design and build its platform front-end. So, we started by designing its dashboard. Not only did it feature exchanges of complex data but also trading tools. Since exchange with these tools doesn’t currently exist, there was no clear example of how to start. The traditional development model could have immersed us in a complicated path.

We assembled a design sprint of less than a week to nail down features and the look and feel of the dashboard. This lets us create a series of designs to present to the client. The first version is always rough. Yet, it can potentially discuss what is working and missing. With every increase in definition, we fully define the functionalities of the dashboard.

Design Thinking on Software Development

Conclusion

This feedback loop acts as a discovery period for Product Design and development. It allows us to focus on users and not the client’s initial assumptions. Also, it lets us discover if the product presents problems. These discoveries include issues clients might not have considered at any stage. Most importantly, this process decreases risk. With this data, we can provide an estimate to our client that is accurate and fair.