Understanding Retainers in Software Development: A Comprehensive Guide

Software development retainers are increasingly popular due to their ability to provide clients with continuous support, flexibility and predictable costs. Here, we explore them in more detail.

What is a Retainer in Software Development?

A retainer in software development is an agreement between a client and a software development company or individual developer, whereby the client pays a predetermined fee, usually on a recurring basis (monthly, quarterly, etc.), to secure ongoing services. This payment guarantees the availability of the development team or resources for a specified number of hours or days during the agreed period of time. Retainers offer more flexibility allowing the client to utilise the developer's services as needed within the scope of the agreement on an ongoing basis without the commitment.

Key Aspects of a Retainer in Software Development

As with any contract, retainer agreements will vary from company to company in terms of what they offer and the terms and conditions that underpin them. However, here are some of the key aspects that tend to make up retainer agreements in software development -

The agreement itself - The retainer agreement itself covers the scope, duration, payment and of course, expectations from both parties.

Recurring payment structure - Clients pay a fixed fee for a set time period i.e. monthly or quarterly for ongoing development and/or support services which provides consistently predictable outgoings.

Scope of Work - The SoW will form part of the agreement and it specifically outlines the tasks or services that the client can access within the agreed upon hours or resources. This might be bug fixes, maintenance and general development work for example.

Flexibility - Retainers generally allow for easy adjustments to the scope of work or resources needed based on changing project requirements without the need to renegotiate the whole contract itself.

Mutual Commitment - Both parties make a time commitment, giving the client assurance of consistent developer availability and the developers benefiting from steady work and revenue.

Performance Tracking and Reporting - Regular reporting and performance & time tracking are often included to ensure that work meets expectations and aligns with agreed goals.

Types of Retainer

There are two core types of retainer agreements - project based and time based. As you might expect, a project based retainer is linked to a specific project ensuring dedicated resources are available for the duration and usually covering tasks such as updates, maintenance and feature enhancements. A time based retainer provides access to a development team for a set number of hours or days over a defined period, regardless of project scope and is generally used for ongoing support, maintenance or ongoing development requirements.

Category Project Based Retainer Monthly and Weekly Retainers
Definition Recurring fee for ongoing software development services tied to a specific project. Recurring fee for access to a development team's services for general tasks not tied to a specific project.
Purpose Ensures availability for updates, maintenance and general requirements of a defined project. Provides ongoing support, development, maintenance and bug fixes across various needs, not limited to one project.
Example Use Case Company launching a mobile app hires a team on retainer for updates, bug fixes and performance improvements during launch phase. Business uses retainer for ongoing website support, new features, bug fixes and security updates. Custom software application teams use it for regular maintenance and performance monitoring.
Scope Covers a predefined scope of work or a set number of hours specific to the project. Covers a set number of hours per month or week, applicable to a range of tasks and projects
Timeframe Usually has an endpoint once the project is delivered. Typically ongoing over a longer term, suitable for indefinite or constantly changing needs.
Flexibility Flexible within the scope of the project - focuses on project priorities. High flexibility across tasks, adaptable to changing client needs.
Financial Predictability Provides predictable costs for the duration of the project. Offers financial predictability and easier budgeting over weeks, months or even years
Resource Planning Helps with planning around a specific project timeline. Supports internal resource planning due to consistent engagement.
Renegotiation Needs Less frequent renegotiation during the life of the project. Reduced need for frequent renegotiation due to broader scope and time based structure.

Managing a Retainer

Managing a retainer agreement between the service provider and client (regardless of the type!) should be based around the same principles as any binding contract. To ensure both parties remain on good terms and aligned to the same goals the following steps can be taken -

Scope

Define the specific services covered under the retainer, such as website maintenance, security updates or general support and outline any limitations to prevent misunderstandings.

Communication

Maintain frequent communication between the client and the development team to discuss progress, avoid scope creep, address issues and adjust priorities as needed. It may be a good idea to agree on a structured communication plan initially.

Time tracking

Track time spent on retainer tasks and provide regular reports to the client to ensure transparency and accountability.

Flexibility

Allow for adjustments in the scope of work or priorities based on the client's evolving needs and pain points whilst adhering to the agreed retainer terms.

Check ins

Periodically review the effectiveness and success of the retainer arrangement, assess whether services are meeting client expectations and make any necessary adjustments.

Plan resourcing

Allocate the development team's resources in an efficient manner to balance retainer work with other projects, ensuring timely and high quality service delivery.

Be clear

Establish well defined terms regarding payment schedules, service levels and contract duration to align expectations and ensure a smooth working relationship.

Retainer Pricing Structure

The pricing model and structure of any retainer agreement will differ from provider to provider. Some companies charge a flat on going retainer fee, some will require to be paid in full upfront and some may require a lump sum upfront with a subsequent weekly or monthly fee depending on the retainer period. The pricing may also be determined in part by the number of retainer hours required - generally the lower the hours, the higher the cost. Below are some examples of pricing structures found within retainer agreements.

Retainer Type Description Usage Billing Structure
Hourly Retainer Clients purchase a block of hours to be used within a set period e.g. weekly or monthly. Time is logged against tasks as they are completed. Flexible allocation of time across tasks within a defined timeframe. Prepaid hours billed at an agreed hourly rate.
Project Based Retainer Tied to a specific ongoing project. Covers development, updates and support during the life of the project. Continuous work on a single project with evolving requirements. Fixed recurring fee over the project duration.
Support Retainer Covers predefined services such as bug fixes, minor enhancements or security updates. Recurring maintenance and support needs. Regular fee based on agreed services and frequency.
Tiered Retainer Offers service packages at different levels. Each tier includes specific services or hours. Clients can upgrade or downgrade as needed. Structured, scalable service levels to match changing client demands. Tier based monthly or quarterly fees.

There may also be further components to a development teams pricing. Additional or out of scope services may attract an additional fees. Specific types of work such as website design for example may not be covered under a retainer agreement and instead, require a separate proposal. If the hours of a retainer are exceeded during the period, some development companies may choose to charge the client at the standard or a discounted hourly rate to continue the work. Others may allow the client to use 'rolled over' or future hours to undertake the work.

To Finish

In conclusion, a retainer in software development is a strategic arrangement that benefits both clients and developers by establishing a reliable, ongoing partnership. This model provides clients with predictable costs, access to development resources and the flexibility to address evolving needs without constant renegotiation. For development teams, retainers ensure a steady workflow, enabling efficient resource allocation and fostering long-term relationships with clients. Whether through project-based, monthly or tiered retainers, this approach supports consistent service delivery, aligns development efforts with client goals and enhances overall project success, making it a valuable option in today's dynamic software development landscape.

See Also

Monthly retainer with Cool Code Company

Pros and cons of retainers in software development

Prefer to Call or Email Us?

If you dont like filling in these forms, or you would prefer to speak on the phone or via email then please use one of the below:

0115 772 2751
[email protected]

Follow us on Social Media

Follow us on Twitter, Facebook or LinkedIn to be kept up-to-date with Cool Code Company news and goings-on, or just to have a conversation with us.