Learn IoT best practices in our Guide to IoT Development.

Subscribe to our blog to get the latest articles straight to your inbox.

If you’re looking to hire an outsourced software development team, you probably have a lot of questions. Some of the most common questions we hear include, “How long will this take?” and “How much will it cost?” These are perfectly reasonable questions — questions that you should be asking anyone who does contract work for you. After all, you know what you want and have a well-defined scope of what you need your software to do. 

There are essentially two approaches to pricing for software development — fixed-fee and time and materials. 

Let’s take a look at where a fixed-fee quote may have worked for you in the past.

When Fixed-Fee Contracts Work

Imagine you own a home and you have a roofer give you a quote for a new roof. The information includes a timeline, a start date, and a quote. This quote gives you details about a physical product, one whose entire scope is known and where changes are not likely to be made. 

The roofer has already inspected your roof to see if there is any damage that needs to be fixed, he knows which team is going to do the work, and he knows which shingles you would like used on your roof. At this point, the only thing likely to cause a change in the estimate is if you change your mind about which shingles you want. If that happens, the roofer will be able to easily give you a new quote.

Why Software is Different

But — as you may have guessed — building software is different. With software, the scope is much looser because changes to business processes, technical architecture, and user interface (to name a few) are very common. After you see the software, you will likely want to make some tweaks. Once you release a certain feature and test it with users, there’s a good chance that you will need to make some changes to improve the user experience. There is always something to be added or changed because a software product is never actually “finished.” 

So What is Software Like?

Building software is more like taking your car to a mechanic and telling the mechanic you need new brakes. While you’re getting new brakes, the mechanic finds out that your brakes have started to grind so you’ll need new rotors too because the old ones can’t be turned. Then they bring up some other maintenance that needs to be done, like an oil and filter change, tire rotation, and wheel alignment. Since you are doing all of this, the mechanic does a full inspection of your car and finds that something is leaking on to the alternator, but doesn’t know the source, and now the alternator needs to be replaced. 

You initially went to the mechanic for some routine maintenance and then found several other improvements that needed to be made to your car so that it can meet your needs. Software is like this because you’re going to learn more as the team progresses. You may find out in a user focus group that your main value proposition is only of auxiliary value to users. 

With a fixed-fee contract, the scope also has to be fixed. So if you find out that you need tweaks, you probably won’t get them included under a fixed-fee contract. Obviously, no one enjoys when they are on the receiving end of a contract like this, so what can be done to de-risk the project?

Perform a Strategy Sprint

Before a team starts building software, it is important that you work with your outsourced software development team to get on the same page. There is no way to identify every roadblock or change of circumstances ahead of time, but if everyone is on the same page with the goal of the project, that will greatly de-risk a project. In addition to this, the team can then make some prototypes and research which technologies you’ll need to use over the course of the project to help solidify the requirements.

Is There Ever a Time for Fixed-Fee Software Contracts?

The answer to this question is yes and no. If you a building out a solution and actively defining the workflows, user experience, main value proposition, etc…, then a fixed-fee contract will not meet your needs. However, if you simply need ongoing support, regular maintenance, or minor tweaks to workflows that do not redefine the user experience, then a fixed-fee contract is ideal for you. 

Building and maintaining software can be expensive, and there are many variables for you to consider. When you need to build new software, it is best to start out with a strategy sprint so that you have an idea of how much certain features will cost under ideal conditions. 

During the software development process, you’re going to learn a lot about what you actually need the software to do. You will need to make tradeoffs to get the most important features built within your budget. It’s best to do this with a time and materials contract where we work with you daily to ensure we are meeting your goals rather than a fixed-fee contract that will likely leave you unhappy with the end result.