Lesson Description
The "Design a Pizza Shop Exercise" Lesson is part of the full, Backend System Design course featured in this preview video. Here's what you'd learn in this lesson:
Jem instructs students to design a pizza shop by outlining the ordering process and creating a flow diagram. He encourages comparing approaches, emphasizing breaking tasks into steps and the value of critical thinking in system design.
Transcript from the "Design a Pizza Shop Exercise" Lesson
[00:00:00]
>> Jem Young: Our first exercise, we are going to design a pizza shop. So open up your whiteboard or drawing space, you can use a notepad, pen and pencil, it doesn't matter. I use a, I'm going to use Draw.io or Excel draw, it doesn't really matter. Um, mainly because my handwriting is terrible and you will not know what, like what's pointing to what. So go ahead and open those up. The first thing I want us to do is, let's describe the ordering process in 3 to 6 steps.
[00:00:30]
So we have our scope, it's a pizza shop. It's not a noodle shop, it's not a sandwich shop, it's a pizza shop. But what are the steps in getting a customer their pizza? So write that down, and then once you have that down, create a diagram showing that flow. So here's my thinking. Step one, I want to take the order. Step 2, I think I want to roll out the dough, so I'm going to stop ordering.
[00:01:21]
2. Say dough. Step 3, um, get the thing, take the pizza. Let's put the toppings on. Step 4, I want to call that baking. And step 5, we'll say we'll call that, uh, box the pizza. Hm, does this look similar to yours? Yes or no? No. What are your, what are your steps generally? Michael? Uh, cashier takes customer's order, orders, so that's first step. Second, order is paid for and sent to chef.
[00:02:13]
Uh, chef adds the order to the queue of orders, and then once the order is up, prepares it. And then that order after completion is sent to the register and then the customer picks it up. It's pretty good, that's in depth. What about, anybody have anything different? I was going to say on my part, like I think I over broke it down, like I had 9 steps and then I tried to like consolidate them back together, um, so I could give either one of them.
[00:02:50]
I put payment as the last step on mine. Oh, interesting. Let's try this out. So I'm going to add a. There's a few online if you want me to read them. Yeah. Customer places the order, the receptionist takes down the order, chef receives the order, chef prepares the order, order is complete and given to the receptionist, receptionist gives the order to the customer. Yeah, it sounds similar. I'm going to sketch this out real quick.
[00:03:23]
This is more an exercise than getting used to the drawing tools. So I want my dough to be pizza, so I said lay out the dough, then I said toppings, right? Then I said put it in the oven. Actually make that a circle too. And bake it, and then I said we want to box it up. Mm. Does your diagram look different? Yeah. Is that okay? Yes, it is okay. Uh, and that was kind of, that was the purpose of this exercise is, one, let's get familiar with drawing tools, um, two, let's understand that we're all approaching something differently, because the instructions that I gave were pretty vague.
[00:04:26]
Pizza shop. Cool. Already in our minds we have different pictures of what we're trying to do immediately. Uh, depends on if you've worked in a restaurant or something like that, you probably have maybe a more detailed, um, picture of how things work, versus if you just order your pizza and it just shows up at your door magically, you probably have a different picture. So that's okay. It's okay to have different perspectives going into it, and that's what's going to happen, largely is we may differ a little bit.
[00:04:52]
It doesn't make it wrong, uh, because what you wrote, as long as it makes logical sense to you and you can explain that back, then it's okay. As long as the customer in the end still gets the pizza, then our steps were okay, because we didn't really get into what we're trying to accomplish or what are the details. So exercise one, we designed something and, you know, the tertiary point of all this is, what is it like to take something that's pretty simple and pretty mundane and then break it out in the steps?
[00:05:19]
And that's a lot of what system design is doing is breaking out those requirements, breaking into the steps, thinking critically about what do we try to accomplish here. And again, unless you have the details, you ask the right questions, you're going to have something different, and that's okay. Uh, unless it's not, and that's why you ask in an interview. That's okay. If a PM or a product manager comes to you and says design this, you have to think, what are they trying, what do they need to know in the design?
[00:05:48]
Do they care if you're using TypeScript or JavaScript? Probably not. You know, that's not material. They care about, you know, what is the feature being built, what are the requirements, is it accessible? What's the languages, um, you know, that level of detail, and that's, again, you have to fill this out. This isn't a straight line. Do you feel okay? Everybody got a diagram? If you're wondering how I, how I made mine pretty, I just like the, a different background.
Learn Straight from the Experts Who Shape the Modern Web
- 250+In-depth Courses
- Industry Leading Experts
- 24Learning Paths
- Live Interactive Workshops