In this day and age, where the options are plenty and the marketplace is crowded, customer loyalty is a tricky thing to accomplish. Everyone is looking to differentiate themselves and achieve customer delight. The most obvious way is to create products or services that are completely customer centric. And, though this seems like a given, the question remains how good we really are at creating customer centric products or services.

Design Thinking Overview

My agenda here is get us thinking about Design Thinking and how it can be applied to software development.

So, let’s start at the beginning. – What’s Design Thinking? Simply put, it’s a human centered approach to solving complex problems and driving innovation. It’s a process that enables us to think from our customer’s perspective, and eventually create solutions that meet their needs.

A couple things to note – Design Thinking is not just for the designers. This process is for all those who care about delivering products/services to solve their customer’s problems.  Secondly, it’s not just about thinking either. It’s more about doing than thinking, and this will be evident as you read ahead.

Design Thinking has been around for decades, but it started to gain traction when IDEO, and later Stanford adopted this practice and created formal processes, tangible steps that could be taken to implement the Design Thinking approach. With time, more and more organizations saw the value in implementing Design Thinking. Today some of major players who use Design Thinking and are seeing actual results include IBM, Apple, Airbnb, Ericsson, Burberry and there are many others.

So, what does the Design Thinking process look like? Here are the steps you’d go through to implement Design Thinking.


  1. Empathize: This step is the foundation of the human centered approach of Design Thinking since the problems we are trying to solve are not ours, but those of our customers. By observing them in their environment, talking to them, and identifying with them, we can gain true insight into the customers’ needs, their emotions, and their challenges.
  2. Define: This is the problem statement definition step. We take our findings from the empathy step and articulate a problem statement that reflects the needs and challenges of our customers. This statement will drive the solutioning process.
  3. Ideate: With a clear problem statement in mind, we start thinking of potential solutions in this step. The focus here is more on the quantity of solutions than their quality – the logic being that with some of the obvious solutions out of the way, we might just strike innovation.
  4. Prototype: In this step, we narrow down to a few strong ideas and then create their prototypes i.e. a preliminary version of our actual solution. The prototypes can take any form, ranging from a paper model to wireframes. The prototypes should be rough and rapid so there’s flexibility to learn and adjust quickly.
  5. Test: To maintain the user centric approach, we test our prototypes in this step and refine them based on the users’ feedback. There’s also the possibility that everything gets thrown out and we just start from scratch.

The important thing to remember here is that, this process is iterative. When we test and receive feedback, it’s an opportunity to improve and create something that best meets our customer’s needs.

Design Thinking for Software Development

So now that we have an idea about Design Thinking, let’s see how we can apply this to the process of software development.

Typically, in many companies, the sales teams, the business analysts, or any other customer facing people are closest to the customers’ vision. They have a front row seat to understand the customer needs, pain points, and their goals. Once the requirements are gathered, and they are translated into various types of requirements documents, only then the development and testing teams come into the picture.

Here’s an alternate approach – Once the requirements have been collected, the entire team or at the very least the leads of the software development team (Business analyst, project manager, development lead, solution architect, test lead) can come together to understand the customer’s requirements. They can ideate together keeping customer’s needs at the heart of these discussions and create some possible solutions.  Once rapid prototyping is done, customers can provide their feedback and when the customers agree on the overall design, the actual development can start.

There are many advantages to this approach –

  1. Everyone is on the same page about the customer’s needs: Given that all the teams understand what the customer requires, the designing, coding, testing is all done with the same objectives in mind. There are no gaps in understanding customer requirement, and hence there is very little room for assumptions. The the final solution created is more likely to be exactly, or almost exactly what the customer needs.
  2. Feasibility has been verified: Since designers, solution architects, as well as developers are involved in the solutioning process, the prototypes created have already been deemed feasible. There are no over-promises to the customers that the designers or developers struggle to fulfill in the later stages of software development.
  3. Significant cost savings: Since the requirements are clear from the beginning, the possibility of rework reduces significantly. This directly translates to savings in terms of hours and dollars. The frustration arising from rework is a non-issue and it’s an important benefit to consider.
  4. Superlative Customer Experience: When an organization can solve their customers’ issues and exceed expectations time and again, they’ve won themselves the loyalty of their customers.
  5. Innovation: When people with different thought processes and focus areas are involved in creating solutions, there is an abundance of creativity, and the problem is tackled from many different angles. Hence, the chances of creating an innovative solution are much better.

From startups to large organizations, many companies are implementing Design Thinking today, in order to transform how they develop products or services and deliver true value to their customers.

But before jumping on this bandwagon, here’s a final thought to consider – Design Thinking, undoubtedly, is great tool to have in your tool kit, but the most effective way to realize its full potential is if it becomes a part of your organization’s DNA as opposed to a scattered or a one-time activity.

Loading Likes...