4 ms·
This is why we have something called "time and materials billing". Charge by the day, and give clients an estimate for how long you reckon it will take. Bill
by notduncansmith 12y ago
This is why we have something called "time and materials billing". Charge by the day, and give clients an estimate for how long you reckon it will take. Bill by the day (not by the hour, read Thomas Ptacek's writing on this), and if things take longer than expected, let the client know as quickly as possible, and figure out your next move as a team. If they're asking for Complex Feature X, but really what they want is to satisfy Business Need Y, see if there's a simpler way to solve that problem. If they're dead-set on what they're asking for, politely inform them that it's going to take longer and cost more than you initially estimated, given facts A, B, and C (existing codebase is more complex than you thought, external API has some quirks, etc).
The key thing to remember is that what we (consultants) are not running a product business - we're a service business. We're not selling flour by the pound here. Clients will push for the product approach because it offers them the least risk: they know they will spend exactly X, and get exactly Y. The problem with this approach is twofold. First, it shifts all the risk onto us as consultants; second, it leaves either party unable to adapt to change without (potentially serious) personal cost. When changes happen (and they do: client decides a feature should work differently, timelines change for business reasons, etc), you and your client can't react to those changes because of the contract - unless you want to do some free work, which I can guarantee you don't.
Time and materials billing also encourages thorough work - in a fixed-rate project, it's a race to the finish so that you can keep as much of the bill as possible. This means taking shortcuts, exploiting technicalities in the contract, and other things that result in a sub-par final product (and business relationship). With T&M, you're motivated to make sure that features work exactly as intended, and the client is free to make as many changes as they like (at their expense of course).
Finally, if they complain "Oh, but you're just going to take longer to do everything so you can charge me more!", inform them that you have a long history of clients who have been very satisfied with your work, both in terms of final output and timeline. Testimonials are great here. If they push the issue, they don't trust you, and that's probably not going to lead to a good working relationship - proceed at your own risk.
I'm sorry that this doesn't answer your question - hopefully though, this advice will help keep you from running into similar situations in the future.
To weigh in on your current dilemma, It Depends (tm). If you value the relationship with the client and would like to continue working with them under the terms I outlined above, just swallow it and move on. If not, send them an invoice.