There are two fundamental ways any consultant can bill clients, with differences including warranty, scope definition, payment terms, and testing requirements.
Time and materials is the standard mode of operation where the client is billed for the time spent by the consultant. There is no warranty on time and materials work.
Fixed price is where the client is billed a fixed amount agreed between the client and the consultant. Fixed price contracts have the following conditions:
This set of conditions ensure a fair distribution of risk for both parties. It's perfectly fine to be unhappy about a feature and requesting some changes, but once approved, a piece of work shouldn't be worked on again for free.
The warranty process is similar to what happens at a restaurant; if you look carefully when your meal is served and realise it's not what you ordered or there's something wrong with it, it's perfectly fine to send it back. However once you've started to eat your burger, it's too late to send it back and ask it to be changed 🧑🍳
Figure: Testing the application in Staging is like tasting your meal