Very early in my (computer software …) consulting career, I encountered books by Herman Holtz (nee: “Hermann Holz”) which I now suggest that you find and read. The title was “Consulting Contracts.” In particular, he discussed things that I successfully adapted and used. There was a “General Services Agreement (GSA)” umbrella contract, under which “Task Orders” were issued.
Each “Task Order” was very specific, and the first one always consisted of mapping out the next few ones. (And, if we never meet eye-to-eye, we part as friends but you pay for one.) This cycle was repeated as necessary – and the GSA told the client to expect that. (He couldn’t say he didn’t know. And, he never did.)
The GSA umbrella contract specified the means by which the client could review the work-product of any order, and it specified a warranty in great (and confining) detail. If I screwed-up the code, I had to fix it for free. (I rarely did.)
The GSA was a very important legal umbrella: it strictly defined and constrained the Task Order system: “details, details, details!”
What this system does, most of all, is to engage the client in the process. While you define the Task Orders. The client is not simply paying lots-of-money for an ill-defined conclusion. He is right in there with you. Including the negotiation of the next Task Order that he will actually agree to sign. (Yes, the GSA said that, and how, the Task Orders would be negotiated.)
The client was never out of the loop, nor, off the hook. Not only was he informed, but he had to make decisions by agreeing to mine. (And, I had to make decisions he would agree to!) Everything was documented.
I’m sure that Herr Hol(t)z’s books are now out-of-print, but they can surely still be found.
Many of my clients later commented that the “Task Order system” and the “GSA” was what made my company stand out. “Businesslike!” Well, I am very pleased of every single project that I ever completed – over, fully, thirty(!) years now – using it.