Mystery: why is it that some of the biggest IT consulting companies in the world do the worst work?
Why is it that the cool upstart consulting companies start out with a string of spectacular successes, meteoric growth, and rapidly degenerate into mediocrity?
I've been thinking about this, and thinking about how Fog Creek Software (my own company) should grow. And the best lessons I can find come from McDonald's. Yes, I mean the awful hamburger chain.
The secret of Big Macs is that they're not very good, but every one is not very good in exactly the same way. If you're willing to live with not-very-goodness, you can have a Big Mac with absolutely no chance of being surprised in the slightest.
The other secret of Big Macs is that you can have an IQ that hovers somewhere between "idiot" and "moron" (to use the technical terms) and you'll still be able to produce Big Macs that are exactly as unsurprising as all the other Big Macs in the world. That's because McDonald's real secret sauce is its huge operations manual, describing in stunning detail the exact procedure that every franchisee must follow in creating a Big Mac. If a Big Mac hamburger is fried for 37 seconds in Anchorage, Alaska, it will be fried for 37 seconds in Singapore - not 36, not 38. To make a Big Mac you just follow the damn rules.
The rules have been carefully designed by reasonably intelligent people (back at McDonald's Hamburger University) so that dumdums can follow them just as well as smart people. In fact the rules include all kinds of failsafes, like bells that go off if you keep the fries in the oil too long, which were created to compensate for more than a little human frailty. There are stopwatches and timing systems everywhere. There is a system to make sure that the janitor checks if the bathrooms are clean every half hour. (Hint: they're not.)
The system basically assumes that everybody will make a bunch of mistakes, but the burgers that come out will be, um, consistent, and you'll always be asked if you want fries with that.
Just for the sake of amusement, let's compare a McDonald's cook, who is following a set of rules exactly and doesn't know anything about food, to a genius like The Naked Chef, the British cutie Jamie Oliver. (If you chose to leave this site now and follow that link to watch the MTV-like videos of The Naked Chef making basil aioli, you have my blessing. Go in good health.) Anyway, comparing McDonald's to a gourmet chef is completely absurd, but please suspend disbelief for a moment, because there's something to be learned here.
Now, the Naked Chef doesn't follow no stinkin' Operations Manual. He doesn't measure anything. While he's cooking, you see a flurry of food tossed around willy-nilly. "We'll just put a bit of extra rosemary in there, that won't hurt, and give it a good old shake," he says. " Mash it up. Perfect. Just chuck it all over the place." (Yes, it really looks like he's just chucking it all over the place. Sorry, but if I tried to chuck it all over the place, it wouldn't work.) It takes about 14 seconds and he's basically improvised a complete gourmet meal with roasted slashed fillet of sea-bass stuffed with herbs, baked on mushroom potatoes with a salsa-verde. Yum.
Well, I think it's pretty obvious that The Naked Chef's food is better than you get at McDonald's. Even if it sounds like a stupid question, it's worth a minute to ask why. It's not such a stupid question. Why can't a big company with zillions of resources, incredible scale, access to the best food designers money can buy, and infinite cash flow produce a nice meal?
Imagine that The Naked Chef gets bored doing "telly" and opens a restaurant. Of course, he's a brilliant chef, the food would be incredible, so the place is hopping with customers and shockingly profitable.
When you have a shockingly profitable restaurant, you quickly realize that even if you fill up every night, and even if you charge $19 for an appetizer and $3.95 for a coke, your profits reach a natural limit, because one chef can only make so much food. So you hire another chef, and maybe open some more branches, maybe in other cities.
Now a problem starts to develop: what we in the technical fields call the scalability problem. When you try to clone a restaurant, you have to decide between hiring another great chef of your caliber (in which case, that chef will probably want and expect to keep most of the extra profits that he created, so why bother), or else you'll hire a cheaper, younger chef who's not quite as good, but pretty soon your patrons will figure that out and they won't go to the clone restaurant.
The common way of dealing with the scalability problem is to hire cheap chefs who don't know anything, and give them such precise rules about how to create every dish that they "can't" screw it up. Just follow these here rules, and you'll make great gourmet food!
Problem: it doesn't work exactly right. There are a million things that a good chef does that have to do with improvisation. A good chef sees some awesome mangos in the farmer's market and improvises a mango-cilantro salsa for the fish of the day. A good chef deals with a temporary shortage of potatoes by creating some taro chip thing. An automaton chef who is merely following instructions might be able to produce a given dish when everything is working perfectly, but without real talent and skill, will not be able to improvise, which is why you never see jicama at McDonald's.
McDonald's requires a very particular variety of potato, which they grow all over the world, and which they pre-cut and freeze in massive quantities to survive shortages. The precutting and freezing means that the french-fries are not as good as they could be, but they are certainly consistent and require no chef-skills. In fact, McDonald's does hundreds of things to make sure that their product can be produced with consistent quality, by any moron you can get in the kitchen, even if the quality is "a bit" lower.
Summary, so far:
You can see the exact same story playing out in IT consulting. How many times have you heard this story?
Mike was unhappy. He had hired a huge company of IT consultants to build The System. The IT consultants he hired were incompetents who kept talking about "The Methodology" and who spent millions of dollars and had failed to produce a single thing.
Luckily, Mike found a youthful programmer who was really smart and talented. The youthful programmer built his whole system in one day for $20 and pizza. Mike was overjoyed. He recommended the youthful programmer to all his friends.
Youthful Programmer starts raking in the money. Soon, he has more work than he can handle, so he hires a bunch of people to help him. The good people want too many stock options, so he decides to hire even younger programmers right out of college and "train them" with a 6 week course.
The trouble is that the "training" doesn't really produce consistent results, so Youthful Programmer starts creating rules and procedures that are meant to make more consistent results. Over the years, the rule book grows and grows. Soon it's a six-volume manual called The Methodology.
After a few dozen years, Youthful Programmer is now a Huge Incompetent IT Consultant with a capital-M-methodology and a lot of people who blindly obey the Methodology, even when it doesn't seem to be working, because they have no bloody idea whatsoever what else to do, and they're not really talented programmers -- they're just well-meaning Poli Sci majors who attended the six-week course.
And Newly Huge Incompetent IT Consultant starts messing up. Their customers are unhappy. And another upstart talented programmer comes and takes away all their business, and the cycle begins anew.
I don't need to name names, here, this cycle has happened a dozen times. All the IT service companies get greedy and try to grow faster than they can find talented people, and they grow layers upon layers of rules and procedures which help produce "consistent," if not very brilliant work.
But the rules and procedures only work when nothing goes wrong. Various "data-backed Web site" consulting companies sprouted up in the last couple of years and filled their ranks by teaching rank amateurs the fourteen things you need to know to create a data-backed Web site ("here's a select statement, kid, build a Web site"). But now that dotcoms are imploding and there's suddenly demand for high-end GUI programming, C++ skills, and real computer science, the kids who only have select statements in their arsenal just have too steep a learning curve and can't catch up. But they still keep trying, following the rules in chapter 17 about normalizing databases, which mysteriously don't apply to The New World. The brilliant founders of these companies could certainly adjust to the new world: they are talented computer scientists who can learn anything, but the company they built can't adjust because it has substituted a rulebook for talent, and rulebooks don't adjust to new times.
What's the moral of the story? Beware of Methodologies. They are a great way to bring everyone up to a dismal, but passable, level of performance, but at the same time, they are aggravating to more talented people who chafe at the restrictions that are placed on them. It's pretty obvious to me that a talented chef is not going to be happy making burgers at McDonald's, precisely because of McDonald's rules. So why do IT consultants brag so much about their methodologies? (Beats me.)
What does this mean for Fog Creek? Well, our goal has never been to become a huge consulting company. We started out doing consulting as a means to an end -- the long-term goal was to be a software company that is always profitable, and we achieved that by doing some consulting work to supplement our software income. After a couple of years in business our software revenues grew to the point where consulting was just a low-margin distraction, so now we only do consulting engagements that directly support our software. Software, as you know, scales incredibly well. When one new person buys FogBUGZ, we make more money without spending any more money.
More important is our obsession with hiring the best... we are perfectly happy to stay small if we can't find enough good people (although with six weeks annual vacation, finding people doesn't seem to pose a problem). And we refuse to grow until the people we already hired have learned enough to become teachers and mentors of the new crowd.
You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.