Thoughts on web design and development pricing
When you contact someone like me to design your site or code up an email or put together a WordPress blog, you generally have two ways to pay for this service: by the hour or by the project. I can give you an estimate, track the hours, and bill you at the end or I can tell you a price based on what I think will be involved and keep the work to around that amount. I think both of these ways suck and I’d like to tell you why.
First, though, I think it’s important to say one thing: no matter what I’m charging, I want my clients to be completely satisfied. In the end, that’s my only job. In addition to that, I’d like my clients to feel like what they paid for what they got was fair. I don’t compete on price because I don’t think that leads to value. I want to build great things and charge people the right amount.
But how to go about doing that? Here’s how I see it from a few different perspectives…
Let me put myself in your shoes, if you don’t mind. I am a client on a regular basis so this shouldn’t be too hard…
When I pay someone for something, there are two things on my mind: did I get what I needed and do I feel like I got a good value. There’s a balance here and the key is setting the right expectations. I expect to get what I need and I expect to be happy paying for it. It’s rare that you get everything you want and more but pay very little for it, especially with professional services. Unfortunately, it’s less rare to pay too much and not get what you need. But I digress…
So, I’m a client and I want satisfaction and value. In the web world, this translates to…
- I want a website or blog or template or email that looks great, is to my specifications, and performs well. I want to have my bases covered (I’m not an expert after all) and a minimum of surprises down the road. I just want to feel like I was really taken care of.
- In addition, I want to feel happy to be paying the amount I’m paying. Even if it’s a stretch, even if it’s a bit more than the budget, even if someone else was cheaper, I want to feel good about it.
I’m going to venture a guess, based on my experience, my opinion, and how well luxury goods do in America, that the first part of this puzzle is more important than the second to the vast majority of people. With that in mind, the concentration should be on providing the best possible product and the pricing will follow suit. Provide a great service, get overwhelmed with the response, and prices adjust accordingly.
But I’m getting away from the role-playing here. I’m a client, I want something great, and I pick someone that I think can make it for me. Now, I need to figure out if the price works. If I was able to choose between paying someone hourly or a fixed amount (a choice I offer when the situation can allow for either), I’m stuck:
- If I pay hourly, I’m not sure what my costs will be. I would expect an estimate of some kind (ballpark) and a notice if the project runs past that but what if it takes twice as long to create something usable? What if I’m stuck at my spending limit with nothing to show but a half-finished site?
- If I pay a fixed price, then I know how much I’m going to spend but will it be everything I wanted it to be? Are corners going to be cut to get it under budget? Am I going to have to push hard to get the features I’d like?
It’s a conundrum, either way you look at it. Would it make you feel better if I told you that the situation is no better for a developer?
The Service Provider
Back in my shoes (will, house shoes since I work from home) now…
When I create something, there are two things on my mind: did I create something great and do I feel like it was worth my time? There is a balance here and the key is choosing the right projects. There are fun projects that help me learn new things and there are projects that pay a lot but are arduous, boring, and tough to produce something I’m really proud of. The key to happiness for a developer is being able to find the fun, lucrative projects that challenge what we know and give us a lot of creative freedom. I want to say something sarcastic to the tune of “too bad there isn’t a fountain of those” but I have a pretty good track record so far. But, again, I digress…
So I want make clients happy while building things that are fun and making sure my bills get paid. It shouldn’t surprise you that these things are very tightly tied together. If I’m having a great time with the project and the people involved, the money that I eventually receive is much less important. Taken to the extreme, this is why I build side projects like the (Drudge Report website template or the WP-Drudge WordPress template). Sure, I sell them online but I have complete control and I build what sounds interesting (and the sales don’t quite make up for the time it took). Taken to the other extreme, I have turned down several projects that I know I won’t enjoy and I won’t be proud to display in my portfolio. I’m not interested in trading my finite number of hours on this planet just for cash; there has to be meta-compensation (i.e. pride in workmanship or design, learning a new skill, working with a fun group or person, etc).
I want to make people happy and I want to enjoy what I’m doing. During this love-fest, however, I also have rent and a car payment so I need some income. Being uncreative, I can charge one of two ways: I can charge by the hour or I can come up with an estimate and charge a fixed price. There are, of course, pros and cons to both:
- If I charge hourly, I have a timer going and I can only make as much money as I have hours in the day. What’s the appropriate time to charge for phone calls if we talked about cars for 10 minutes? What about learning time, do I charge for that if I learned the skill for that project? I can’t charge for mistakes but what about conscious changes from one approach to another because of new found information? What’s an appropriate hourly rate that covers all bases? I do PHP development as well as Photoshop design; do those get charged at different rates? What happens when I forgot to start or stop the timer accidentally?
- If I charge by the project, the big, huge, glaring, painful, tension-causing problem surrounds specifications. What did I agree to do for what price? If I say that I’ll build a site for $XXXX, what does that include? Should I spend 4 hours writing up exactly what I’m going to do so there is no confusion later? What about unforeseen circumstances? What about if you change your mind about something? In the end, you want what works and I want to build that but if you start changing what I’m building mid-way, are you going to understand the change in estimate? This kind of pricing rewards me for working quickly but how quick can I work while still providing a top-quality product? How many corners am I willing to cut to make sure it comes under budget? Do the projects that come in under my estimate make up for the ones that spiral out of control?
Problems abound for both methods.
What’s the right way?
Wouldn’t it be great if I just totally write the right answer down here and solved this problem for all time? Alas, Josh Can only Help so much…
I think the key to this is found between two things I said above:
- Clients want value and will often pay more for higher quality.
- Developers want to create something they are happy with, even if it takes more time.
So if the final cost is less important than the final outcome (not unimportant, just less), then it’s safe to say that the concentration should be on the work itself rather than the price, especially in places where quality work really shows.
In the end, the right answer, as usual, just depends on the person asking the question. For myself, I’ve moved more and more to an hourly system with a rough estimate up front, similar to a mechanic. I’ll let you know what I think it’s going to cost, keep you updated along the way, and notify if it goes over. I’m also working on a rate card for easily repeatable, often-requested services (installing and configuring WordPress, analytics reports, etc).
Whether you’re a client, a designer, a developer, or none of the above, I’d love to hear your thoughts on this.