Skip to content
Dilawar Khan
Hire me
Menu

· 2 min read

Why I Don't Bill Hourly: Fixed Scope and Retainers Instead

Hourly billing rewards slow work and punishes good estimates. How fixed-scope proposals, retainers and dedicated developers work instead, and when each fits.

By Full-Stack Developer & Founder-CEO of DevKey Technologies

Early on I billed by the hour, like most freelancers. I stopped after a client asked me a fair question: "Why should I pay more because it took you longer?" I did not have a good answer. Five years later I still do not, so DevKey Technologies does not bill hourly.

What hourly billing does to a project

Hourly billing puts the client and the developer on opposite sides of every decision. The client wants fewer hours; the developer is paid for more of them. Nobody behaves badly on purpose, but the incentive leaks into everything: a bit less pressure to simplify, a bit more willingness to gold-plate. It also makes every invoice a surprise, and clients who get surprised stop trusting the estimates that follow.

The only thing hourly billing is good at is protecting the developer from vague scope. There is a better tool for that.

Fixed scope, with a real discovery phase

A fixed price only works if both sides know what is being built. So the first step is always discovery: a free call, then written questions, then (if the solution itself needs designing) a short paid discovery sprint that produces screens, a data model and a written scope.

From that scope we quote one price, paid against milestones. Each milestone ends with a demo you accept before the next payment. If you ask for something outside the scope, we write it up and quote it before building it. That is the whole system, and it is boring in the best way: nobody is surprised by an invoice.

We take the estimating risk. If we underestimate, that is our problem, and it makes us estimate carefully, which is the point.

Retainers for products that are alive

Once a product is live, fixed scope stops fitting. The work is a stream of improvements, bugs and small features, and nobody wants to write a proposal for each one. A monthly retainer covers it: an agreed number of development days each month, a shared priority list, demos as things ship, cancel with notice.

Dedicated developers for teams that need capacity

Some clients have their own product team and simply need more hands. For them a named developer, part-time or full-time, works inside their tools and reports to their lead. Billed monthly. It is the closest we get to hourly, and it works because the client is managing the work directly.

When fixed price is wrong

Honest list:

  • Research-style work where nobody can define the end state. Use a time-boxed discovery sprint.
  • Rescue work on a codebase nobody understands yet. Start with a paid review, then quote.
  • Clients who change their mind weekly. A retainer absorbs that better than a fixed scope, and we will say so.

What to ask any developer about pricing

Whatever model they use, ask: what happens when scope changes, what triggers each payment, and what do I own at the end. Clear answers to those three questions matter more than the rate.

Our answers are on the pricing page and the process page.

Questions this post answers

Is fixed-price software development risky for the developer?

Only if the scope is vague. With a discovery phase, a written scope and change control, fixed price shifts the estimating risk to the people best placed to carry it: the developers.

What if I don't know the scope yet?

Then a short paid discovery sprint comes first. It produces scope, screens, a data model and a fixed quote you can take anywhere, including to another developer.

Related pages: pricing · process

More from the blog

Have a project in mind?

Tell me what you want to build. You get a reply within a few hours, 7 days a week, with questions, an approach and next steps.

WhatsApp