By Peter Bell

Charging for Value vs. Time

I've never been a big fan of charging for project work on an hourly basis - you can make a living, but there's no real upside, and because the variation in hourly pay between great and average programmers is (to my mind) less than the variation in the value they can provide, the better you get at adding business value as a programmer, the less the compensation matches the value you are capable of adding.

In most businesses, the answer would be easy - move to value/results based pricing. This is a little more interesting in the programming world because it is often hard to determine what the time will be to add a particular level of value, and clients often want to make changes that won't increase the value of the deliverable (and may even decrease it) but that will still burn your time and affect your costs.

Many programmers are moving towards Agile development methodologies. After trying a number of XP engineering practices and Agile project management approaches - from SCRUM to Lean I tend to think that agile is the most efficient way of adding business value to clients. However it isn't necessarily the best way to build a profitable consulting business because you're limited to charging by the hour.

We have an interesting hybrid model where our software product line allows us to generate an application very quickly and we deliver those apps for a fixed bid but then charge on an hourly basis for any tweaks the clients want (we also outsource the graphic design and the tweaking of the layouts when we can as those are the areas that can burn the most time in inconsequential changes).

It works quite well as we don't really want to work on an hourly basis so we do our best to keep the tweaking to a minimum and the client has control over how much the project costs. We guarantee to deliver something that meets the spec for a fixed bid so they don't have to worry about how long it'll take us to code a newsletter system or a custom content management system, but they have to pay by the hour for the tweaking at the end of the project so we don't lose money on picky clients - they just pay for more hours at the end in the tweaking phase.

What do other people do to get beyond just making an hourly rate (especially in a world where open source is replacing licensed software in many situations)?

Input appreciated!

Comments
Similarly do most people still do hourly? I find most clients want fixed price projects, which if you estimate wrong kills you but often you can do quite well.

One thing we have done are service packs. Prepaid hours that a client can buy ahead of time at slight discount. We can then do whatever tasks are allowed under that package and burn up hours as they identify. (for us it is templates, basic graphic service, content stuff, etc, no app dev). Great to get cash upfront and great for items that are unclear in length or lots of little things over a medium period of time. No need to get approval for little things each time, just use the existing service pack and make it happen.
# Posted By Joshua | 10/1/08 10:09 AM
The service packs sound like a nice idea - although you are still limited to an hourly rate, but I agree it'd be much easier than trying to get a bunch of $50 change orders dealt with.

The main issue I traditionally have with fixed price contracts is the expectations. Most clients don't understand that the cost of a project is controlled by them as much as us. How picky are they going to be? How quickly will they identify what they really want the app to do. You can write detailed specs, but they never cover everything and end up costing everyone a lot of time, so while I agree that many clients want a fixed bid, it often isn't in their best interests - especially in speculative/highly custom apps to give them one. It is however a good deal for the consulting firm. Hmmmm.
# Posted By Peter Bell | 10/1/08 10:55 AM
I'm definitely moving towards this sort of pricing model in the Drupal work I do. Typically I'll include a certain number of hours for tweakage on top of the fee for setting up the site, and the client understands that I'll charge hourly for anything over that. I like Joshua's idea of service packs, especially for jobs that are not well defined by the client, or involve ongoing maintenance.
# Posted By Thomas | 10/1/08 7:28 PM
We tend to go for a fixed price project. We also then have management packages, once the project is finished which is a monthly discounted fee to cover all the tweaks that are usually quick so that we don't have to go back and forth with quotes for small jobs.
Using wireframes to define the pages is a great way to reduce the potential of project creep and can be put together really quickly before you even quote. This is much quicker than writing detailed specifications which most of the time the client doesn't understand.
# Posted By John Whish | 10/2/08 5:19 AM
I think determining the value of a project is a big, not trivial, part of charging by value. Finding the root of the clients problem and proposing a solution is another big part.

You might be interested in a book called Spin Selling. It's all about asking questions to find out the value. SPIN is an acronym for "Situation, problem, implication, and Needs Pay Off".

I think a lot of programmer consultants focus on the situation / problem; without truly understanding the implications of the development.
# Posted By Jeffry Houser | 10/2/08 11:41 AM
@Jeff, Funny you shoudl mention spin selling - I read that book back in 93 when I was selling photocopies in London (long story). Even took a course on it. You're right - it is great!
# Posted By Peter Bell | 10/2/08 12:10 PM
I'm tempted to try a slight different model: narrow the first project down to its basics, set a fixed price for it and then do it. When you narrow it down to the most basics, you deliver it faster and it costs a lot less to the client. Also, when the basic project is delivered, a lot of questions raise and people often see how their needs are very different than what they first thought.

I was partner at a company here in Brazil so I wasn't allowed to "rule", but with one project that I did everything - sell, understand the project, write it down and even helped within the developing part - it went really well and, most important, the client discovered that the project they wanted at first wasn't necessary at all. It was such a big "goal" that I'm trying to apply it to clients that contact me now that I'm freelancing for a while.
# Posted By Fernando S. Trevisan | 10/2/08 5:20 PM
I can totally see how the presentation of the proposal to a prospective client should center around value vs. the time.

But let's face it and be honest with ourselves (and yes, I read the article you linked to as well) ... in the end, we all have an "acceptable range" in mind as to where we would "prefer" to end up on any given project. I say "acceptable range" because there is definitely a "low" end for each of us, whether that "magic" number is $50 per hour or $500 per hour. The problems always tend to arise on those projects where you just don't know how much time something is going to take too! Estimating the "unknown" is always tricky in our business, isn't it? Besides, from the clients perspective, how would you like to hear, "well, we think it'll take 40 hours, but it might take 80, so we'll charge you the 80 hours just to be safe." Then, what if the project goes out to 100+ hours?

Also, "value" could be perceived differently by you and your client. If your proposal is significantly higher than your competitors, then of course you should be bringing something more to the table (significantly more) than you competitors. Whether your "value" is "done right the first time" or whatever you define your "value" to be, then hopefully you're getting the opportunity to show that to the client. Unfortunately, so many prospective clients out there look at the bottom line. There have been a number of occasions when we've come in much higher on a project than our competitors. Sometimes we've won them and sometimes we've lost them.

We've recently been discussing changing up how we estimate a project by breaking them up into 2 different stages (an idea I "borrowed" from a fellow developer). The first stage centers around building a "static" prototype with HTML/CSS. So no major programming would really be done in the first stage. Then the second stage would be bringing the prototype to life. So, this would mean that I would actually hold off on designing my database, etc. until after the client has approved the static prototype. I've heard this approach referred to as "Interface Driven Architecture." I'm still trying to wrap my brain around how to get a client to go for this approach because we couldn't truly estimate the second stage until the first stage has been completed. However, if we could go with this approach, we would have a much better handle on the actual time needed to build it out. We're still toying with the idea.

Then again, maybe I'm just so entrenched in "hours" it's difficult to think beyond that. However, I don't think that thinking in terms of "hours" is such a bad thing. I still believe most of us have a "range" that we find comfort in ... so I guess thinking "above" that range could potentially be a first step in the right direction ...

I love our business. We get to think, and get paid for it ... I think.

Well, there's my ten pesos.
# Posted By Steve Withington | 10/2/08 9:33 PM
@Steve, I've already tried your approach, but I run into two problems.

1. The client wanted a $$$ for the entire project, not step 1 is "$ x" and step 2 "we will see";

2. The client can't handle the "static prototype", 'cause it do not deliver real data interaction. In fact, I've had a project where the client can't say if everything was ok until we fed the database with <i>actual data</i> so they can compare to whatever they were using before.

Don't know if it's a "Brazilian problem" or if it's about everybody out there, but here, this approach doesn't worked, alone. But inside a given project I still do it to minimize the damages of changing input forms and things like that.
# Posted By Fernando S. Trevisan | 10/2/08 10:06 PM
@Steve, I think it's Clark Valberg and Hal Helms who use the term Interface Driven Architecture. It works best for mid sized projects. Small projects dn't need the overhead, and for really large projects, it isn't practical or valuable to create an entire interface upfront. It's better instead to take an agile approach with just enough design upfront and then creating the UI on a story by story basis. If you have a project with 1000 user stories, the client isn't going to be able to look at that all at once and get their head around how it'll work anyway.

I use a similar approach where neither I nor the client really knows how they want their app to function and it isn't that hard to sell. I simply say that like designing a house, there's architecture and then building. If they say they know exactly what they want and don't need architect then I say "great, we'll sit down for a morning and you describe all of the tasks people need to be able to complete, step by step with the default, alternate and error paths and I'll get you a quote". When they try they often realize they DON'T know what they want and that is when I'll recommend a discovery phase. If they DO know what they want, it gives me the info I need to fixed bid quote so we're good anyway.

@Fernando, If you want to try a step by step approach, one way to sell it is as follows. Let me work with you to create the highest value user stories. I can either work hourly or give you a fixed bid, but that'll assume only two rounds of revisions, within the spec, so if you end up doing more tweaking you may want to put some more money aside for that. Then we'll have really valuable stories live and making you money. From there we can look at the next stories, I'll give you an estimate or a bid and you can decide whether or not they are worth building. Fact is you are never "done" with an application - you just hit a point where the next stories aren't economically justifiable. By going agile you just make that explicit, get working software quicker and lower the risk of the project as the client can make lots of smaller go/no go decisions rather than one big one.
# Posted By Peter Bell | 10/2/08 11:43 PM
@Peter,
Yes, it's actually Clark (and Ben) who I "borrowed" the idea from.

You also bring up some interesting thoughts here. I'm going to have to bring some of this to my AE and "brain rain" on this a bit. I really like the Agile methodology and actually find myself blending Agile with Waterfall in my projects anyway.

Thanks for sharing some of your thoughts and ideas here.
# Posted By Steve Withington | 10/3/08 12:21 AM
though i don't do any consulting work... i've often thought of doing it... i can say that this is one of the things that keeps me out of the business... i would have no idea how to charge.

that being said, would it not be your responsibility to point out what is fluff and will cost a lot based on the time it would take?

one thing i have used when friends/family ask me about personal/business websites, i always tell them to go out and find something they like that does the things they want it to do... bring it back to me, and we can talk about how complex it is or what you want it to do different. i find this works pretty well for many reasons... the main being i'm not creative. i feel confident that i can do just about anything if i can see it though.

i would further suggest that it would help to know what they want to pay. i realize most folks wouldn't want to put that out there, as they would be afraid of being exploited. my suggestion for that would be having published pricing or at least provide a copy of contracts with itemized levels of complexity.

well... those are my thoughts.
# Posted By shag | 10/3/08 2:56 PM
I've worked freelance in IT since 1988, mainly for large companies. I have done both fixed price and hourly rate. Hourly rate for discrete projects (where there is a deliverable) always seem to be wrong to me but in my experience a large organisation finds it easier - it's just another headcount. They are not into calculating value for dollars spent - which is wrong - but it's just easier for them.
# Posted By richard | 10/4/08 9:28 AM
They had joined[url=http://www.game4power.com/]game4power[/url] the humans, elves, dwarves, and [url=http://www.game4power.com/]Buy Wow Gold[/url]dragons to decimate the demonic warriors and ghoulish beasts and push the[url=http://www.aocsale.com]aoc gold[/url] remnants back into [url=http://www.game4power.com/buy-gold/" target="_blank">http://www.game4power.com/buy-gold/]wow gold cheap[/url]the hellish beyond. Thousands [url=http://www.vipwarhammergold.com]warhammer gold[/url]had perished, but the alternative… The dragon mage snorted. In truth, [url=http://www.itemchannel.com]wow gold[/url]there had beenno alternative. Krasus waved [url=http://www.aion4gold.com]aion gold[/url]long, tapering fingers over the orb, summoning a vision of the orcs. The view[url=http://www.itemchannel.com]world of warcraft gold[/url]blurred momentarily, then revealed a mountainous, rocky [url=http://www.ppgold.com]wow gold cheap[/url]area further inland. A harsh land, but one still full of life and capable of [url=http://www.wowgoldone.com/]cheapest wow gold[/url]supporting the new colonists. Already, several stone [url=http://www.wowgoldone.com/][i]cheap wow gold[/i][/url]structures had risen in the main settlement, where the [url=http://www.vipaiongold.com]aion gold[/url]Warchief and one of[url=http://www.aionkina.com]aion kina[/url]the heroes of the war, Thrall, ruled. The high, rounded edifice [url=http://www.game4power.com/]Wow Gold [/url],[url=http://www.game4power.com/]www.game4power.com[/url]that served as his quarters was crude by the standards of any other race, but orcs had a propensity toward basics.
# Posted By buy wow gold | 6/25/09 8:31 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.