Andréa Coutu recently posted 6 easy mistakes consultants make, which led me to ponder what other mistakes she may have omitted from her list. I think one of the most frequent and pernicious mistakes in consulting is overselling. It's easy to slip into it, yet it benefits no one. But what do we mean by overselling? I can think of at least four dimensions to that practice with regard to consulting.
1. Overselling your abilities
Consultants tend to be a bit competitive. Nobody is going to fight for us but ourselves, so if we want to survive in this business we have to be a little aggressive in our self-promotion. Therefore, when a prospect asks if we know a specific technology or methodology, we're under immense pressure to say "yes" even if that only means we know how to spell it. Or perhaps we follow that "yes" with an unspoken "I know how to use Google and Wikipedia to get me through." Sometimes we really can pull a rabbit out of our hat, and execute on the client's requirements without them ever knowing how much we had to scramble for it. But often we find out too late that we used the wrong hat. That kind of risk taking with our commitments relies on a best-case scenario, in which learning something new doesn't involve learning that you grossly mis-guessed the scope of the project or how much you would need to learn in order to achieve competence.
It's far better to be honest. "I've never used that technology, but from what I've heard about it I think I should be able to learn it. Tell you what — give me until tomorrow to investigate further and I'll let you know." We're afraid to say that because we think the prospect has "Expert in technology X" at the top of their checklist. Maybe they do, but if so we certainly don't want to try to impersonate one. I'd rather meet with their disappointment before they've invested in me, rather than when they sue for non-performance.
2. Overselling your availability
I have to work on this one all the time. I'm naturally optimistic about how quickly I can get things done, so that optimism carries over to how much time I think I'll have available for other projects. I also suffer from the illusion that no matter how busy I am, I can surely figure out a way to squeeze in one more project.
This mistake proceeds from the fear of the empty pipeline. It's somewhat comforting to have more work lined up than I can possibly execute. I know that I'll be able to bill every hour I can keep my eyelids open. But creating false expectations of delivery can't be good for client relations. In recent years, I've begun to learn to say "I'm sorry, I just won't have time for that project," and then help the prospect find someone else to do it.
3. Overselling a technology
We geeks get excited about new technologies. A new language or framework can often seem to lift the veil from our eyes, making us feel reborn into a whole new world where everything suddenly makes sense. We can get so wrapped up in reinterpreting our craft in terms of the new paradigm that it becomes the proverbial hammer for every nail, double-sided tape, or Faberge egg. When a client asks for our suggestion for solving their requirements, we lead them in the direction of our current passion. Never mind if it isn't meant for 99% of what they need, we're sure that there's a Right Way To Do It that involves our newest silver bullet.
The preventative solution for this mistake has two sides. First, imagine worst-case scenarios in which your favored technology horribly fails — what will be your fallback? Second, actively look for better fits. What solutions out there, if any, address this specific class of problem? Above all, keep the client's best outcome as your goal, rather than proving the superiority of your new shiny toy.
4. Selling more than the customer needs
We consultants suffer several temptations to commit the client to a bigger project than they strictly require. First, and most deplorable, is the desire to generate more business for ourselves. Second is the mistaken notion that we need to achieve full abstraction of the problem and create a solution that will apply to all possible scenarios — that may be true of widely applicable products like compilers, but not for the majority of projects. Third, we may simply fail to see that a simpler solution is available. Here are some other reasons why we might push our clients to do too much.
We can learn something from Test-Driven Development (TDD) here. One of the steps in TDD is to write the simplest code to pass the test. Likewise, in proposing solutions, we should ask ourselves, "What is the simplest way to meet the prospect's requirements?" It doesn't hurt to start with the naive, and then refine it to meet all the requirements. That's more likely to have a positive outcome than trying to start with something that perfects the art of programming.
All of these overselling mistakes share at least one common feature: they're putting some other priority ahead of finding the best way for the customer to meet their requirements. If we put the customer's needs first, and see technology and ourselves as tools to that end, we'll naturally avoid the pitfall of overselling.
Chip Camden has been programming since 1978, and he's still not done. An independent consultant since 1991, Chip specializes in software development tools, languages, and migration to new technology. Besides writing for TechRepublic's IT Consultant blog, he also contributes to [Geeks Are Sexy] Technology News and his two personal blogs, Chip's Quips and Chip's Tips for Developers.