DEV Community


Posted on


Redesigning the patients’ experience of scheduling an appointment with a doctor - a UX case study

Originally published at


After my parents started to get sick, one of my tasks is to schedule an appointment with a doctor.

Scheduling an appointment with a doctor was very frustrating with a lot of issues and inconsistencies. That’s why I chose this problem as my first UX learning project.

For this project, I set the following requirements:

  • I will only do it in 1–2 days
  • The deliverable is a basic prototype of a mobile web app

Understanding the problem

Job-to-be-done —

I started by clarifying who the user is and the job that they are trying to get

Based on my previous experiences, I considered two types of users:

  • The first one is the doctor’s secretary
  • The other group is the patients (or their caregivers)

In this project, I only focus on the patients because of the time constraints.

A job is defined as the reason why a user “hire” a product or service. For example, we “hire” a vehicle to get from point A to point B. We “hire” a toothbrush to clean our teeth.

To get the job of the patients, I asked why the patients call their doctor’s secretary. There are different ways of looking at these. I can focus on the bigger goal of “getting advice from a doctor”. I can also look at the specific goal of “scheduling an appointment with a doctor” which is a step to the goal of “getting advice from a doctor”. I choose to focus on the goal of making an appointment.

While in the middle of the design process, I realized that there are two possible contexts for this job. The first context is when a patient is looking for a new doctor. The second context is when the patient wants to go for follow up check-up.

I focused on the second context only because of the time constraints.

Here’s the final job statement that I focused on:

The patients want to schedule appointment with their doctor for their follow-up checkup.

Job steps —

To get more details, I also captured the steps that a patient might try to do to get the job done.

The goal of capturing the “job steps” is to discover the complete view of allthe points at which I can add or improve value.

To do this, I started by focusing on the current platform and solution that the users rely on.

To get the job done today, the patients call the secretary to make an appointment. Before doing that, they may have tried to retrieve the phone number from an old prescription. They might also have tried to recall the schedule of the doctor before calling.

From that insight, I captured the steps and make it solution-free. Making the steps solution-free will help me understand the users’ goals and generate a different feature.

As stated above, one of the steps that the patients do today is to call the secretary. Asking why the patients do this, I can get several important job steps. One of them is to determine how to get an appointment. Some clinics schedule their patient on a first-come, first-serve basis. Others prefer that the patient visit the clinic to book an appointment.

Based on this process, I captured the steps where the patients might get frustrated:

  • Determine how to set an appointment with the doctor
  • Determine the doctor’s clinic hours
  • Check the available time and date
  • Set the schedule on my preferred time and date
  • Confirm the appointment with the doctor
  • Get an update if there is a change in the doctor’s schedule
  • Re-schedule my appointment

Having a detailed list of the job and job steps, I can now generate features with less guesswork.

Generating Solution

Generate ideas: platform —

Since one of my goal in this project is to create a digital product, my only choice is to create a mobile web app.

Generate ideas: features —

Next, I generated ideas for the features that I will include in the web app.

I used the “job steps” above as a starting point.

I also studied how the current platform fails when it comes to cost, efficiency, and result. Based on that, I determine the direction of improvement that I can make.

I also used creativity triggers to generate features.

Example of how I generate features

Using this process, I came up with this basic set of features. I organized it according to the user flow that I will create:

Step 1: Landing Page / Search a doctor

  • It should have a search functionality
  • It should have a clear process on how to book with a doctor

Step 2: Choose a doctor

  • It should allow the patient to find and choose a doctor

Step 3: Choose the time, date and clinic

  • It should have several dates and time options for the users
  • It should have a list of the doctor’s clinic location
  • It should have the updated clinic hours of the doctors
  • It should have the list of time and date with available spots in the next 2 weeks

Step 4: Provide your personal information

  • It should get the least information about the patient

Step 5: Wait for the confirmation e-mail

  • It should send an email and/or a text message to the patient

Create a prototype —

In creating a prototype, I started by deciding the content that I will include on each page. I add the basic interactions for each page.

Initial content

Initial interaction prototype

After planning the content, I created a basic layout and improve the UI.

Final prototype

Final prototype with interaction

Personal Insight

Doing my first UX challenge is not easy but also rewarding. There are lots to learn like research, interaction design, prototyping tools, etc.

Next Steps

Having a small amount of time and resources, here are the things I would like to do in my next UX challenge:

  • Interview several users to validate the problem and test the solution
  • Improve the UI and branding
  • Understand the “job” of the other users. In this case, I should also understand the “job” of the secretaries.


Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git