Blog /  
The Design Thinking Process: Steps You Shouldn't Skip

The Design Thinking Process: 5 Steps You Shouldn't Skip

March 23, 2022
12 min read

Are you developing a product from scratch or scaling an existing system? If so, you have probably already heard about <medium>design thinking<medium>. That's the magic wand used by Airbnb and Apple, IKEA and Ubereats to create attractive products and valuable brands.

This approach is well-known not only among designers but also among product owners. Both of them know for sure the benefits and strengths of this methodology. Let's go through this topic together.

What is design thinking process?

Design thinking is a user-centric approach intended to meet customer needs in the best possible way and find solutions for non-trivial problems.

<medium>A non-trivial problem is firstly about a challenge with no off-the-shelf solution<medium>. For example, it may be related to a fast-changing industry, unpredictability, or a lack of understanding of factors that can impact the final result.

Throughout history, people have faced numerous non-trivial problems, from cultural differences and social conflicts to global climate change. From a business perspective, an example of a non-trivial problem is the need for retention, competitiveness, or becoming the top player in the industry. To achieve this, companies are looking to optimize their existing processes with different tools, including technology. Startups are also aware of design thinking stages, <medium>from validating business ideas to providing a better customer experience than their competitors.<medium>

design thinking stages

Let's figure out three key design thinking steps: <medium>empathizing, defining, ideating, prototyping and testing.<medium>


01 Empathizing

The first design thinking principle is empathy. Here we need to understand users' experiences, motivations, and problems.

Follow the next design steps to start the product development process effectively:

1. Observe and consult with users

2. Analyze users' needs and expectations

3. Take notes for the further stage of examining user frictions and ways to solve them


02 Defining

The next crucial design step is the processing of the information on hands. The development team synthesizes it into problem statements and user personas.


03 Ideating

This step involves revisioning the results from the previous steps. The main goal of the design team here is to question existing ways of solving user problems and tasks to generate new, shorter and elegant ones.

04 Prototyping

Once the best ideas are defined, the team can proceed to the next step: prototyping. This tool makes the process more efficient and brings all possible benefits of cost-saving idea validation. It's crucial to design the solution simply and clearly with accurate, well-defined metrics.


05 Testing

When the prototype is ready, it's time to test it and gather feedback. Be critical about the tested solutions, leaving room for a keen eye and ideas for improvement. If a place for such improvement is found, the team designs a prototype of the new solution and retests it.

Why design thinking is important for app development?

The fate of a system is determined during the solution design stage. That's why you have to know <medium>common mistakes that can lead to project failure and avoid them.<medium>


Stakeholders often have different ideas of what an ideal system should look like and expect the designer to create a solution that aligns with their vision. However, meeting all expectations can be challenging without following the crucial design thinking principles.

By implementing a well-tuned process, the team can avoid the issues described above and effectively collaborate throughout the product design phase.

How do we conduct design discovery at Freshcode?

The design thinking approach is the foundation and a proven solution for the discovery phase we provide. The key is to <medium>identify customer problems and test different hypotheses to find a solution to solve them.<medium>

We prioritize consulting with end-users before starting the product design process. However, we remain flexible and adaptable. If consulting with users is not possible, we design the system based on client interactions and conduct thorough research to formulate hypotheses.


Freshcode provides two types of discovery stages: basic and comprehensive. Both of them have their own purpose and suitable cases to use.

During the basic discovery phase, we elicit user requirements and design the system. This process involves three key steps:


What are four key types of design deliverables?

When it comes to the development process, it's common for business analytics and designers to hand off design deliverables to stakeholders, developers, or other team members to get feedback and implement design solutions into a real product.

Each one serves a different purpose. Let's explore the four main types:


Once the client presents the vision of the system, the business analyst engages the team in a brainstorming session to define the goals and objectives of the system. This is where sketches come in handy.

A sketch is a hand-drawn draft of the system or its components allows for quick visualization of data and provides a general, non-detailed structure. Creating sketches does not take much time and often they look like this:

ux sketch

Once the client presents the vision of the system, the business analyst engages the team in a brainstorming session to define the goals and objectives of the system. This is where sketches come in handy.

A sketch is a hand-drawn draft of the system or its components allows for quick visualization of data and provides a general, non-detailed structure. Creating sketches does not take much time and often they look like this:


A wireframe is a detailed version of a sketch developed using digital graphic tools that takes into account all components of the final product. It defines sizes and proper placement of components in grayscale.

It's kind of a blueprint of the future construction — all parts are measured, but it is still not ready for launch and is only used as a plan for further work.

Color scheme and text content are not important at this stage. Wireframes are presented to the client to confirm that the team is on the right path to solving the main problem.

The next level in 'upgrading' wireframes is mockups or prototypes.


The next step towards the final design is creating mockups. At this stage, the black and white wireframe is colored, and real icons, images, and final typography, including font and text size, are selected.

Continuing with the analogy of building a house, in this step, we choose the colors of the walls and the surface materials.

The mockup provides a static but accurate visualization of the future digital product, which is already able to attract potential buyers or investors.



A prototype is an interactive version of a wireframe or mockup that replicates how users might interact with the system. It is used to create interactive flows, test hypotheses with real people, and gather accurate first-hand feedback.

To complete our analogy with building, prototypes can be described as a fully scaled 3D model of a house.

Clicking on prototype elements allows users to understand how the future product works and how it can solve the problem or complete the task at hand.

To sum up, we can make a simple test to determine what is in front of you: sketch, wireframe, mockup, or prototype.

The Freshcode BA team <medium>can create all types of design deliverables<medium> as a part of the system design process. However, if the client requests it, we may skip the mockup stage to speed up the development process. Freshcode's experts complete the design of a future solution within two to three iterations.

At this stage, the basic discovery phase is complete. If functional and non-functional requirements documentation is needed, Freshcode offers such a service as part of the comprehensive discovery phase.



Design thinking helps to create innovative solutions to complex problems while keeping the end-user in mind. It is a human-centered approach to problem-solving that emphasizes empathy, collaboration, experimentation, and iteration. By using design thinking, we understand the needs and preferences of the end-user and develop solutions that are both effective and desirable.

We value long-term partnerships and take full responsibility for our clients' successful product launches. Freshcode specialists leverage their expertise and technical experience to provide startup founders and entrepreneurs with the best opportunities for business growth and scalability.

The discovery phase is an essential part of our process <medium>as it helps us identify best-fit solutions while saving costs and invaluable time.<medium>

If you're looking to test a hypothesis, conduct a discovery phase, or have a consultation, please fill out the contact form below.

Feel free to ask any questions or request information about Freshcode's software development services and approaches.

Let's make ideas tangible.


Shall we discuss
your idea?
Upload failed. Max size for files is 10 MB.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
What happens after you fill this form?
We review your inquiry and respond within 24 hours
We hold a discovery call to discuss your needs
We map the delivery flow and manage the paperwork
You receive a tailored budget and timeline estimation