One of the hardest things to figure out while running Cause of a Kind was how to scope different engagements. The entire agency business runs of fixed scopes, but they are incredibly risky and in the long run don't help the client, but hurt them through strained relationships...
Now we have three types of engagement:
We limit fixed scopes to well defined engagements. For example client has some designs and well defined business logic for the software.
We also limit these to things that can be built in ~4 - 6 weeks. This is about as far out as I feel comfortable gazing into a crystal ball.
Retainer works in the most cases. This is just straight hourly billing and works well for anything that requires a complete engagement from planning and architecture to design to development. It can support an agile workflow as new things are learned and requirements change.
The downfall to retainer is it can get very expensive in the long term. As an agency we can only trust a retainer so much to grow the business so you still rely on contractors and have unpredictability in your head. What if they just don't continue after this block?
Retainers are safe, but they are only so predictable. Our next option, subscription handles this nicely. If you have a long term development needs, at least one year in length this is the way to go.
For us we can offer more competitive rates as we can hire longer term employees. We also gain efficiency by having a single team truly learn your product. It's cheaper than trying to hire your own team and more flexible as we can swap in different engineering resources.
For example if you need to focus on a mobile app for a few months, we can bring in a react native engineer, then put it in maintenance mode for the next quarter as your goals change. We can move different talents around to fit your goals, then scale those down again.
This is a flex you wouldn't normally get when hiring a team or finding contractors. Our agency is designed for it, but most product organizations are not. Subscription allows agility in both product as well as the team building that product.