Why Frequent Requirement Changes Frustrate Developers: A Restaurant Analogy
The article uses a vivid restaurant scenario to illustrate how repeated requirement changes cause developers to face rework, increased cost, schedule delays, and communication friction, explaining why programmers and designers dread constantly shifting product specifications.
Why do programmers and designers fear changing requirements? There are jokes online, such as: "You don't need a gun to kill a programmer; three requirement changes are enough."
Recently, a Zhihu user asked, "How can we explain to non‑technical people why frequent product‑manager requirement changes upset developers?" This article compiles three respondents' answers.
Response from "Cat loves fish, not mice" (@GRB130427A):
You go to a restaurant and sit down.
"Waiter, I'd like Kung Pao Chicken!"
"Sure!"
—— This is the original requirement.
The chef is halfway through cooking.
"Waiter, please don't put any meat in the dish."
"How can we cook it without meat?"
"Just omit the meat, everything else stays the same. Easy, right?"
"Alright, please wait a moment."
—— Mid‑process requirement change.
Kitchen:
Chef: "Damn, I've already turned the meat over!"
Waiter: "The customer insists, just take the meat out, okay?"
Chef: "Fine, you jerk."
But they still have to pick out a little meat.
—— The change is too big, partial refactor needed.
Restaurant:
"Waiter, can you add some fried tofu skin?"
"Sure, that should be simple."
—— Underestimating the cost of changes.
Kitchen:
Chef: "You idiot, you don't know tofu skin needs to be soaked beforehand! Adding it halfway means we have to wait half a day."
Waiter: "Why didn't you tell me earlier?"
Chef: "If you had said earlier, I’d have known to put tofu skin in the Kung Pao Chicken."
They still have to soak the tofu skin.
—— New requirement introduces new development cost.
Restaurant:
"Waiter, put the meat back in!"
"But you just said you didn't want meat?"
"Now I want it again."
"…Okay, please wait."
—— A feature keeps wavering.
Kitchen:
Chef: "You’re kidding me, the dish is already overcooked and you want meat back? At least I didn’t throw the meat away."
Waiter: "Why are you attacking the client?"
Chef: "Can’t you just refuse them?"
Waiter: "They are the client."
—— The client is a boss.
Restaurant:
"Waiter! Waiter!"
"Coming, how can I help?"
"Why is it taking so long?"
"Hold on, I’ll check for you."
—— Change leads to schedule delay.
Kitchen:
Chef: "The tofu skin isn’t ready, I have to re‑oil the pan, I can’t guarantee quality."
—— Developers request a re‑schedule.
Restaurant:
Waiter: "Sorry, adding tofu skin will take half a day, please be patient."
Customer: "I need it now! Can you speed it up?"
Waiter: "Okay… please wait."
—— The client pushes for faster delivery.
Kitchen:
Chef: "You’re kidding, you want meat after the dish is already overcooked?"
Waiter: "Why are you attacking the client?"
Chef: "If we change again I’ll die."
—— Developers start fighting the middleman.
Restaurant:
"Waiter, drop the tofu skin, can we use garlic instead? And add some ketchup."
—— Further changes due to long schedule.
Kitchen:
Chef: "You don’t know garlic also needs blanching! And how do you put ketchup into a hot dish?"
Waiter: "Blanching is better than waiting for tofu, right? Just pour the ketchup in, easy?"
Chef: "Damn, I still have to soak the tofu in case they ask for it again."
—— Frequent changes cause massive redundancy.
Restaurant:
"Waiter, is there any tomato in the dish? Other restaurants always have it."
"Sure, please wait a moment."
—— Weird requests.
Kitchen:
Chef: "Are you serious? Tomato in Kung Pao Chicken?"
Waiter: "Just throw it in."
Chef: "Is this even a dish anymore?"
Waiter: "The client wants it, just do it."
Chef: "Should I also ask if they still want the tofu? I have it ready."
—— Even absurd demands must be fulfilled.
Restaurant:
"Waiter, how much longer?"
"Very soon, very soon…"
"Give me a watermelon juice as well."
"…Okay."
"If it’s not ready in ten minutes I’ll leave, I haven’t paid yet."
"Very soon, very soon…"
—— The final dark hour before resolution.
Ten minutes later:
"Hey, this doesn’t taste like before!"
The chef bursts out of the kitchen: "I’m fed up!"
—— The final showdown.
——
You = client
Waiter = account manager + product manager
Chef = developer
Please translate the analogy yourself…
——
Note: The above scenario is exaggerated; in real life developers and PMs usually work harmoniously.
——
Note: For companies making consumer products, you = the company’s big boss.
Recommended comics by 钟文 (original authors @big fattty @依然远扬):
Lü Xiaobu007 recommends this funny picture:
Source: compiled from Zhihu
Link: https://www.zhihu.com/question/40712955/
Long‑press the QR code to open in a browser.
Download the Dajiangtang online course app.
Supports Android and iOS.
Qunar’s latest and hottest video courses are all here!
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Qunar Tech Salon
Qunar Tech Salon is a learning and exchange platform for Qunar engineers and industry peers. We share cutting-edge technology trends and topics, providing a free platform for mid-to-senior technical professionals to exchange and learn.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
