“How much longer until it gets here?” I asked. I was bored, hungry and past impatient.
My mom answered that the food would be at our table before too much longer.
“But what’s taking so long?”
“This is a nice restaurant. They want to give us time to talk, and enjoy the scenery.”
“But I just ordered a hamburger! Why couldn’t we have gone to McDonald’s?”
Apparently, I said this a little too loud. My parents got a little embarrassed and felt the eyes of everyone at The Plaza III. This happened close to 30 years ago. Yet every couple years my dad will ask me if I want to go down there to eat.
What I didn’t understand at that young age was what the goal of that restaurant was. To me, if the food you ordered showed up quickly, that was a good meal. As I think of it now, I realize there are two types of quality. The first, is what I call the McDonald’s quality. When you drive through McDonald’s, you hope that
- You get all your food.
- The drinks are right.
- The food isn’t raw.
- If you have kids — The right toys make it into the Happy Meal.
If these 3 or 4 conditions are met, we drive on and don’t consider our food much more than that.
Contrast that restaurant with a nice, white-cloth restaurant. The type of place where you actually have to make reservations. At these restaurants, quality is so much more than the 4 criteria at McDonald’s. After all, you’ll be paying a hundred dollars or more. It matters that your food isn’t just cooked, but cooked right. It matters how it looks when it comes out. It matters what the ambiance is like. Saying the place is a “high quality” restaurant has less to do with the fact that they get your order right, and more with the entire experience. From the moment you walk in, until the moment you walk out, your dining experience is remarkable.
As I thought about these two ideas of quality, I realized that they have a place in the software world today. At so many of my jobs, the focus has been on a McDonald’s like quality. We want to get the feature written, with no major security issues or fatal flaws. We want to throw it out the drive-thru and move on to the next feature.
In fact, if you talk to most customers, managers and analysts, when they say they want quality software, they largely mean “free of bugs.” After that, they don’t care too much.
But what makes the difference between the Plaza III and McDonald’s? It’s not just the price. It’s not just the decor. McDonald’s has been remodeling a lot recently. At least one of their restaurants has a fireplace, pendant lights, and flat screen TVs. Trying to make it look more like an cozy coffee shop, than a place where you can get a McDouble for $1.
What makes the difference is that the chefs at upscale restaurants are using the latest techniques. They’re adventurous, they’re trying new things and new approaches. In some ways, they’re artists. McDonald’s doesn’t care about art. They care about getting as many Big Macs through the drive-thru during the lunch rush as possible. They care about not making people sit at the window, because if they’re sitting there, McDonald’s won’t be making any money.
So how does this apply to software? If you want high quality software, you need to focus on more than just squashing the bugs. Take time to investigate tools, techniques and technologies that will help you on this particular project.
Just because there aren’t any bugs, doesn’t mean it’s quality software.