A number of years ago I took a client named Alex out to lunch. As is typical, I asked how we could be better. He paused for a moment; thought and delivered the best advice I've ever received from that question. "I don't care about your hours" was his response. He went on to explain how we always estimated in hours how long the work would take. While he appreciated having a metric to measure value. He didn't really have a frame of reference to truly validate the reference. If he knew what it took to build websites, he wouldn't be seeking companies like ours to do it for him. Moreover, because it was just an estimate, not only could he not be sure of the estimate, he was on the hook monetarily if we went over the estimate. What he needed was a solid price and a timeline for the features he requested. He'd judge if it was worth it him to have that feature and we could proceed.
The more I thought about that discussion, the more obvious it became that the time and materials estimate approach for website development is flawed. The more time a vendor spends building your site, the more money they make. At the very least, they're looking to come to expend every hour in that estimate or they've "left money on the table." For the vendor, the better they get at building your site, the less profitable they become for the same set of functionality. This is all counter to the customer's best interests...it promotes inefficiency.
That conversation with Alex transformed our business. We introduced fixed price feature quotes for websites instead of hourly time and materials estimates. Our customers benefit from budgets they can count on (and timelines too). We are encouraged to put together features that are reusable from site to site and continually improve them. Our customers are happier, we're more profitable and we build better sites.