The lost art of making clients happy
Sep 27, 2011
Sep 28, 2011 − It's a hell of a time to be a developer. Today, with developer-driven open source libraries and ever-improving practices, we're building more dependable and more impressive applications than ever before. But we're losing something in the process. Something that allows us to be successful. This article is about the lost art of making our clients happy.
It's a hell of a time to be a developer. Today, when good developers are as hard to find as honest politicians, we - the developers of the world - run the show. And why not? With developer-driven open source libraries and ever-improving practices, we're building more dependable and more impressive applications than ever before.
But increasingly, we're losing touch with the very thing that allows us to be successful. We're forgetting about how to make our (development) clients happy. More fundamentally, this means that we're losing touch with the end goal: to build products that have a high value, regardless of how they're developed.
Do your clients ever come to you with a perfectly detailed plan about what they want to implement? Of course not! Clients come with a simple idea, and what they really want is to bring this idea to life! And for that, they need our help. What we really get wrong nowadays is HOW we should help them.
So, all we need to do is just write code for exactly what the client wants, right? And the client knows exactly what he needs and how much it'll cost, right? Wrong! They don't! That's exactly why they need us - to help them understand what they need and why they need it in order to be successful.
It's tough to see, but clients don't really want this shiny new video service they keep asking us about! What they really want is profit! Lots of visitors, lots of data, lots of money! Our job then, is not to implement this shiny new video service, but to help the client understand what functions his service should implement in order to be profitable. Am I saying that we also need to create a business plan for all our clients? In most cases - no. But what we do need to ask is "Why do you need this feature?".
In reality, we focus too much on answering the wrong question. Because we're technical we like to think that we're solving "engineering" problems. But we're not! In reality, our main target should be to solve our client's business problems with technical solutions. Do you know what the difference is between engineering and business problems? Engineering questions start with the word "How?" while business questions start with "Why?". By answering too many "How?" questions and not enough "Why?" questions, we're at the root of every failed service and every unhappy client. We've lost the art of making our clients happy about their business.
Let's look at an example. Suppose a client comes to you in the middle of the iteration and says something like: "Hey guys, I just dreamt up the best new feature ever! Let's add i18n to our site, because it's cool to have a russian version of the service".
In a previous life (before I became BDD evangelist), my first thought would be: "man, how da hell are we going to implement this on top of the existing codebase?". My conversation with the client then becomes a cycle of two questions and answers: "How?" and "When?". The problem here is that clients often don't know what they really need, even if they think they do! And more often than not, they'll request features that won't make them real profit (but which will successfully waste our time and, as a consequence, their money)!
Our actual job is simple: to help our clients be successful with their IT projects. How? With one simple question: "Why?". Let's revisit the previous example - "I want russian i18n!". But this time, let's answer: "Why? Why do you think this feature is important?". By asking why, we've changed the conversation from one that's technical to one that focuses on identifying the real business value. Answers might range from "Because somebody told me it's really awesome!" to "Because 50% of our visitors are from exUSSR countries". By compelling our client to think about business needs, we help him make good business decisions and build project priorities on top of features that add value, rather than just being cool. Being cool doesn't bring value to a product! Well, in most cases...
The art of asking the right "How?" questions to clients is the main secret of being successful in a development company. When you're able to get sane answers to these questions from your client - your development process is able to center around business needs instead of useless desires. And when you start to solve a client's business problems, you'll ultimately start to make him profitable. And that's our main aim: making our clients profitable and happy. A happy client with a successful project will be able to contract, pay, and love you more!
So who are we actually? Engineers? I'd rather say that we're business stewards. We're the first defense to making sure that our client's business will be realized successfully and not be a painful process. Our job is to ask questions and fulfill client needs. Don't let your client's imagination kill the project: prevent business suicide while his business is in your care!
In the next article, we'll show you how to ask the right "Why?" questions and how to build a development process around the answers with a shiny new methodology called Behavior Driven Development.
Stay tuned ;-)