If you’re working with an agency or contractor to build a software project, you’re likely wondering “how much will this cost?”
Some teams may give you an exact quote, like $100k. They feel confident in their answer based on past experience and have a solid understanding of the skills needed to complete the project.
Other teams may be just as prepared, but instead give a range for their quote, like $80k to $120k. They’re capable, but also cautious, as they know it’s inherent in software development and design that scope can easily change. Especially if it’s a long term project, it’s responsible to assume that the company’s business plan will somewhat pivot, which in turn affects the scope of the software being created.
There are dozens of variables that can affect how projects are priced. An incomplete list includes:
As you can see, scoping a software project quickly becomes 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 and there are few unknowns.
- The project is a relatively short-term engagement, generally less than 2 months.
- The project has certain phases already completed such as branding or UX / UI designs, which allow teams to more accurately scope the development work.
- 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 microsites, HTML emails, and other smaller ancillary development projects.
- Discovery and Design Sprints, Software Audits, and any work related to scoping and software requirements gathering.
- Building an API or migrating a database.
Fixed Cost projects are advantageous for founders as they can begin an engagement with capped project costs, allowing them to fundraise or budget against these expenses. But this strategy comes with a few tradeoffs too. 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.
The reason agencies do this is to account for risk. 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 into the overall project cost and can better set expectations with the teams they partner with.
For example, if an agency was building a new marketing website for a startup going through a rebrand, a reasonable quote could be about $50,000 to rebuild 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. When comparing this to 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 frontend projects that are short-term, 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, but also inheriting some similarities from the Fixed Cost approach. Most agencies will quote cost range when using this strategy, as it’s understood that the price may change as the project is underway. It’s used to give an approximation of costs rather than an exact cost.
A Time and Materials approach is best used when:
- Scope and requirements are not fully known, or if there are multiple phases to a project that may depend on each other sequentially.
- 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 for the most 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 and instead of basing it on 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 is best for projects where:
- 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 not concerned about their budget and want only the best possible outcome.
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 wants to relieve the agency of any timeline or productivity concerns so that they can perform their best work. Agencies usually staff their best teams on Value-Based projects, so if choosing this model, you’ll likely work with the top designers, engineers, and even partners of the firm. Be prepared to pay double or triple what you might expect, and also negotiate. Most of startup success is luck and timing and not a secret formula, so any agency basing their pricing off value should have a strong reputation backing it.
A “Retainer” model is used in situations where a certain amount of work will be needed to complete an ongoing project, but it’s unknown how much time is involved or when it will be necessary to complete the work. Like a law or accounting firm, the agency and client can establish a weekly or monthly retainer that reflects the rough amount of 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 bug fixing and small requests.
- A project involves a series of miscellaneous tasks that are unspecific or ad-hoc.
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. It’s best for teams to plan as best as they can when any work will be performed, but know that some work will be reactive to the clients 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 frustrates their team more than when a client misrepresents the amount of capital they have budgeted for the project and can’t end up paying invoices. And from the client’s perspective, it’s important that agencies don’t change their pricing on projects or surprise the client with additional bills for work not discussed.
Money will always be a sensitive issue, especially if you’re a startup as opposed to a more established business. But by having early discussions about the benefits and risks of these strategies, teams can avoid painful conversations at a later date and more effectively manage expectations.