If you’re working with an agency or contractor to build a software project, you’re likely wondering “How much will this cost?”
Some firms may give you an exact quote, like $100k. They feel confident based on past experience and have a solid understanding of the skills needed to complete the project.
Others may give a range for their quote, like $80k to $120k. These teams may be equally capable, just more cautious. Especially for a long-term project, they responsibly assume that the client’s business plan will somewhat pivot, which might impact original scope.
Estimating a software project is complex. That’s why we’ve outlined a few strategies (Fixed Cost, Time and Materials, Value-Based, and Retainers) to help simplify the process for clients working with agencies. These are heuristics you can use to determine what type of model best matches your upcoming project based on the type of work, your time and capital constraints, and your overall goals of the engagement.
Fixed Cost Projects
A “Fixed Cost” (also known as “Flat Cost”) strategy is when the price for the project doesn’t change and is “fixed". This method is used when:
- The requirements of the project are thoroughly documented with few unknowns.
- The project is a relatively short-term engagement, generally less than two months.
- The project has certain phases already completed, such as branding or UX / UI designs.
- The founder or company is operating on a tight budget and preventing run-away costs upfront is critical.
Fixed Cost projects work well in these situations mainly because of the lack of variability in scope. If a project already has complete user stories for every persona and thorough designs, it’s easier for engineering teams to document and organize the work into Sprints and assign timelines.
From our experience, projects that fit these descriptions include:
- Marketing websites built using a CMS or a static site generator.
- Software prototypes, smaller micro-sites, HTML emails, and other ancillary development projects.
- Discovery and Design Sprints, Software Audits, and any work related to scoping and software requirement planning.
- Building an API or migrating a database.
Fixed Cost projects are especially advantageous for founders as they can begin an engagement with capped project costs, allowing them to fundraise or budget against these expenses. However, this strategy does come with a few tradeoffs. Teams pay a small premium for locking in a price. Agencies and contractors usually quote Fixed Cost projects slightly higher (usually about 20%) than what they would normally charge for the same work if it were not a Fixed Cost. Even if all the requirements are gathered, the agency has enough experience to know that some of these will inevitably change. These modifications may cause a project to take more time, using the agency's resources for longer than expected. By quoting a slightly higher price, agencies build in this risk upfront to better set expectations with the clients they partner with.
For example, if an agency was building a new marketing website for a startup going through a re-brand, a reasonable quote could be about $50,000 to build the CMS with an open ended contract. However, the agency might quote $60,000 instead for a Fixed Cost, a 20% markup, because they know that the founder may want to add a few additional pages to the site in the final weeks. Or, the project may be under a tight deadline and it’s not possible to have all of the designs approved for the engineers before development work begins. In this case, the agency must start without having a complete picture of the desired website.
Using a Fixed Cost strategy is also an effective method to approach work that is more backend or middleware focused. While it’s true that a program’s code can be written many ways to achieve a similar outcome, it’s easier to measure the success of backend code for one simple reason: it either runs or it doesn’t. In frontend development, much more time can be invested into the polish of an application, and it’s often difficult to assess when a page is finished visually. Animations, gestures, transitions and micro-interactions between the user and the GUI can take dozens of software iterations to perfect, which puts pressure on any team working on a Fixed Cost. This pricing approach only makes sense for short-term frontend projects, generally less than two months in length, if they rely heavily on visuals and an interface. In contrast, the final result of backend focused work is rarely visual, so a Fixed Cost model is ideal for these engagements.
Time and Materials
Another popular strategy is to price projects based on what’s commonly known as “Time and Materials.” In this model, teams are paid for the amount of time, the number of people, and the costs that make up the work. In software development, the “materials” are usually negligible outside of costs for items like high quality fonts, hosting contracts, licenses to third party APIs, and other digital purchases.
These engagements traditionally have a flexible and open-ended cost model. Most agencies will quote an approximate cost range, as it’s understood that the price may change once the project is underway.
A Time and Materials approach is typically used when:
- Scope and requirements are not fully known, or if there are multiple project phases with sequential dependencies.
- Building a product that relies heavily on third party integrations, like external APIs, datasets, or plugins, or if your product is dependent on data that’s hard to access, like through web scraping.
- Building a product that depends significantly on a frontend interface for the user.
Time and Materials is a popular approach given the flexibility it assumes. Work can be added or subtracted to the project as requested, and the agency performing the work can schedule the project-specific phases in a more Agile method. As long as both teams give reasonable notice to any changes (two weeks is a general courtesy), these projects are best positioned to take advantage of the pivots that so often occur during product development.
Projects that are best for a Time and Materials approach include:
- Building an actual software product, like a web or mobile application that involves many phases.
- Adjusting a platform’s core infrastructure, such as performing a digital transformation.
- Projects where the client wants to optimize flexibility in their schedule.
The primary advantage of a Time and Materials approach is that it offers a transparent way to price software and is generally cheaper for the client in the long run. The costs are simply the amount of time needed to complete the project, coupled with a rate for the team involved.
A more complex but frequently used strategy is a “Value-Based” approach. In this model, the agency charges for their expertise instead of their time. The agency is strictly pricing their work based on the value they’re providing rather than the costs necessary to build it. In a sense, they’re answering the question “What is this worth to you?” instead of “What does this cost us to make?”
A Value-Based strategy can be used when:
- An outcome is desired and can be measured in a quantifiable way, so value is based on results.
- The work is not replicable by another agency or highly custom to the client.
- Specific services like branding and design are involved, where the raw costs are intangible and hard to measure.
- Clients are more concerned about the quality of the outcome than their budget.
Agencies use Value-Based billing for their most exclusive clients who are willing to pay a premium for quality service. In a sense, the client relieves the agency of any timeline or productivity concerns so they can perform top-tier work. Agencies usually staff their best teams on Value-Based projects, so you’ll likely work with the top designers, engineers, and even partners of the firm. Clients should be prepared to pay double or triple what you expect and negotiate. Most startup success is luck and timing rather than a secret formula, so any agency basing their pricing on value should have a strong reputation to back it.
A “Retainer” model is used in situations where a certain amount of work will be needed to complete an ongoing project, but timelines are unknown. Like a law or accounting firm, the agency and client can establish a weekly or monthly retainer that reflects the rough time commitment based on past experience or the expected output.
Retainers are best for clients and agencies when:
- A project has already been developed and launched, and a level of maintenance is needed for fixing bugs and small requests.
- A project involves a series of ad-hoc miscellaneous tasks.
In a Retainer model, hours or days usually don’t roll over if unused because the agency is reserving the time each month specifically for the client. Most retainers involve a mix of scheduled and unscheduled work, and it's expected that some work will be reactive to the client's needs.
Regardless of the approach taken, a healthy client and agency relationship is one that has honest, frequent, and upfront conversations about budgets. From the agency’s perspective, nothing is more frustrating than a client misrepresenting the amount of capital they have budgeted for the project and not being able to pay invoices. And from the client’s perspective, it’s important that agencies don’t surprise the client with pricing changes or additional bills for work not discussed.
Money will always be a sensitive issue, especially if you’re a less established business. But by having early discussions about the benefits and risks of pricing strategies, teams can more effectively manage expectations and avoid painful conversations at a later date.