When looking to outsource a software development project, particularly for first-time outsourcers, the age-old question of what type of contract to enter into rears its head: fixed price or time and materials? What factors should you consider to ensure that you make the best decision for the project, the business, and the financial overlords?First, let’s briefly define each contract type:
What is a Fixed Price Contract?
When you sign up for a fixed price contract, you are agreeing to pay a defined amount of money for a defined scope of work to be completed in a defined period of time.
Sounds great huh? You know what you’re getting, when you’re getting it, and how much it will cost you but read on to see if the limitations of this model will work for you…
What Does Time and Materials Mean?
Time and materials contracts mean that you have setup a cooperative relationship with the software development consultants you hire, whereby you pay hourly for the expertise of a development team, and the flexibility to change or redirect the scope of work.
You mean I get to have Minions? (Insert evil laugh) – Not quite, but you do have a team of experts who have the ability to change direction to ensure you get what you need and not just what you originally asked for.
As with most things in life, there are benefits and costs to both options. I’m sure you’ve heard the horror stories from colleagues and others about outsourced projects in both models (positive stories don’t tend to get repeated as often). So how do you determine the model that’s right for your project?
Ask yourself the following basic questions:
- Can I fully define the scope of work?
- Is this a short-term project (1-2 months)?
- Do I need the flexibility to adapt to changing business requirements during the project?
- Do you have a fixed or limited budget?
- Do I want to be involved in or remove myself from the day to day running of the project?
Got your answers ready? Let’s look at the pros and cons of both models.
Going back to the definition of a fixed price contract: the idea of knowing what you’re getting, when you’re getting it, and how much it will cost you up front sounds perfect, right? But as a wise man, Benjamin Disraeli said, “Change is Inevitable, Change is Constant.” Now Benjamin might have been talking about the demise of the Ottoman Empire, but the same is true of any software development project: Change is Inevitable.
As the word fixed implies, in fixed price contracts there is a lack of flexibility to respond to changing market, business, or user needs without engaging in the process of issuing and approving change requests. As with any contract negotiation, it takes time and effort to scope the change and get both parties to agree on the work, price, and timeline. During this time, no change is happening. Developers are stuck waiting for the change request to be approved, progress slows, and time to market is delayed which can cause frustration on both sides.
Another less than enticing aspect of fixed price contracts is that pricing is frequently buffered (15-40%) to take into account the potential risks to the consulting company. Often, this results in you overpaying for products or features.
Also, during the discovery phase of fixed price projects, it can take a long time to fully define all requirements and processes before development work even begins, which is another progress slow down.
Minimal management overhead can be a big positive with fixed price outsourcing, freeing up your resources to work on other projects. On the other hand, minimal involvement can introduce communications risks—just because the requirement is documented does not mean that all parties will interpret it the same way. Without frequent interactions, these types of issues could go unnoticed until delivery day when you discover you didn’t get what you thought you paid for.
Fixed price contracts work well for very short-term projects where the requirements are well defined and unlikely to change. If that isn’t a good description of your project, there is an alternative…
Time and Materials
Change is Constant. The realization that this is a truth in software development has led to practices and methodologies, such as Agile, whose goals are to provide flexibility without onerous overhead. When looking at outsourcing software development projects in the context of these methodologies, time and materials contracts are the only way to go.
Time and materials means that you pay, generally by the hour, for the time and expertise of a developer or team of developers. The scope of work is not fixed. This doesn’t mean that you go into the project blind. General goals for the project should be defined. But it does mean that you don’t have to have every requirement and task documented before development starts.
You and the team of consultants work together to define a roadmap, estimate features, and prioritize and schedule work. A trust relationship develops amongst the group as complete transparency is encouraged throughout the project.
With frequent, often daily, interaction you will have a very accurate understanding of the status of the project and exactly how your money is being spent. You will get to control the priorities in real time. With a quick start to actual code development, you will be able to get to a minimum viable product (MVP) sooner. Your MVP can be used to gather feedback and adjust the scope to ensure you can stay current with changing user, market, and business needs.
This method of developing software does require significant involvement by you and/or your team in the process. It isn’t the hand off and wait formula used in fixed price projects. End dates and final budgets are not known at the beginning or even in the middle of the project, which can cause some stress with the financial overlords. However, you will know how much each feature costs, you won’t pay the 15-40% fixed price premium, and you can at any time decide to reduce the scope and, therefore, the cost.
Once trust is established through transparency and quality deliverables, the focus shifts from final timelines and budgets to amplifying business value from frequent incremental releases.
Time and materials contracts are a great option for projects where the scope of the project is large, not fully known, or is likely change. Time and materials also work well where you don’t have time to dedicate to a full discovery phase or you want to quickly get an MVP in front of customers.
In the software development world where Change is Constant, time and materials gives you the flexibility to react dynamically while still focusing on delivering a quality product.
If you’re still undecided about which model would work best in your particular situation, we at Fairway have experience in both and would be happy to offer some advice tailored to your project!