The opening rule, match the model to the job you actually have, is the right one, and the management-load section is the part buyers most often underestimate. With a freelancer you become the project manager whether you planned to or not.
I would question one line, though: that fixed-price quotes punish change. They punish changes that were never priced as separate pieces of work. If the first engagement is one clearly defined problem with a written finish line, a change request becomes its own small problem with its own price, and nobody has to renegotiate the whole project.
That is how we run fixed-price work, and in practice it ends up close to your retainer model: continuity, but paid per finished outcome rather than per month of capacity. Your point about keeping code, hosting and deployment access in the client's name applies to all three models. Do you see clients moving between models as a product matures, agency first and retainer later?
Thanks, that's a fair correction, and a better way to put it. Fixed price only hurts when a change has nowhere to go. If the first piece of work is one problem with a written finish line, the change becomes its own small, priced piece of work. That's close to how I quote too: one defined problem first, then the next one.
On your question: I think the model usually follows the product's stage. Before launch the work is a defined build, so a fixed price fits. After launch it turns into a steady stream of small fixes and features, and that's where a retainer earns its place. An agency fits in between, when you suddenly need several people at once for a while.
The one thing that shouldn't change across those moves is ownership: code, hosting and accounts in the product owner's name, so switching models is a business decision, not a migration project.
The opening rule, match the model to the job you actually have, is the right one, and the management-load section is the part buyers most often underestimate. With a freelancer you become the project manager whether you planned to or not.
I would question one line, though: that fixed-price quotes punish change. They punish changes that were never priced as separate pieces of work. If the first engagement is one clearly defined problem with a written finish line, a change request becomes its own small problem with its own price, and nobody has to renegotiate the whole project.
That is how we run fixed-price work, and in practice it ends up close to your retainer model: continuity, but paid per finished outcome rather than per month of capacity. Your point about keeping code, hosting and deployment access in the client's name applies to all three models. Do you see clients moving between models as a product matures, agency first and retainer later?