Saying there is a lot of variation in the field of web development would be a huge understatement. You have everything from anonymous freelancers to large known firms, several hundred dollar budgets to several hundred thousand dollar budgets (and more).
How much does it cost to build a website? what does building a website entails? there are no universal answers to those questions.
Client: "Enough talking, let's get down to business. What will 50$ get me?"
Brad: * looks at wrist watch *
Brad: "About 5 more minutes of my time."
Brad Colbow on Time
In fact, there is so much variation, that a recent client told us post-project completion that when he was shopping around for offers from various firms, he got offers between 2000$ and 60,000$. That's a factor of 30 between offers!
He picked us since we conveyed the best value (quality / price) of all offers, even though he had much cheaper offers (we were about midway in the range). All things being equal, all he had was his gut-feeling and our resume to guide him. That is, if we didn't engage in client development.
The client-provider relationship in web development is complicated. Most would-be clients are lay-man, possessing no insight on what goes into every feature and pixel you see on a website. They are also, most likely, unfamiliar with their prospective provider and how to evaluate him - is he a hack? what are the qualities that he brings to table? how can I quantify the value he gives me?
That's where the process we term "Client development" comes in. It involves several activities, most of which are not directly related to web development:
This is a basic rule of engagement in most business operations, and web-development is not excluded - especially since it is such a misunderstood and technical field.
A lot of clients look at website features and think "that's easy! you just put the thing there and do that...". Well, in the real world things are usually more complicated. What might look simple on the surface could involve a lot of back-end work and a lot of custom integration with various services... and the user interface itself is probably more work than you'd think.
The first thing we try to do is lower expectations to some degree. Our stance is that if it takes any amount of time to design / develop / test, then it will be priced in the proposal. That might sound harsh - but it's the only way to properly evaluate and convey the value of the project.
As I've written in conveying value to clients, creating a transparent and fair price proposal can go a long way to matching up the client's expectations with yours. It should be accompanied by a well written specification document, composed interactively with the client and which is completely understood by him (or her).
To help clients really get a sense of what they are getting in return for their money, it's important to explain some basic terminology and elaborate on the process of web development.
Explaining terms such as usability, user experience, mockups, layouts, client-side / server-side, testing, maintainability, standards and the interactions between them can really shed light on the considerations and work involved in building a website.
This in turn allows clients to better understand the price-stamp put on features, and feel more secure overall in decisions they make since they better understand what is involved.
Knowing when to say "No"
In some cases, clients get over involved in day-to-day decisions, especially in something as tangible as design. The design of a website is very visible which makes it very susceptible to micro-management and over-feedback from clients as they watch it evolve into a finished product. Convincing clients to trust our experience and expertise is imperative.
Another aspect that is constantly under-pressure is scope. Scope-creep is a common yet undesirable side-effect of perfectionism inherent in most of us (including clients). This tendency to think how things could be improved beyond what was originally specified is something that needs to be properly monitored.
This often means just saying a strict "No" to client suggestions and ideas when it's appropriate to do so. If features and requirements change (and they will), they have to come at the expense of some other features deemed less important. The project scope must be maintained.
Client development is a two way street. Consider for example the following project outline:
US Company looking to develop financial website
Maximum Billrate per Man Hour: $6/hour
Minimum Number of Men assigned to Project: 30
We require a well established firm that meets these basic requirements in addition to being able to delivery quality and accuracy in its work.
(This is an actual posting on Elance, in case you were wondering)
In short, this person wants a financial website, but gives no project requirements / specifications or feature list of any kind. Instead, the requirements are that the provider:
A) Has a minimum of 30 men (why gender biased?) assigned to the project, and
B) No one should be paid more than 6$ an hour (which is less than what a register clerk at McDonalds makes)
For this he wants quality and accuracy. Is his expectations unreasonable? might be (I'm voting no).
Even more common is the "work for minor shares" offer in what is probably "the next big thing". Somehow people believe that having an idea by itself is sufficient leverage, and should prompt serious firms into developing their products.
The fact that there's no market for startup ideas suggests there's no demand.
Which means, in the narrow sense of the word, that startup ideas are worthless.
Paul Graham on Ideas for startups
The point I'm making is that a good relationship with a client can only be achieved when both sides understand and respect each other. This is not just about money, it's about the value generated by both sides.
What does this mean? it means that in order to get the right clients, we need to be selective ourselves. Clients not only choose us, but we get to choose them as well. For this reason, we should never undercut our price-proposals. We need to believe they represent not only fair, but great value.
It's the client's privilege to agree or disagree, but we want to work with people who understand the value we represent. If they want to pay less, they need to drop features. It's give-and-take and there are no freebies - this is a business after all. Nobody gets rich from web development, the least they could do is get paid on par with the value they represent.
This feeling out process usually happens during the expectation matching phase. If both sides can not bring their expectations to the same level, it's best to part ways and wish each other the best than trying to hammer in a shaky relationship.
It's up to you
Client development is a process that a lot of small businesses and freelancers skip (and sometimes larger firms as well). Whether you put the time and effort to make prospective clients your partners instead of your employers is up to you.