Design Thinking Decoded:A Designer’s Guide for Developers

Walter Code
9 min readMay 16, 2024


A Designer’s Guide for Developers

Originating in the realm of physical product design, design thinking emerged as a structured methodology for innovation and addressing complex challenges. Initially utilized by industrial designers to create user-centric products, design thinking gradually found its way into the digital sphere, transforming software development. As the first step is empathy, you will be able to view the project from the perspective of a designer.

This blog explores a project that aims to update a primitive HR system and demonstrates how design thinking concepts affect how we approach product development. We’ll illustrate how design thinking has developed into a crucial component of creating digital solutions that genuinely connect with users and resonates with them.

The Design Thinking Process:

Design thinking encompasses a series of iterative steps that guide designers through problem-solving and innovation. It provides a methodical framework for comprehending customer requirements, generating creative ideas, and developing working prototypes. At its core, design thinking is fundamentally about taking on problems with empathy, ingenuity, and teamwork to develop solutions that are focused on the needs of users. This process aims to create solutions that not only address user needs but also delight and engage users in meaningful ways.

While different models may have variations, a common framework includes the following stages:

1. Empathize: Understanding User Needs

Empathy lies at the heart of design thinking, allowing us to deeply understand the experiences, motivations, and pain points of users. We use a variety of methods, including conducting user interviews, observing user behaviors in context, and employing ethnographic research methods. Each of these methods offers unique insights into the user’s perspective and experiences.

If we were redesigning an HR app to solve issues with, say, handling employee leave requests, we would start by understanding the HR staff members who use the app daily. One way to conduct this empathetic exploration is through user interviews. Interviews are arranged by designers with HR specialists, asking open-ended questions to encourage them to share their experiences, frustrations, and needs regarding leave management.

Throughout these interviews, we actively listen to understand not just the app’s functional needs but also the emotional aspects of the user experience.

We might ask questions such as:

What are the biggest challenges you face with the current leave management system?

Or if you want to get into even more detail:

In your ideal scenario, what features or functionalities would you like to see in an HR app to make the process of managing employee leave requests smoother and more efficient?

We can gain a better understanding of users’ pain points and frustrations by analyzing the insights from these interviews. With the conclusions based on these patterns, common themes, and areas of opportunity we can improve the design to a more user-friendly and efficient leave management system within the app.

2. Define: Framing the problem

Empathy-driven insights help designers formulate the problem statement and work towards a practical, human-centered solution. This involves integrating the information acquired in the empathize phase to create a precise problem statement that directs the design process. By defining the problem effectively, we ensure that our efforts are focused on addressing the most pressing user needs.

Picture navigating a maze of leave types — ranging from religious to sick, last year annual, this year annual, and unpaid — without a clear roadmap. It’s akin to searching for a needle in a haystack.

Users get lost and struggle to manage and appropriately prioritize information that is essential for their daily responsibilities.

One way to define this problem would be:

“The primary challenge identified through user empathy is the lack of hierarchical organization within the employee leave dashboard. Specifically, users struggle with managing multiple types of leave (e.g., religious, sick, last year annual, this year annual, and unpaid leave) due to the absence of a clear and intuitive structure. Without a hierarchical system in place, users find it difficult to prioritize and navigate through different leave types, resulting in confusion and inefficiency in managing employee leave requests.”

So why is the way the problem is framed so important?

Framing the problem is crucial as it establishes the foundation for all the remaining stages of the project. We give developers explicit instructions by specifying the problem statement accurately, so that developers may concentrate their efforts on resolving the particular pain areas that consumers encounter. This clarity is crucial for maintaining purpose and direction throughout the design process. Without it, there is a risk of drifting off course and delivering solutions that do not effectively address user needs. In essence, a well-defined problem statement acts as the guiding beacon, directing us toward the creation of solutions that are truly impactful and user-centered.

3. Ideate: Generating Creative Solutions

Ideation unleashes creativity through structured brainstorming sessions that leverage techniques like mind mapping, SCAMPER (Substitute, Combine, Adapt, Modify, Put to another use, Eliminate, Reverse), and the six thinking hats. By suspending judgment and embracing wild ideas, designers open themselves up to innovative solutions that may not have been considered otherwise. This stage can be completed in collaboration with a different designer, a team lead, or even by asking the developer about different technical alternatives that may or might not be relevant to this particular issue to gain creative ideas.

In the case of the HR app’s leave management dashboard, one potential solution to the lack of hierarchical organization could involve implementing a categorized filtering system. This system would allow HR personnel to filter leave requests based on different criteria such as leave type, duration, and employee name. Additionally, introducing a color-coded visual hierarchy could further enhance clarity, with different leave types represented by distinct colors for easy identification.

Why is ideation so important? Ideation serves as the creative backbone of the design process, enabling us to explore a wide range of potential solutions to the defined problem. By coming up with several concepts and taking into account different strategies, we raise the possibility of finding fresh approaches that effectively address user needs. Moreover, ideation encourages to think outside the box, fostering creativity and pushing the boundaries of traditional problem-solving approaches. The ideation phase sets the groundwork for developing inventive, user-centric solutions, essential for successful implementation and user adoption.

4. Prototype: Bringing Ideas to Life

Prototyping involves the creation of tangible representations of design concepts, ranging from low-fidelity sketches to high-fidelity mock-ups or functional prototypes. By rapidly iterating through multiple iterations of prototypes, we can validate assumptions, gather feedback from users and stakeholders, and refine their solutions based on real-world insights.

Drafting wireframes of the suggested filtering methods and visual hierarchy for the HR app would be a good place to start. These sketches provide a basic outline of the proposed solution and allow for quick iteration based on feedback. The next step is making an interactive prototype using e.g. Figma, enabling stakeholders to experience the proposed solution firsthand and provide feedback on its functionality and usability. It is important for designers to iterate during the prototyping phase in response to feedback, adjusting the design to fix any problems or make improvements.

This is also a crucial step for developers, who can intervene if perhaps part of the app is hard to develop while being a low-impact functionality (or maybe even impossible to make).

Prototyping serves as a crucial step in the design process as it allows us to gather valuable feedback before finalizing the product. By creating prototypes, designers can quickly test different design concepts and identify potential usability issues or design flaws early in the development process. This iterative approach enables us to make informed decisions and refine the design based on user feedback, ultimately leading to a more polished and user-friendly end product. Additionally, since any necessary adjustments can be made early on when they are easier and less expensive to implement, it helps mitigate the risk of expensive design changes later in the development process.

5. Test: Gathering Feedback and Iterating

Effective testing involves the systematic evaluation of prototypes through methods such as usability testing, A/B testing, and qualitative feedback analysis. By structuring test sessions to elicit actionable feedback from diverse user groups, designers can identify strengths, weaknesses, and opportunities for improvement in their solutions.

For instance, in a usability testing session with a focus group consisting of an HR manager, hiring manager, team lead, QA tester, and three random employees, the prototype of the revamped HR app is evaluated.

the HR manager notes the difficulty in navigating the leave dashboard;

the hiring manager struggles to find relevant candidate information;

the team lead expresses confusion about accessing performance reviews;

one random employee is perplexed because they have to search the app to find their personal leave statistics;

and the QA tester finds a bug related to the submission of expense reports.

Once feedback has been collected, we iterate on the prototype based on the insights gained. This may involve adjusting the design, refining functionality, or addressing any usability issues identified during testing. The iterative nature of the design process allows us to continually improve the prototype based on real-world feedback, resulting in a more refined and user-friendly end product.

Why is testing important?

Testing is a critical step in the design process as it ensures that the final product meets the needs and expectations of its users. By gathering feedback early and often, designers can identify and address potential issues before they become significant problems. Testing also helps validate design decisions and ensures that the final product is intuitive, functional, and enjoyable to use. Ultimately, incorporating user feedback into the design process leads to a more successful product that resonates with its target audience and delivers a positive user experience.

Using Design Thinking in Product Design:

In product design, design thinking serves as a guiding light towards user-centric innovation. By empathizing with users, defining problems, ideating solutions, prototyping ideas, and gathering feedback, designers can develop products that not only solve user problems but also delight and engage them in meaningful ways. Whether designing a new app, a physical product, or a service, design thinking provides a flexible and iterative framework for driving and achieving innovation across various domains.


Design thinking, rooted in empathy, creativity, and collaboration, offers a structured approach to innovation and problem-solving in product design. Through the lens of revamping an outdated HR app, we’ve explored how design thinking principles can transform the development process, resulting in solutions that resonate deeply with users. Through empathizing with users, defining clear problem statements, ideating creative solutions, prototyping ideas, and gathering feedback, designers can effectively address complex challenges and meet real user needs. The iterative nature of the design process ensures that solutions are continually refined and improved based on user insights, ultimately leading to more successful and impactful products.

However, it’s important to note that design thinking may not be applicable to every product or problem. For example, highly technical products or solutions with predefined specifications may not benefit from the open-ended nature of design thinking. Nonetheless, design thinking serves as a valuable foundation for understanding user needs and fostering innovation in product design. By embracing its principles and continually refining our processes, we can unlock new possibilities and create products that truly make a difference in the lives of our users.