Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

Working as a freelancer, I receive many weird, invalid or incomplete requests from the actual or potential customers. The most frequent case is this one:

Hi,

I need a website where people can register and there are also postings and ratings. How much will it cost to me?

Thank you.

The request sucks, but it doesn't mean that a customer like this is not worth it. This person doesn't know how to make a request correctly, but with a bit of effort and a bit of learning and advice, this person may become a valuable customer who will not waste my time.

For a while, I just replied by asking to provide details. They never do.

Recently, I decided to reply in a more detailed way, explaining why is it impossible to give a price (except telling that it would be somewhere between $500 and $50 000). First I just made a simple explanation, telling that their description of the project is too sparse. Then I added further info, metaphors, etc., or by making comparisons with other domains which are better known by people with no technical background. For example:

“Imagine you want to build a two-storey house. Do you believe it's possible to determine the cost of building a house just by knowing the number of storeys? You probably need to provide much more details: is it built with rock or wood? Are there solar panels on the roof? Is there a swimming pool in the backyard?

A large Victorian-style house using the newest technologies, with two garages, a large terrace, etc. will cost much more than an tiny modest two-storey house for a family who really don't have too much money to spend.”

It's still not working: those potential customers never respond.

I also tried the "let me gather the project requirements for you from scratch and do the specification and architecture, but don't forget to pay me for this" technique, but it looks like scam¹. In all cases, in my country (France), this never works with new customers for several reasons.

Some hints show me that some of those people actually succeed finding a developer and succeed with their project. It means that my approach with those potential customers fails, while there is one approach used by someone else which works well.

How to reply to such price requests, considering that those people don't know me, don't trust me yet, don't want to spend days writing a detailed document describing every functionality of the project, and sometimes don't even know precisely what they want, but are not ready to pay you thousands of dollars just for requirements, specification and architecture steps?


¹ Most projects are small enough and have tiny funding; most customers don't bother to know that the source code is clean and maintainable, that it was regularly refactored, and that you have unit and integration tests. They want to pay less, now, no matter how expensive it would be later to maintain the codebase. In this context, talking about functional and non functional requirements, architecture etc., is perceived like the attempt either to waste half of the customer's money doing marketing jibber-jabber instead of writing code, or to scam them by making them pay for something they don't need nor understand, and then disappearing with their money when it will come to actually writing source code. They don't know that you are a professional, and they even don't care.

share|improve this question

marked as duplicate by gnat, Dynamic, Yusubov, MichaelT, mattnz Aug 22 '13 at 23:55

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

3  
Considered just asking for an initial meeting where you can talk face to face so you can learn what they want? You are the professional, not them. –  user1249 Dec 30 '11 at 9:56
    
Often this is not a solution. If traveling to the other end of the country for a meeting, I'm not ready to pay for the train tickets myself, and new customers are often unwilling to pay for this neither. Phone call is a much cheaper alternative, and I would definitely consider that in future. –  MainMa Dec 30 '11 at 10:28
    
consider skype videocalls then. –  user1249 Dec 30 '11 at 10:42
3  
Give them an answer that is as indirect as their question was incomplete. "It won't cost as much as you think. Here's what I need to know: …" –  kojiro Dec 30 '11 at 13:46
1  
You seem to have answered your own question - you gave them rational answers/questions to elicit more information, and got nothing in reply. Not sure that there's any magic words guaranteed to get people to respond. –  Cyclops Dec 30 '11 at 15:34

9 Answers 9

up vote 21 down vote accepted

There are many ways to answer such queries -

Answer 1: It will cost you X Euros per hour to define the system, after which I can give you a fixed price for a set of agreed-upon features.

Answer 2: send them a video clip of sharks in a feeding frenzy, and ask them how long it will take them to count the fish (not just the sharks), given that they can't see the whole scene.

Answer 3: Politely and briefly explain that there are many factors involved in creating a good web site, and ask them what their budget is.

Answer 1 is logical...to developers. And sadly almost no one else. I recently had a conversation with a construction firm along the lines of "we flat-bid complex construction projects every day, why can't you put a price on a simple application?" To which I politely replied "the blueprints for your application are blank. Do you flat-bid undefined jobs?"

Answer 2 is illustrative, and satisfying, but probably won't get you clients. Though it may make a good blog post for me later...

Answer 3 is preferred, for two reasons:

  1. it implies but does not state directly that you don't do analysis and design work for free
  2. it establishes whether or not the potential client has a budget in mind or in hand yet

The latter is critical - no budget = no project.

If you've got time to kill, or some reason to believe that the "potential" client could eventually become and "actual" client with a little coaching, by all means offer to educate them. But don't be surprised if they don't appreciate it. The effort required to create quality custom software is not a widely understood phenomenon.

share|improve this answer
3  
France is in the Euro zone. There are no "francs" anymore. –  Mike Nakis Dec 30 '11 at 7:14
1  
fer crying out loud - and i knew that too! editing.... –  Steven A. Lowe Dec 30 '11 at 7:15
13  
Don't edit too quick, with the state of the Euro, Francs may be on the way back! –  Kevin Dec 30 '11 at 12:31
2  
@Kevin and the Drachmas may lead the way. –  Mike Nakis Dec 30 '11 at 13:44
2  
Asking about a budget can often be seen as "feeling them out to find out how much to charge". It's like going into a job interview and them asking what your salary requirements are. They may be willing to pay 100k, but if you ask for 50k, that's what they'll offer. Likewise, if you ask their budget, and they say 25k, and you say "I can do that", they are left wondering if they are paying too much. –  Erik Funkenbusch Dec 31 '11 at 6:19

The problem is that most people who want a website don't know what is involved in building one. It's magic to them. They just see it as a big Word document that someone wrote up and put on the web. How hard can that be?

Because they don't know what is involved, they see your attempts at clarification as trying to jack up the price, and feed them BS to baffle and confuse them into accepting your inflated pricing.

The jobs that people get, probably started by someone just saying "Sure, it'll cost foo Euros, and take bar weeks". Then, as the system was sketeched out, the price point changed (or someone worked themselves to death trying to meet their original ballpark estimate).

You don't want to work in either of those situations if you don't have to. But finding knowledgeable customers is a tough job, and requires pretty much full-time sales staff to go looking for them.

Here's another issue, they may have submitted their request to 30 different freelancers, and you never got a response back because 5 of them responded with a bid, or maybe someone responded before you did and they ran with that person.

The most likely answer, however, is that they were not expecting what they heard from people. They thought it would be a simple job costing a few hundred, and had sticker shock... so never called you back.

In the end, as a freelancer, you are going to have to build relationships with clients.. so they trust you and your estimates. That's the only thing that counts.

share|improve this answer

Give them quotes for specific features:

Sir, you wish your users to be able to register a new account, and be able to log back into that account at some point in the future? That will cost $199.99.

You wish to have the ability to post articles onto your website? The cost for that feature is an additional $125.

And then you can offer a discount for the number of features that they request, say, 1.5% for each feature. You want a site that includes registration, blogging, a forum, and a search box? That's 4 separate features, so you'll get a 6% discount, bringing the total cost to $672 (a savings of $28!) This will encourage your new customer to request more features.

You should define what each feature includes, and the effort involved. This will help your customer to know what to expect from their website when it is finished.

Having a list of prices is always a good idea as well, along with the cost of maintenance into the future...

share|improve this answer

Are you sure, you really want such customers? I have managed many projects that were started by someone else who underestimated the effort by the factor of five to ten. The result was a huge mess in the project, my customer having serious trouble with his customers and much more serious trouble between my customer and his previous supplier including ugly lawsuits. My job was to turn the software ruins left by others into functional systems. I was always payed well for this. Nobody asked about a price. That was suddenly unimportant. As long as the customer beliefs in you, as long as he has the sound believe, that you finally get the thing going, they pay you almost every price - per hour of course, not a fixed price.

Certainly, you can fool around as other answers suggest and try to hook them up with low prices and inappropriate results. But consider the price - for you. Do you really need trouble? And that's for sure, if you fool around or just make a wild guess what they might need. There are a lot of freelancers / students / hobbyists / newbies / unemployed / ... out there, that do the job for peanuts. Are you really in need of that? I belief, Sting is right: Be yourself, no matter what they say. For me that means in this case: Stick to your professionalism. And forget such customers, if they are unwilling to make a fair deal. Or offer them your help later - for twice the price.

You gave the solution already:

They want to pay less, now, no matter how expensive it would be later to maintain the codebase.

Right. So, try to be later - be the one that maintains the mess "no matter how expensive it would be". That's common business: The liquidators earn most of all and they work for advance payment only.

Good luck!

share|improve this answer

The best way to deal with vague customers is to give them something concrete to choose between. Here is what I would reply.

Hi Bob

Thanks for your interest. We are a bespoke design company. That means you get exactly what you want but it can be a little hard to give you a price without knowing all your requirements. You're probably looking in the region of x but it depends how complex you want the site. We recently did foo.com for x, bar.com for y and baz.com for z. Why don't you take a look at those sites and see which most looks like what you wanted?

Where y < x < z

share|improve this answer
4  
Where did the y, x, z ordering come from? –  avakar Dec 30 '11 at 23:15

You can probably take a guess at what they would want, most sites require a basic set of core functions. I would imagine you don't code up the same fundamentals each time but use a common set over and over.

So do a bit of preparatory work and create some form responses you can send out in these cases. Write once, send many if you'll excuse the pun.

Provide a set of prices, perhaps linked to example URL's showing what they will get. At the lowest level provide user registration that lets the user log into a site and that's it. The idea here is to show them what they might want. You have to do some of the thinking work here for them and instill a sense of desire.

As I said, bit of preparation and you could send out that response 30 times a day with zero effort, perhaps just a tweaking of names and costs.

share|improve this answer
    
+1 for actually sending a list of options, that makes things much more concrete. –  sleske Dec 30 '11 at 12:49
    
I think this is the best approach. Provide a list of "products", with different features and prices. Indicate that additional custom features are possible and your hourly rate is $x. Be sure to indicate what exactly they are getting for their money, eg requirements gathering, etc. –  Antonio2011a Dec 30 '11 at 23:13

Your primary problem and the reason you aren't getting this less-than-educated (to be put lightly) client base is because they are not used to dealing with how freelance contractors work, how they determine prices and how they interact with their clients. They really don't want all that because deep down inside nobody really wants to believe that what they are really getting is a custom solution. Sure they have special requests but when you bill by hour or try to extract requirements out of them then they get the distinct impression that they are paying for your time when they would much rather be paying for software.

Everybody wants the cheapest price, but don't just assume that quality is not important to them because it is. They expect a level of usable quality and return on investment for the smallest possible investment. Keep in mind they are talking to a hundred contractors at the same time they are talking to you, and to invest time feeding you requirements before you give them a quote is too risky. One quarter of all quotes are going to be outrageously priced, and they vast majority will be fair, but a few will be small provided by underdogs, disadvantaged and desperate, and people trying to build experience. I would be furious too if I spent hours of personal time explaining my complex needs in detail to contractor, only to find that he is quoting me 8 months of labor @120€ per hour!

This is why it is so important for you to lead with an initial pending and negotiable estimate as soon as possible (pending acceptable risk of the unknown of course). Further if possible try to show examples of similar work you have done for clients in your portfolio because this will get them thinking about what is possible. They will more seriously consider what they want, and if your price is right they will more seriously consider you.

If your initial price is still not right then everybody walks away and not a tear is shed. Further if they are being unreasonable and they can't find a sucker, they might just come crawling back to you once they realize how much these things truly cost. I have had that happen to me before.

share|improve this answer
1  
Good point. Non-technical customers probably believe that getting a website made is like buying a car or perhaps getting a new kitchen. They don't appreciate the technical details behind it. What they want to see is the type of product they will get, and how much it will cost. As a freelancer you can't ignore these types of customers, you need to think like a marketer/business person. What is your product? What are the key selling points? How should you price your product? Probably the price for product A shouldn't be the same for everyone!! –  Antonio2011a Dec 30 '11 at 23:23

If you can afford to give up an hour or two of your time for nothing, then you could offer to set up a meeting, ostensibly to "discuss their requirements in more detail". If you can get them to sit in a room with you for an hour, you can ask them what they expect, and toss some ideas their way. Hopefully, this will allow you to build up a rapport, and convince them that they know what you're talking about. It may be just the edge you need, to be preferred over your competitors.

But don't make assumptions about what it is they actually want, or make a quote based on what you think they need. One customer of mine once told me "I need a web page that lets the users enter information and stores it in a database". After I spent half an hour with him, he realised that all he actually wanted was some help putting together a two-page Microsoft Word template.

share|improve this answer
    
As was said by the OP in a comment, setting up a personal meeting might mean traveling across the whole country. –  svick Jan 5 '12 at 18:29

What I have never done, but I know others do, and it is awful, but apparently it works, is this:

Give them a quote (say, €500) for the simplest possible web site that covers their requirements. (The crummiest thinkable two-story house made of matchsticks.) They will like it, and they will stop talking to your competitors and start talking to you.

As they begin explaining to you what they want, tell them that it will cost extra. If they complain, show them the simple web site, and tell them that this is what they asked for, and this is what costs €500. Anything more, costs more.

share|improve this answer
7  
It's awful yes. It works because most people can't think of what they want until they see something concrete... –  Marjan Venema Dec 30 '11 at 9:42
1  
+1, my initial thought as well when I read the question. With such a vague question, they don't want to do a deep requirement analysis, they simply want to find the cheapest solution. If you don't tell them a price, usually you never hear from them again. So give them what they asked for to get them hooked. Thrown-together rudimentary discussion board functionality: $X. Anything else costs extra. –  Secure Dec 30 '11 at 10:31
1  
@TomSquires of course it does run this risk. But this customer is bound to learn that their expectations will not be met one way or another, so they are bound to be disappointed. So, the question boils down to this: if the customer turns out to be capable of handling the disappointment, would you prefer it to be you who will get the project, or someone else? Cause if the customer cannot handle the disappointment that they are bound to receive, nobody will get the project anyway. –  Mike Nakis Dec 30 '11 at 11:25
6  
Most of the large sales that I have witnessed in my life started out with a very simple phrase: "We have a range of solutions that would meet your criteria starting at $X" At that point most people start the conversation and some of them maybe half end up spending the money simply because they want to save face. –  Karlson Dec 30 '11 at 13:51
1  
@TomSquires Most entrepreneurs will tell you that it's better to apologize and try to fix the problem then to ask permission or present all solutions up front. –  Karlson Dec 30 '11 at 13:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.