What do bagel shops and engineering have in common? More than you might think!
Bill Gates once said: “Your most unhappy customers are your greatest source of learning.” I think most business should pay meaningful attention to that statement.
At upper echelons of management, this kind of viewpoint on customer focus and process optimization is often discussed in the abstract. But on the front lines, where customers are directly engaged, things get real.
I recently witnessed a team that was put to a classic real-time production challenge, with me as a customer.
It was a sunny Sunday morning at a chain bagel shop, one of the only bagel shops in this particular rural American town. The shop’s capacity was around fifty people and it was very nearly full, with a line of about six orders, waiting to be taken. I was at the end of that order line.
Yes, I was in a bagel shop, about to purchase and consume a grain-based product, otherwise known as “carbs.” Please forgive me, I don’t do it all the time. Let’s move on.
Anyway, in this bagel shop, I counted seven staff working at the time.
As is common with this particular chain, the shop serves only a few categories of food and drink:
- Single or sets of bagels (no preparation, bagels are simply selected, packaged, and sold on the spot)
- Cold drinks that customers can pick themselves
- Prepared coffee (takes from one to three minutes depending on additives such as whipped cream or other flavors)
- Prepared food, such as toasted bagels with cream cheese, eggs, bacon, cheese, and so forth (takes from one to four minutes, depending on the number of prepared items; for example, a bagel with cream cheese takes about one minute, but a breakfast bagel takes about four minutes)
As you can see, the quickest way out of the store is to turn around and leave without buying anything. Second to that is to purchase food or a drink that has a “fast” (meaning a very short amount of time needed) preparation latency. The diagram also shows that prepared products (those that require people to apply effort) such as coffee and prepared food, are the largest time-consumers of a typical order.
Is this starting to sound like an engineering problem yet?
Obviously, to scale this process, it is highly desirable to parallelize as much as possible, which this bagel shop attempts to do. But there are some interesting limiting factors.
The shop is organized like many other such shops, in that the customers traverse the shop in a linear manner. My approximation of the structure is shown below:
In this bagel shop, the prepared food products are either microwaved or toasted. The bagel shop has two microwaves and one bagel toaster. While the toaster could take several bagels at once, I noticed that at no time was there more than one order in a microwave at once. So, there is a maximum of two prepared food items in play at any one time, but the toasted bagel output is higher. Neither the microwave, nor toasting process could be accelerated on a per-order basis.
The coffee station is manned by one person, so there is a maximum of one fancy coffee at a time. Regular coffee, on the other hand, is self-serve.
Another physical constraint is the design of the shop itself. It is designed such that the line of customers moves through the counter space in a serial fashion. So, customers will go through to the payment station either with or without their order.
For those customers that buy longer-latency items, they end up waiting just beyond the payment station, where they can watch others pick up their shorter-latency products and exit. That might be a bit frustrating, yes?
With burgeoning interest, I noticed what appeared to be some operational constraints on the bagel shop’s team. I imagine that part of the constraints were a result of training or corporate design, and part was individual behavior.
- The person managing the drive-through order window stayed with his station, or busied himself with non-customer related tasks.
- Similarly, the person managing the fancy coffee and payment station, when not processing payment or preparing coffee, concentrated on cleaning the apparatus.
- In what seems to be the franchise’s convention (I have been to other locations having the same practice,) the same staff that focused on preparation of food also ran orders to the customers. Sometimes they had a name associated with the order, and sometimes they did not.
That left five staff members to actually make the “slow” items. Four staff members, if we factor out the person actually taking the orders initially; and less if we factor out the person running orders.
If you are still reading this, you might recognize that the bagel shop’s production line falls into an interesting class of problem called Queueing. I remember working on a consulting project for a major amusement park (hint: you or your kids have probably begged to go there at some point) to provide better visibility and management of exactly this kind of dilemma.
But on this day, I wanted breakfast. So I set about estimating my time in the queue.
Given my position as the sixth person in line, my total time waiting for my own food was obviously dependent on those in front of me. Since it was around breakfast time on a Sunday, I guessed that most of the people in front of me would order fancy coffee or prepared food, or both, so I mentally estimated my total wait as follows:
First four orders: 2 breakfast bagels + 2 fancy coffee orders = 4 minutes on the bagels and 6 minutes on the coffees: 6 minutes
Fifth order: 2 fancy coffee orders with cream cheese prepared bagels: 6 minutes
My order: 2 breakfast bagels + 1 fancy coffee + regular coffee: 7 minutes
So, I should have been eating those questionable carbs in about 19 minutes, give or take a minute.
…..and I was wrong. How wrong? Keep reading.
Contributors To My Wrongness
If you followed my assessment, you probably spotted several constraints and potential pitfalls that could have caused my estimate to be incorrect. Here is what actually happened. I will offer some of my suggestions on how to correct such problems in the future, because I like to fix things like this.
By the way – all of these problems can and do apply to software engineering in a variety of scenarios.
Contributing Factor: Unscalable Preparation
From the physical constraints alone, it is obvious that the bagel shop cannot execute its food preparation any faster than the number of stations involved, without expensive modifications to its structure. So, their structure presents their practical upper bound. I would imagine that the store management has a very good understanding of their actual throughput numbers. Wouldn’t you, if you were in charge?
It might be interesting to experiment with the store layout to see if there could be a separate “fast lane” and a “slow lane” so that the latency dependency could be more precisely controlled. I would guess that they have neither the budget, nor the physical space for such an exercise.
Contributing Factor: Poor Communication
The bagel shop had real problems communicating with customers. No staff member took the lead to directly admit that they were experiencing delays. Naturally this resulted in some grumbling and some lighthearted humor from the customers. This probably would have been nastier if it were Monday morning.
Remember the quote from Bill Gates at the top of this post? This is the exact time and place where the customer interaction counts.
I would recommend better training for whoever was the shift leader, or perhaps the nomination of someone to be the “customer champion,” because it did not seem that anyone took accountability for the customers in this situation.
When I placed my order, I was informed that the shop was running out of certain bagel types. I mentioned that I didn’t really care what type of bagel it was, as long as it was not covered in sugar. However, they had no way to persist that information across the production pipeline. When they finally got to preparing my order….they had to find me and tell me again, only to hear the exact same answer again. Silly.
Perhaps their ordering system should allow the addition of short notes to the original order. Assuming someone downstream actually reads the notes, of course.
Contributing Factor: Inconsistent Processes Produce Waste
What do I mean by “waste?” It means an activity that adds no value to the result.
Taiichi Ohno once said: “All we are doing is looking at the time line, from the moment the customer gives us an order to the point when we collect the cash. And we are reducing the time line by reducing the non-value adding wastes.”
Taiichi Ohno is known as the father of the Toyota Production System, which eventually became something called “Lean Manufacturing.” Lean Manufacturing focuses on the removal of waste in manufacturing processes. It is sometimes also applied in truly hilarious ways to the software engineering world, but that is another topic.
The quote is apt because in this case, the bagel shop experienced preventable waste, among other things. In particular, the practice of taking names for customer orders was inconsistently applied. This resulted in one resource (who could have otherwise been working on slow-preparation items), spending time finding the customer that ordered the food. While his colleagues worked to fulfill orders, he was walking around, calling a customer who was no longer in the store.
That is waste. Other high-output restaurants reduce this waste using a number system like this:
- allocate a unique number on the customer receipt
- call out that number upon order completion
- the customer comes to a counter to pick up their order
It’s simple, unambiguous, and it works. This bagel shop might want to try that approach.
Contributing Factor: No Cross-Training
As I hinted at before, the coffee person either would not or could not assist with bagel preparation, and seemed quite content to clean the coffee apparatus while the rest of the team suffered through the backlog. The same thing happened with the drive-through handler. Either they were not trained in the preparation part of the job, or they were not engaged enough to see that the team needed help.
For this sort of dilemma, sometimes training could be helpful, since the coffee person obviously did not engage with a customer-centric mindset. Effective front-line leadership would also be beneficial, since an engaged leader would see the ebbs and flows in the process, and make adjustments as needed, possibly pushing staff beyond their comfort zone into helping their team.
I think the introduction of better metrics, such as a large visual cue or display indicating that the team was behind (or that the self-service coffee had run out, which it actually did) might have allowed them to respond more intelligently.
I ended up waiting about 8 minutes for the fancy coffee, and 30 minutes for the bagels. With the number of variables involved, I don’t think I could have forecast that number.
Happily, the bagel team eventually overcame their obstacles and delivered the product, but it was not by taking stock and noticing what was happening. I think they were so focused on the immediate tasks, that they did not look at the bigger picture.
When I finally received the order, the staff member was somewhat apologetic, but I was very forgiving. I could completely identify with their situation, just from a slightly different perspective.
Lessons From Bagel Preparation?
Engineers love to solve problems. Sometimes, we get so buried in solving problems that we don’t stop and take a look at some of the people, processes, and practices around us. In any team-oriented activity, it is usually the team that has clear priorities and coordinates most effectively that wins the day. I found the bagel shop to be an arguably trivial but still very interesting microcosm of the engineering world.
I re-affirmed some key observations that day:
- The customer should always be the top priority.
- Clear communication is not optional, it is necessary.
- Not every team is capable of policing themselves.
- Try to pay attention to what is happening in the overall process of building the product, because there is always room to improve.
- Look for waste and ambiguity; when they impact the customer, try to eliminate both.
There are engineering dilemmas everywhere! All you have to do is look.