Sponsored Link •
A few years ago, close on the heels of the dot-com bust, Rational basically imploded. IBM felt that there was still value in what was left of the company, and paid an exorbitant amount for the remains.
The company made money by consulting and by selling a software product (Rose) that was supposed to help you create UML and thus good programs. They had produced a series of books on the "Rational Unified Process" (RUP) which generally seemed to have reasonable advice. But advice that appears to be rational does not necessarily solve real design problems, as we saw in the "structured design" movement of the 70's. This seems to happen over and over in our industry -- it's easy to focus on one aspect that seems to be "the solution" and miss the big picture, and to produce unintended consequences that eliminate the benefit of what may seem so clear in isolation.
Jon Hopkins created the original Rose program which seemed reasonably good. This was purchased by Rational, rather than being created within the company.
How is it that a company that purported to teach you how to create good software ended up creating a product (Rose) that was so universally reviled? Is Rose what eventually destroyed the company, when potential customers asked that same question?
Is it even possible to scale a consulting operation, without turning it into a body shop? Andersen Consulting is another example. Yes, they provided bodies and I've talked to some of those bodies who got great value out of the process, but how much value did the client companies get -- or did they just get reasonably competent, medium-term temporary workers? This isn't to say that such a service isn't a valuable one, but is it consulting, or does it just assume that name to justify higher fees?
Lots of people that call themselves consultants do things that I would not personally consider consulting. I think consulting is when you have some kind of special expertise -- come by through hard struggle and learning -- that you transfer to a group of people, in a relatively short period of time, and in a way that is unique for that group. I also think that consulting involves addressing particular issues faced by that group.
If it was easy to transfer to someone else, then a client could acquire that expertise without a custom consulting session (it could be turned into a seminar, for example). Ironically, many consulting firms feel the pressure to grow and make more money, and end up ignoring this principal fact. Instead, they succumb to simple arithmetic and decide that they need to "scale up" by adding more bodies, pretending that each of these bodies can be imprinted with the experience and hard-learned lessons of the principal consultants. It becomes clear within the consulting firm that this isn't so, and so the firm, as it grows, must change its perspective about the meaning of the word "consulting." And under certain economic conditions (rampant growth in the industry) the service provided by this reinvented consulting firm is still valuable. But it is a far cry from what the original firm offered, although that firm is still charging fees as if each client was getting the services of a principal consultant. And if the economy turns, as the computer economy has done many times, the consulting firms are the first to fall, as they are the easiest way to cut costs.
It's tempting to make the analogy to a ponzi scheme, but it's not that bad. Both forms of a consulting firm (first-class consultants only vs. high-tech body shop) have value. The problem is the temptation to present the second form as the first, in order to apply the same high fees of the first-class consultant to each additional body added to the shop. The goal of the company becomes "how do we transfer the aura of authority from the high-image consultant(s) to anyone who works for us, so that we can charge the highest fees possible?" Or to simplify, at some point the bean-counter mentality takes over and the mission statement of the company goes from "how do we provide the greatest value to the customer?" to "how do we charge the highest fees possible?" (You can argue that this is the fundamental shift that any publicly-held company goes through. After all, a public company is legally beholden to maximize shareholder value, so how could it be otherwise?)
Perhaps the problem comes down to this: consulting (what I consider consulting, anyway) doesn't scale. For me, it involves a lot of study and struggle, and occasionally I go out and transfer some of what I've learned to a client. Because I need to pay for the time I spend on my own while struggling with these ideas, I must charge a premium when I visit a client. Money, however, isn't the most important form of payment. An energizing experience is worth a lot more than a high fee. An interesting project -- especially one using Python -- is always tempting.
Just like the folks who used to work for Andersen Consulting, I often learn a lot by working on a client's problem, so it would be tempting to say that I could continue learning and make more money by spending more time on the road, and that may be true to a point but it won't scale that far. You have to spend some amount of time recharging your mental batteries. Gerald Weinberg said that you can only spend three days a week on average doing actual consulting. You must spend one day a week on marketing, and one day acquiring new knowledge, so that you continue to update the value that you provide.
If you work for yourself or within a small, privately-held group, you can make the decisions that maintain this balance, but as soon as the idea of scaling intrudes (or perhaps "scaling with the primary objective of amplifying the cash flow of the company"), I think the eventual fate of the consulting company is sealed.
Consulting is first and foremost a human activity, and I believe that the primary motivation must be in improving the quality of the client's experience. One reason that the consulting fee must be relatively high is that this experience is a rare thing, both for the consultant and for the client, and the consultant is being paid for the unpaid time that he or she invests. But this form of consulting doesn't scale, not even on an individual level. A consultant who spends all his time on the road is not allowing the time for reading, communicating and reflection that I consider essential to maintain quality. Installing the same techniques in the same way from company to company is something, and it may have value, but it isn't what I would call consulting.
One of the ironies of consulting is that the goal of the consultant must be to make him or herself obsolete. You must so effectively transfer your knowledge and solve the client's problem that they don't need you anymore. But when a consulting firm scales up, their primary objective shifts away from providing value to the client towards providing consistent cash flow for the company. This pushes towards making the customer dependent upon the consulting firm. One of the things that makes a good consultant unusual is the counter-tendency of not wanting to drift into anything that looks like an employee relationship, despite the promise of consistent cash flow. What makes me happiest is to see people understand what I give them, put it to work, and show me that they no longer need me.
Joel Spolsky wrote about consulting firms just moments before the dot-com bust, while his company was still consulting to generate money for product development.
|Bruce Eckel (www.BruceEckel.com) provides development assistance in Python with user interfaces in Flex. He is the author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000, 3rd Edition, 2003, 4th Edition, 2005), the Hands-On Java Seminar CD ROM (available on the Web site), Thinking in C++ (PH 1995; 2nd edition 2000, Volume 2 with Chuck Allison, 2003), C++ Inside & Out (Osborne/McGraw-Hill 1993), among others. He's given hundreds of presentations throughout the world, published over 150 articles in numerous magazines, was a founding member of the ANSI/ISO C++ committee and speaks regularly at conferences.|