Any professional who has clients knows that one of the most annoying things about the job is scheduling. Clients love to reschedule and you like to accommodate them, but this often means having to play a game of telephone with you in the middle costing your company time, energy, and reputation. But, what if this didn't have to be your responsibility? What if clients could figure out their schedule conflicts on their own?
My client is a math tutor who owns a business called Tailored Tutoring. Through it, she tutors all sorts of math to anyone but mostly high school students. She loves to tutor, but is often annoyed by her student's periodic scheduling conflicts.
My client's company name is based in the fact that she prides herself as a tutor who tailors herself to her student's needs. When a student asks to reschedule to a time that conflicts with another, she likes to accommodate.
Unfortunately, this entails a long process of contacting, waiting, and an often messy shuffling around of multiple appointments.
Student #1 (S1) who is asking to reschedule their appointment.
Tailored Tutoring (TT) who is the tutor being asked and my client.
Student #2 (S2) who is the student being asked by TT to change their appointment since S1 is asking to take their appointment time.
Once S1 requests a schedule change, TT then has to reach out to S2 and wait for a response. Since my client and her students communicate over text, this can take some time. Once TT happens to hear back from S2, TT then has to reach out to S1 again which will mean more waiting for my client.
All this back and forth costs my client about 40 minutes, all of which is time costing her business.
Beyond the main problem of wasted time, there are other reasons my client wants this problem solved.
My client worries about how she appears professionally to her students and their parents when she reschedules with them.
There is a domino effect where, if one student goes, they all seem to go. Once one misses an appointment, they may come to the conclusion that they no longer need her services and then tell their friends.
Due to the time-consuming and unpredictable nature of this problem and her limited free-time, my client can currently only take so many students at a time.
It is imperative that students remain anonymous amongst each other. Her business runs best when her students don't know each other by name.
This product needs to be designed for both my client and her students, both of whom are PC users with occasional tablet use. A web-based app would give access on all of these evenly.
My client loves Google Calendar and I'm not going to take that away from her. Rather than giving her another Google Calendar, I wanted to give her a product that will optimize her experience there.
Some of the apps I studied allow clients to interact with them and some are just for the business owner themselves. These were all built to contain schedules, but what I want to build is a product that's narrowly focused on client scheduling conflicts.
What I discovered was that I needed to build a product that's narrowly focused on simplifying communication between my client and her students when there is a scheduling conflict. Since my client liked Google Calendar, I can make a product that simply talks to it in some some way rather than making another Google Calendar. So I started looking at some products that contain scheduling features for business owners.
I took some time to understand the system flows of these competitors to see how their solutions could pertain to my client's problems, if at all.
Once the business owners are alerted on the app that a customer (C1) wants to change an appointment time that interferes with the time of another customer (C2), they may choose to reach out to C2.
The business owner is the unfortunate middleman who has to play a game of telephone between two customers. This is because the business owner is the one being notified of the problem first and the one who has to notify C2 last. There is no reason for the business owner to be at both ends of this chain of events.
What if I made a product that took that middleman spot instead of my client?
Any request to change an appointment that conflicts with another student will now be sent to S2 to be approved first rather than to TT. This saves TT from having to reach out to S2 herself.
Now, rather than being asked by TT if they would mind moving things around for the sake of their business, S2 is now being asked if they would mind helping out an anonymous fellow student.
Santa Cruz, CA
Sophomore in High School
"I feel bad for having to ask to reschedule with my tutor; I know it makes things difficult for her."
Lots of extra-curricular activities
Has next to no free time
When she needs to change an appointment time
Checking to see if her schedule change request was approved.
When she needs to check her tutoring schedule.
Know her next appointment.
Being able to change appointment times.
Being able to cancel an appointment.
Having to wait for her tutor to get back to her.
Feeling bad about inconveniencing her tutor.
I ran a survey using Google Forms and found participants on Facebook, LinkedIn, Reddit, and SurveySwap. I screened out people who have either never hired a business owner before or were not business owners themselves.
To learn how often business owners can expect this problem to occur.
To validate my assumption that students are less annoyed when they are asked to change their appointment from a fellow student rather than directly from their tutor.
How often can we expect this problem to occur?
About once per two weeks per student. For a client like mine who has about six students at a time, that is about once every other day.
How much do students mind moving their schedule around for their tutor?
They were a bit annoyed.
On average, they rated their annoyance as a 5/7.
How much do students mind moving their schedule around for fellow students?
On average, they rated their annoyance as a 3/7.
I took advantage of the fact that my client had real students for me to interview. I interviewed four of them over the phone.
To determine how welcome students feel to ask for an appointment change.
To validate my assumption that students are less annoyed when they are asked to change their appointment from a fellow student rather than directly from their tutor.
How bad do students feel when they reach out to change their schedule?
They feel guilty and rated their comfort level 2/7.
They feel irresponsible for asking.
Are they less annoyed when they are asked to change their schedule by a fellow student?
They felt helpful in this case and rated their comfort level 4/7.
"I don't mind helping out other students."
From there, I wrote some user stories to gain more empathy for what all parties are going through, understand the problem deeper, and make sure I was considering all possible user needs.
Update my business hours
Add a student
Change a student's appointment
Request an appointment
Approve/Deny a student request
Propose new time to student
Request a specific appointment time
My business days
My business hours
Which business days I would prefer to work if I have open days
An 'overflow day' where student appointments may overflow from those preferred business days
My cancellation policy
My default appointment length
Change an appointment
Cancel an appointment
Request a new appointment
See my upcoming appointments
See my appointment history
Quickly choose a time that will work for my tutor without having to think about a time myself
Edit my login information
Edit my notification settings
Edit my email
Edit my phone nymber
My goal with the user flows was to further understand the specific actions that Tailored Tutoring and its students would both need to take. Just like with everything else, I separated TT's side from the students' side.
Since the only users of this product will be students of Tailored Tutoring, it makes the most sense for TT to set up their students' accounts. TT would then email each student a secure link to their profile. Once students entered their account, they could then set up their own username and password.
Let's see how the the user flow changes between students.
S1 is the one requesting to change their appointment. Their experience depends on whether their request was approved first by S2 and then by TT.
If it was approved, S1 will then receive a confirmation that their request was accepted. If it wasn't, then they would be prompted to try again with some recommended times that should work based on the settings TT had set up on her side.
S2's user flow is simple since they are now Decider #1 in the chain of command. As such, when they receive a request to change their appointment, they either say yes to a new appointment or say no to keep their old one.
When a student asks to change their schedule, there are two scenarios: with a scheduling conflict or without.
The product reaches out to S2 with options if they want to help out. If S2 says yes, they choose a new time and a notification is sent to TT letting them know about the changes.
The request will go directly to TT as it currently does.
If there is a conflict, my client will have a 'pending' request in her 'requests' section. Once she receives this request, she has a choice: approve or decline both proposals.
A notification is sent to both students with their new appointment times.
The product will write S2 thanking them about the change not being needed with confirmation that their previous appointment still stands. The product will then send a couple of new open appointment times to S1 to avoid another conflict entirely. My client can also manually tell the student a couple of times that will work for her directly if she likes.
As you may see by now, this is a bit of a complex problem. As such, I decided to create a system flow of my proposed product in order to understand all the moving pieces.
I like my highs and lows of my journey maps to be my empathy map. This gives my empathic user quotes the dimension of time which helps me understand where on my user's journey they are having the most issues and in what specific ways.
Currently, my client needs to go through quite a bit in order to be the Tailored Tutor. The majority of the beginning of her journey is a lot of frustration due to wait time and awkward conversations. She only feels better when this chaos begins to be over.
Let's take a look at how I can help.
By letting the product take the middleman position for my client, I have eliminated her time-consuming game of telephone. She now only receives requests after both S1 and S2 have agreed to new times.
The product I am making will save my client from having to:
The interactions the students would have with the product are:
The product is now the one communicating to both students and rearranging their appointments making for a much faster experience for S1.
There is now a bit of a wait time for S2. I argue that this potentially more annoying user journey for S2 is worth the simplification for TT. It would enable her to better accommodate her student's hectic and unpredictable schedules. Plus, based on my interviews and surveys, students would love nothing more than to help their tutor.
This issue is still worth keeping an eye on as we roll out this app with whatever user research platform we decide to use.
I started with the student's side first since their functionality is going to be the one that will need the user testing. I will let the student's homepage inform how I design the administrator version for TT.
To dive in sketching, I did a Crazy 8's exercise where I spent exactly one minute on each rectangle designing and redesigning the students' homepage.
In order to choose among them, I remembered my client telling me that the vast majority of appointments students change is their very next one. This told me that the students' very next appointment should be the first thing in the visual hierarchy on the student's homepage.
This led me to the following homepage sketches.
My client needs to be able to see how long her students have been waiting to hear from her. The longest-waiting student will be ordered first and turn red to show my client that there is an urgent matter to which she needs to attend.
Request conflicts are on the left and requests with no conflicts are on the right.
For the students, I decided to nest the alternate appointment times in an 'Edit' button. This was done to simplify the homepage and allow students to quickly notice their very next appointment.
The reason my client wants to reserve final say for appointment changes is because, some weeks, her life can get as unpredictable as her students'. However, some weeks are more predictable and can afford a much simpler user-experience for everyone.
During slower weeks, my client doesn't mind letting her students decide their own schedules as long as it obeys with her cancellation policy and scheduling parameters.
The product can automatically approve requests by relying on my client's scheduling settings with an auto-approve toggle.
With auto-approve off, my client still needs to give final approval of any schedule changes.
With auto-approve on, my client has nothing to do. When a student requests to change their appointment to another time that doesn't interrupt my client's schedule, it will be approved automatically.
The design direction my client chose out of the three I presented was one I called 'Planning for the future'.
Since students felt uncomfortable asking for schedule changes from my client, I felt it important that the branding feel welcome to change.
With this in mind, we landed on a brand personality that has an 'in-progress' kind of feel to remind users to not stress about moving plans around. Things change! Embrace it! Traditional planners have a certain form of child-like creativity to them where you never stress if things don't come out perfect.
To make this connection, the design has a human-hand feel combined with straight-forward typography and colors to help all users use this product quickly. And, if possible, to not stress about it in the process.
My client deserves a logo that champions her ability be tailor herself exactly to her student's needs. I felt a bull's-eye was appropriate to symbolize that perfect appointment slot she is always trying to find for her students.
The muted blue-green main brand color provides a balance of serenity and playfulness. This paired well with some inviting secondary colors that can bring some colorful interest to the experience. Many studies show that bright colors help keep teenagers on the page.
One of the first things I do when creating a design system is to do a contrast check with the most challenging-to-read element. This is usually a button.
My buttons use the blue-green brand color background with white type on top that never reduces any further than 22pt on screen or 18pt on mobile.
To reduce eye strain, I chose colors that were not too bright but were still interesting and inviting.
I also chose an 'almost' black. Pure black is hard on the eyes so I chose a very dark grey that is just short for my copy.
I got back on ZOOM calls with three of her students I had previously interviewed in order to test the product.
*My client rather her students reschedule than cancel. I answered this ask by nesting the cancel option in the 'Change' button pop-up window. As my client put it, "cancelling an appointment now seemed to be an appropriate amount of difficult for my students".
Receiving a request from another student to change their appointment is a bit of a unique experience. For this reason, I added a section to the user testing that included a prototype of a PC desktop where a notification pops up asking them if they would mind helping out a fellow student by accepting a new appointment time.
When my client has auto-approve off, an important piece of information to convey to S2 when they accept another appointment time is that that time will still need to be approved by TT. To make it clear, I adding a prominent red, warning box telling S2 that there will be a short waiting for her tutor to confirm.
With it auto-approve on, the change would simply go through as long as the request doesn't violate my client's cancellation policy. S1, S2, and TT will then get final confirmations of new appointments.
My client and I are currently embarking on a journey to make this product real and functional. We need to think about background security and app integrations.
Integrate user feedback into product (add 'next appointment' hint text under arrows)
Introduce other tutors to the product.
Use Firebase for background security and Usability Hub to maintain UX user feedback after product launches.
[This app made me feel] relieved because I know that there is a way for me to contact other students easily and quickly if I'm feeling stressed out and I can't do a certain time.
—Tailored Tutoring testing participant