Software retainers

2024-04-06

In the data engineering consultancy I run with Joben, we engage our clients through postpaid retainers. We agree to work flexibly on client requirements in exchange for a monthly fee. I really like this model. I find that it greatly simplifies our engagements.

The alternatives

Joben's previous experience with software engagements was with fixed-price projects, where the shop and the client agree on a set price to pay for delivery of the project. The conventional wisdom around this now is that fixed-price for software is bad, but it's easy to think that it's good when the contracts haven't been inked. From what I hear, clients like fixed-price because they perceive a cap on their money out. That cap, regardless of it being a cap, might look high to the dev shop, so the dev shop bites. We're talking about some millions or maybe tens of millions of pesos. This isn't much to Western tech firms, but it looks like a payday to smaller Filipino shops.

It won't work, though. What effectively happens is that the dev shop assumes the entirety of the risk of software development, which is substantial. If fixed-price is combined with fixed-scope and fixed-time, the other two horsemen of project management, then the project will implode and take the finances of the dev shop with it. You simply cannot sanely fix both time and scope, that's not how software development works.

A somewhat better engagement model is variable price, where the shop charges the client based on "time and material" spent on the project. I say it's better because it at least respects the fundamental truth of software development, but it doesn't seem to work for us. Joben's experience is that the time and material model works well for regular shops with regular developers (relative to the local market), which we aren't. We work quickly, we only have a small team, and we try add a layer of indirection between our time and our income. Variable price would protect us from catastrophe, but we also want to do good work and be rewarded by our system for doing good work.

Retainers

Our professional retainer system is simple. We become available to work on your requirements in exchange for a predictable monthly fee.

I'm not going to claim this will work for all shops or for all clients, but this retainer system has some compelling advantages for our shop and our clients:

I recognize that there is still some level of trust and understanding required to engage with retainers effectively. Of course, both our shop and our clients need to feel that they're getting a great deal. That's why we usually include a clause that lets either party terminate the engagement for any reason with 30 days of advanced notice. It's based on my favorite idea from Covey's famous book on habits: we want every engagement to be a true win-win. If we can't achieve that, we shouldn't deal at all. It's a great way to do business.