You’re not a salesperson, but if you have ever had to deal with a client, you should read these tips.
After ten years of doing sales in a variety of roles, from freelancer to running a small shop, I’ve made a few observations and come to a few conclusions. I’ve compiled these as a series of sales tips for the freelance developer. While they are drawn from sales experience and are geared generally toward software development, many of them are relevant to any situation where you are dealing with clients.
Show Me the Money
Keep the Cycle Going
Use Your Open Source Cred Strategically
Move First and Fast
Don’t Keep Them Waiting
Know When to Give Up
Ask a Lot of Questions
Be Conscious of Past Relationships
Know When to Fire the Client
1. Show Me the Money
It’s not rude to ask them to show you the money. It’s essential. You can put it in more polite terms, but you must try to determine what the budget is for this project. You can do this by simply asking, what is the budget for this project? and whether or not this person has the money right now. There are 3 basic scenarios to avoid:
Not Enough Money
Too Much Money
No Money: This is the case of that very nice person who may have a potentially great idea but who is expecting to find someone who will work for Sweat Equity, or the promise of great fortune someday. Unless you can pay your electric bill in shares of “The Next Google,” you’ll likely come to ruin in short order. Avoid these people. Although to their credit, they are almost universally honest about their intentions right from the start.
Not Enough Money: This is much harder to spot than No Money. Get to the point early: Do you want flat rate or hourly? If hourly, does [X currency units per hour] work? If you get a response like one that I got a few years ago—I have a guy in India that is offering ten dollars an hour; can you match that?—then there’s little doubt. I should have replied, Only if you can convince my landlord that I should be paying the same rent as they do in Mumbai, but I didn’t. Sales is fundamentally about managing your time and effort effectively. Don’t get caught up in social discord. Prospects are objects, and in your salesperson persona you need to objectify them—nothing is personal. If it’s still not clear, ask for a deposit of something simple to get the blood flowing. Not because it’s a percentage of the overall effort, but because you want to see some money.
Too Much Money: This case is generally recognizable in the form of: Yeah, we got a 200 thousand dollar budget for this otherwise tiny project that in the real world would cost about 2 thousand to implement. These people push things into the unbelievable in an attempt to get you to believe. The advice here is the age-old adage things that seem too good to be true usually are. Move on.
2. Keep the Cycle Going
Attaining a sale is a cyclical process. It’s important that you word your response in a way that solicits a further response from the prospect. Be proactive about setting up the first (or next) meeting, respond with Let’s talk tomorrow at 3 instead of Let me know if you have some free time and maybe we can chat or something. Always be setting up the next contact.
3. Use Your Open Source Cred Strategically
From a sales perspective you need to be involved in open source first and foremost to satisfy the dreaded send me some code samples request. Since you can’t legally or morally send code from another customer for whom you likely signed an NDA, make sure to have a variety of open source examples you can provide.
But beyond that, tailor your open source bragging to your audience. Most non-technical people don’t really have a clue what open source is, except that they can get it for free. So what would greatly impress your developer buddies in terms of your open source prowess will likely go right over the head of your average prospect and get them to tune out in short order. No need to overdo it.
4. Move First and Fast
As soon as you see a posting or advertisement that looks like a good prospect, move on it. I have no scientific data to support this claim, but some people just go with the first person they talk to. Be prepared with a handy file of common responses, your portfolio, and open source involvement. Never, ever, ever use form letters; they are a big turnoff and suggest you are too busy to talk to this person and you probably always will be—personalize every message with specifics about yourself and a reference to the project itself.
It’s critical to respond to a prospect in a reasonable amount of time. The basic rule of thumb is within 24 hours. That said, it’s better to respond right away. It suggests that you are proactive and motivated to help this person in their endeavors. Don’t worry about responding too fast: it will never come off as desperate.
6. Don’t Keep Them Waiting
It seems like an obvious thing to say, but first impressions are lasting. If you show up to your first sales meeting five minutes late, the prospect is going to get the impression that they are not the priority. It’s important in any services business to keep the communication lines open and prompt.
7. Know When to Give Up
Sales is lot like dating: as soon as you come off as desperate, it’s over. But more importantly, chasing a sale that will likely never happen is a huge waste of time and effort. A lot of people, for admirable reasons, don’t like making other people feel bad and will drag out a rejection until you give up rather than just telling you, straight out, they’re not interested. The psychological reasons why people do this isn’t important.
Giving up is seen in western culture as failure, but when it comes to sales, never giving up will lead to ruin every time. We’ve all been on both sides of liking someone who doesn’t like you and it’s never worked out in the long run.
The good news is, there’s a fairly simple protocol to follow. Regardless of specifics, when a prospect falls off the radar, send one message to the tune of just checking in. That usually wakes them up and things get back on track. People do get busy and you’re momentarily a lower priority. If they don’t respond, move on. Don’t linger, don’t get spiteful. Refocus.
8. Ask a Lot of Questions
I once worked alongside a very competent developer whose only flaw was that he estimated every task to take two weeks. Copy change? Two weeks. Build Rome? Two weeks. Don’t be that guy.
In a service business the most critical mistake is to underestimate the scope of the work. Understanding the scope of the work means asking a lot of questions. Jot down a list of basic requirements. Try to quantify the totality of what this person wants, and more importantly ask yourself do they understand what exactly they want? If not, you need to clarify it. If so, do you understand it? Once you understand it you can quantify it, and once you can quantify it, it’s possible to predict the scope of the overall effort.
9. Be Conscious of Past Relationships
Sometimes a prospect will immediately mention a bad experience in the past, say with a deadbeat developer who promised the world but never delivered much beyond excuses and delays. Be conscious of this because it may signal what will prove to be a difficult working relationship: the person won’t trust you, will want to have everything delivered before paying invoices, or worst of all, will require multiple daily status meetings. These are not the attributes of a good working relationship.
10. Know When to Fire the Client
Knowing when to fire a client is a critical part of the overall cycle of business.
For whatever reason, some clients get abusive. Don’t take it. Software development isn’t indentured servitude. A project is just a project. Here are the techniques I’ve found useful in dealing with abusive situations:
First, be direct but professional: I’m concerned about the abusive tone that things have taken lately. And leave it at that. Most of the time that cools things down, but occasionally it gets ugly again, and in that case you must go straight to the nuclear option right away. Because allowing abuse to subside momentarily and then continue will roller coaster you right into giving up programming for a nice snug white jacket with trendy clasps.
The nuclear option is simply this: Unless this stops I will have to leave the project. This should not be a bluff. Recognize that it’s entirely possible you will have to follow through on it and fire the client. In that case, remain professional, give a few weeks’ notice, and offer to be available for consultation with the next poor bastard that comes along.
Not in those exact words, of course.
John Bresnik worked as a freelancer rolling his own sales for many years before joining the illustrious Barbarian Group in 2009. He lives in New York City, has no loyalties to any language or framework and, like all developers, is actively involved in music and the grand appreciation of form follows function.