Systems Thinking and Grubhub: They Go Together like Chocolate and Peanut Butter

Lauren Stolzar
Grubhub Bytes
Published in
6 min readNov 8, 2021

--

What do an Airbus A380, a pacemaker, and Grubhub all have in common? All three utilize teams focused on systems thinking, systems engineering, and systems analysis to support development and help companies understand how individual pieces of their product contribute to the whole. On the surface, Grubhub may seem like the odd one out in this example — we are primarily a software system, and in most cases, if we make a mistake the consequences do not include risking someone’s life. However, when you look a level deeper, some similarities and patterns emerge.

In all three cases, people are critical to the system’s success, whether it’s the pilots and mechanics of the A380, the surgeon and nurses who attach the pacemaker, or the restaurants, diners, and drivers who bring life to our platform. There are also hidden complexities that impact how things work: planes need to remain in the air even when the weather gets rough, pacemakers need to work regardless of underlying medical conditions, and diners are still hungry even when a storm rolls in. While (thankfully!) we have fewer cases where something breaking could cause a safety issue, the principles and approaches for dealing with all three problems are remarkably similar. This is where Systems Thinking comes in.

What is Systems Thinking?

At its core, Systems Thinking focuses on the whole¹: it isn’t about the individual pieces, but how they all work together. Whereas many disciplines focus on having significant depth in a specific area, Systems Thinkers have to be able to think paradoxically, focusing on the big picture at the same time as they look at the details.

What does all of this mean for Grubhub? We have two teams that focus entirely on Systems Thinking: a Systems Engineering team that helps define how to set ourselves up for success, and a Systems Analysis team that helps define just what that success means and how we measure it. The members of both teams have a wide range of experiences (e.g., product managers, statisticians, military veterans, software engineers, and restaurant workers), which in turn allows us to examine problems from multiple perspectives. These teams tend to focus on problems that cross multiple product areas either directly (via integration of capabilities) or indirectly (via network effects).

How are these teams different from other teams at Grubhub? Primarily, because of our breadth of focus. We are fortunate to have incredibly talented engineering and product teams who ensure that our software system has the features that our users need in specific areas. By taking ownership of places that involve multiple user types, or multiple products intersecting (such as how we make Grubhub the premier platform for drivers), we can help make space for those teams to do what they do best.

While there are specific techniques that are used in Systems Thinking², we’ve worked to help our colleagues bring Systems Thinking into their thought process more generally, without always having to rely on our two Systems Thinking teams. We’ve done this by working with directors and technical leads to help them understand how we approach problems so that they can bring that approach into their spaces. Through this work, we’ve established a few honorary team members and encouraged a holistic approach to problem solving within the company.

How does the Systems Thinking team contribute to Grubhub in practice? Imagine what a perfect delivery looks like for a moment. While it may be some time until we all own machines able to bring anything into our homes just by asking (“Tea, Earl Grey, Hot”, anybody?) ideally, in our current world, a driver would arrive at a restaurant exactly as the food is being packaged. That way, the food wouldn’t have to sit and get cold while waiting for a driver to arrive, and drivers wouldn’t be stuck waiting at restaurants.

On the surface, this should be an easy problem to solve: just make sure a driver is arriving at a restaurant just as the food is ready. However, once you start to peel back its layers, this seemingly straightforward question becomes much more complex.

Different restaurants require different lengths of time to prepare food, so in most cases we need the restaurant to be preparing food before we have a driver assigned. Pre-assigning drivers might help, but this would need to be done in a way that doesn’t slow down our overall delivery process and doesn’t result in drivers having to wait at restaurants.

As Grubhub looked at this specific portion of a delivery, it became clear that this problem was at once both highly impactful to our restaurants, drivers, and diners, and did not have a single “easy” solution.

This is where Systems Thinking comes into play. We joined a team of Product and Tech folks to start working on understanding how often our restaurants or drivers are waiting, what potential long term options we had, and what short term gains were possible. Based on our understanding of the problem space, we developed a plan of attack to help us understand the unknowns and determine how we might approach system changes. We identified a set of experiments that we could run without significant software changes that would allow us to better understand what was happening. In parallel, we began to define what needed to happen at a system level to improve the experience, and define what success would look like. From there, we defined gaps and possible paths forward given our current architecture. Finally, we developed multiple alternative design options and conducted trade studies on all of them to help Grubhub determine the best path forward. The team used these studies to figure out a solution that was feasible in the short term and provided enough room to grow and expand in the long term.

Another area we’ve focused on is determining, through a combination of analysis, simulation, and experimentation, if a system is doing what we expect it to do. Grubhub has a robust A/B test framework that works very well for decision making in cases where the effects are limited (e.g., do individual users respond to a feature?). However, on the logistics side of the company,, because we are trying to change something at the network level (e.g., changing how we prioritize orders for dispatch), A/B testing is insufficient. For those capabilities, we need to look at things a little differently, utilizing techniques such as switchback testing. As there is the potential for many things to impact network-level behavior (storms, parades, holidays, posts on social media), our team has put significant effort into working with the wider org to both specify a testable hypothesis and understand the results. As this practice has become more routine and we’ve helped define what is and is not testable, the Systems Thinking team has helped grow Grubhub’s experimentation capabilities. We’ve done this through a few different paths: making sure the data necessary for analysis is readily available, defining what a “good” experiment looks like so that the broader group can more easily assess whether an experiment is “good”, and making the analysis of experiments more routine so that teams have quick and easy access to the results.

What’s next for Systems Thinking at Grubhub? When our team was originally formed, we focused on analysis within specific areas that had broad systemic impact (for example, the system that estimates how long an order will take to get to your door). As we — and Grubhub — grew and matured, we began focusing on projects that were even broader, covering multiple system areas and helping to identify areas of significant opportunity and risk. We’re an agile, creative bunch, but our team is also small, so our next step is scaling our capabilities so that we can cover a larger swath of the organization. How are we doing this? In part by looking at our tooling and processes, building out features and processes to significantly speed how we answer common questions and extend core capabilities. We’re also standardizing our outputs and acting as reviewers for our colleagues, with the eventual goal that anyone at Grubhub be able to apply Systems Thinking into their problem space.

[1] Boardman, J., Sauser, B. (2008). Systems Thinking: Coping with 21st Century Problems. United States: Taylor & Francis.

[2] https://medium.com/disruptive-design/tools-for-systems-thinkers-the-6-fundamental-concepts-of-systems-thinking-379cdac3dc6a

--

--