Job: WaiterFor 3 years in high school, I worked at an Italian restaurant. I was going to lump this in with several other jobs, but now that I've thought about it, there were so many good lessons here that it deserves its own post.
1 - Boredom is your enemyWhen people have to wait 20 minutes for their food to come, they become incredibly irritated. If they receive their drinks after 1 minute, a bowl of hot bread after 3 minutes, soup after 8 minutes, drink refills after 10 minutes, salad after 13 minutes, and more drink refills after 16 minutes, the same 20 minute wait for food is much less noticeable.
I think the implications of this lesson for game design or even management should be pretty clear. Parcel out small rewards frequently, in addition to large rewards less frequently.
2 - Learn to recognize when people need your helpConstantly make yourself available to people. If someone needs your help, they need to be able to find you easily. Always check in with people to make sure everything is going smoothly, especially right after you've delivered something to them, be it a plate of pasta or a new set of player powers.
Eye contact always means that someone wants to speak to you. Make a sweep around the restaurant or the conference room or the office with your eyes, and it will always be immediately obvious who wants to say something to you. They will be looking directly at you, often raising their eyebrows, and sometimes opening their mouth slowly, like a fish.
3 - Control expectationsThe restaurant I worked at had delicious, slightly famous oven-fired pizzas. But they took 45 minutes to cook. On Saturday nights, people often came for dinner before going to the movies at a nearby theater, and it was important to make sure people knew what kind of wait they were getting themselves into (while assuring them how great the pizza was).
When making games, warn people how long something will take to implement, or side effects it might have, and make sure everyone is on board with it. Never assume that something goes without saying. [For that matter, never assume anything at all, and you'll always be better off.]
4 - Overestimate difficulty (slightly)You need to account for the fact that something always goes wrong and things end up taking more time. If you build in some wiggle room for a problem and one never arises, people always appreciate things being slightly faster or better than they were led to believe it would be.
Just don't take this too far, or you'll become the boy who cried wolf, and nobody will trust your estimates at all, or start mentally adjusting them to find what they think the "real" estimates are.
5 - Know your limits, and ask for helpDiner Dash is the most stressful game I've ever played. If you want to know what it feels like to wait tables during the dinner rush, this game replicates it almost exactly. Game designers often find themselves with a similarly large number of tasks and customers to balance.
Multitasking can only take you so far, and each person has a different threshold of how much they can handle. For every game designer or waiter, no matter how good, there is a point at which they'll collapse under she sheer chaos of all the things they're trying to handle. Learn to anticipate that point from a long way off, and to ask for help! This is another way to control expectations.
6 - Recognize your specialties, and seek out those tasksIn a restaurant and in game design, there are lots of different ways to have a full workload. You can be a specialist, with one big project that's all yours, a generalist that works on a little bit of everything, or something in between.
If you're great at handling a million tables at once, or you prefer one really large birthday party or catering event, try to make sure your assigned tasks match up with your ability to do great work as much as possible. Which brings me to my last point:
7 - Your coworkers are the gatekeepers to your successThink about the last time you got really bad service from a waiter or waitress. What made it so bad? Keeping you waiting for a long time before ordering? Messing up your order? Undercooked or burnt food? A dirty table?
These are all things a bad server could have caused, but they're also all things that someone else could have dropped the ball on. The cook can mess up an order or forget to cook it. The greeter can forget to tell the server they have a table. The bussers can forget to wipe down a table.
No matter what the trouble is, you're generally likely to hold the server responsible, because they're the most visible person. This is the same way with game designers. Like waiters, game designers have to rely on our coworkers to help us do a good job, and we'll look bad if they don't.
Because of this it's very important to make sure you have a good relationship with the people who create the product (cooks/engineers), the people who distribute the workload (greeters/producers), the people who clean up your messes (bussers/QA), and your fellow contributors (other waiters/designers). If any of these people decide that helping you do good work is more trouble than it's worth, you'll find yourself in a situation where it's impossible to succeed.