3 ms·
When I was in college as an undergrad, I worked at a local dive bar with a grill. Being a CS guy, and working with a couple other CS guys, we had a lot of fun w
by sophacles 15y ago
When I was in college as an undergrad, I worked at a local dive bar with a grill. Being a CS guy, and working with a couple other CS guys, we had a lot of fun with this same idea. When we worked the kitchen we would apply our understanding of queueing to great effect. We would play with different algorithms, analyze the bottlenecks presented by the various stations, optimize on expected workloads and so on. When some of the younger people also in CS would be taking the relevant classes, we would challenge them or help them (depending the person's skill level and needs) by showing them the applications in terms of the kitchen. It was pretty awesome. I think it really helped us get an intuitive feel for various aspects of decoupled queue based systems -- sometimes I still flash to the kitchen experience when figuring out workflows, and sometimes my early sketches of a system are laid out like the kitchen we worked in.
Some cool lessons from this:
* If you just look at the infrastructure, there is obviously one optimal way to do it, however if you look at the people doing each task at a station, this may change. We would abstract this out in our systems thinking to imagine various people as various systems or processing algorithms with different runtimes, and which we had no control over. This had strange implications in terms of efficiency, and which method would work best for the feeding and consuming steps around those stations. Also taught us about reordering and parallelizing certain tasks, even if those orders and parallelizations were not optimal in their own right.
* If you know there will be a heavy bunch of orders for a certain type of item (e.g. daily special) you can start cooking batches before the orders come in, even if there are not yet orders, optimizing the cook time. Essentially just in time delivery stuff. Similar with fries (this place used a 2 stage fry cooking process).
* Exceptional orders and out of band mechanisms: instead of trying to make the main workflow handle exceptional orders (very large, weird items, etc) it is is easier to have a second workflow or an ad-hoc workflow for that situation - it prevents interruptions, starvation issues, etc for the main queue.
* It is very amusing to watch the puzzled look on customer's faces when they see the cooks white-boarding math equations during lulls :)
- ColinDabritz 15y agoYou definitely should be trying to improve your kitchen algorithms if they are causing starvation issues! Joking aside, I love that you were applying the modeling, design, and performance analysis ideas to a different domain like this. It's the classic case of cross disciplinary teams or cross discipline thinking yielding surprising benefits. I love that you used it to teach CS as well, which makes a powerful reciprocal relationship. I used to wonder why the fast food places didn't have hefty pattern analysis going on to predict needs, e.g. "it's Tuesday at 4:30, we almost always need 28 chicken strips in the next 30 minutes so put them down" even to the point of balancing speed vs waste and other issues. Maybe they are doing that now, but it's got a lot of potential.