And it made sense — the old way of scheduling interviews with users was a nightmare. We offered a quicker, easier way to schedule them in all their flavors.
Still, our scheduler hasn’t always been best-in-class.
Building a best-in-class product is a long journey with twists and turns. It doesn’t happen overnight. Having made significant strides over the past year in our scheduler’s reliability and performance, we want to share more about:
In 2021, Great Question launched with a simple premise: help companies talk to their customers.
Our workflow to help researchers conduct moderated interviews was one of the earliest features on the platform — and one of the most popular, with nearly 100,000 interviews scheduled in the last 4 years.
We originally integrated with Calendly, which worked for simple cases. But the limitations were quickly apparent:
So, we decided to build our own scheduler instead.
To launch an interview study, researchers configured their availability, set the booking details, and sent invitations. Candidates then booked interview slots to participate in the study.
Great Question would send out a calendar invite to both the researcher and the candidate, ensuring that the event would appear in their calendars.
At the scheduled time, you would simply conduct the interview with the participant, and follow up with a thank-you. Easy, right?
From a product standpoint, scheduling is an incredibly challenging problem. It’s complex for many reasons:
All of this was built on a simple foundation that ultimately proved inadequate for representing complex bookings and maintaining close synchronization with a host of external services.
Over time, some cracks appeared.
Only selected booking details — such as the event date and time — were saved against the booking. Other details, such as the attendees list, were only defined at the study level, on the assumption that these would not need to change. So if study settings were modified after booking, the changes were propagated to existing booked events when the events were re-synced (e.g. upon reschedule), leading to more confusing side-effects and unpredictable behavior.
When our booking record slipped out of sync with external calendar events, a reschedule could trigger an update that would unintentionally trample previous changes. For example, if invites had been forwarded to other attendees outside our system, they would fall off the attendees list (and receive a cancellation) when we issued an updated invitation for the rescheduled time.
Given the complexity of the system, these issues were initially difficult to detect. Compounding the issue was that these capabilities (and changes made to them) were very difficult to test. Manual testing required multiple accounts across several services, while the number of live integrations created significant hurdles for effective automated testing.
As a result, we went through a challenging phase in which many of our customers experienced numerous issues with booking accuracy and calendar event reliability. This impact was felt beyond users, also impacting colleagues and research participants.
In mid-2024, we began rebuilding our scheduling system from the ground up to serve as a more capable, extensible foundation for the other capabilities we had built.
Our new system has three key elements:
We’re excited to launch these features this March. We believe this update will end a challenging period built on an outdated and overextended foundation. As a startup, choosing to pay down technical debt isn’t easy, but we’re confident that the investment will result in a rock-solid scheduling system that will serve our customers well into the future.
Mark Szabo is a Product Leader at Great Question. Previously, he was Chief Product Officer at FleetSeer and Founder of Catembe. He is based in Melbourne.