14
.
11
.
2023
8
.
11
.
2018
Ruby on Rails
Business

Time&materials vs fixed price - comparison of the popular cooperation models

Michał Krochecki
Chief Operations Officer

By reading this article, you will learn about the characteristics of the two most popular cooperation models with a software house. Sooner or later you will face a decision which will have an impact on the quality of your product, your budget, timeline and future planning. You will also learn how we do it and why. Enjoy the reading!

TIME&MATERIALS

With time&materials you pay only for the real, registered time spent on building the application. It is a flexible solution which allows you to make changes to the backlog, shift priorities, juggle with features, pivot, react accordingly to your current needs and the needs of your clients.

From Giphy

ESTIMATION

With the time&materials contract, there is a certain range of cost that you receive when it’s an application built from scratch that you need. You can choose different scenarios, shift the scope, choose an MVP approach and then iterate it, or demand a complete product.

FLEXIBILITY

As stated before, time&materials gives you the freedom to change, react quickly and adapt to the market in real time. You are in constant contact with a project manager and the team who can suggest a right course of action and support you with the planning of the new features. Time&materials helps in creating trust and strong bonds. Therefore you can expect a lot of flexibility in case of adding or removing developers from the team depending on the current condition of your business.

COST

A lot of people believe that when working on a time&materials basis, they won’t know the cost until the very last moment. It is not true. ** To avoid having uncertainties around, software houses give you estimations based on their know-how and experience.** Such a project is divided into stages/phases with most likely cost per each. On that stage, there is still time to make necessary modification to make the project most cost-effective.In case of the long-term development projects, the cooperation lasts for longer and it is fairly easy to plan the budget if you know how much you will pay for a full-time team.

When to use time and material?

  • when the project scope can change

  • you haven’t prepared:

    • a closed list of the requirements describing software you want to build:
    • product backlog in the form of User Stories
    • wireframes
    • workflows
    • graphic designs
    • integrations with external systems:

      • communication protocols to which your system will be connected (if they change during the development - you will receive deliverables which will reflect this specification.)
  • If you don’t want to pay the cap for unforeseen part of work and risks (which is added by the provider to the cost and schedule in fixed price, fixed scope, fixed time)

Fixed price

A fixed price contract is a contract in which a software house commits to deliver a piece of software or a complete application within a defined, unchangeable, therefore fixed budget. If the real cost exceeds the budget set in the contract, it’s not of the client’s concern.

from Giphy

ESTIMATION

If a software house finally decides to sign a fixed price contract, what may happen is that they add a safety buffer to the estimation as a precaution in case they encounter unexpected problems. It may increase the overall price to the point where a more flexible solution would be cheaper.

FLEXIBILITY

In case of the fixed price contract, any changes of the scope are endangering the agreed deadlines and budget, so a task once added to the scope needs to stay there. What happens if, after the development starts, a client decides to pivot? Fixed price makes it impossible to make any changes and even if a software house agrees to such an arrangement, be sure that the renegotiation will take time and the whole operation will be at risk.

COST

One is certain, the price won't change because it is in the contract, so it's good for the company's budget planning and stability. But when the application is delivered earlier than expected, you won’t get a refund.

When to use a fixed scope, fixed time, fixed price?

  • When you have thoroughly described a well-documented vision of the product you want to build.

  • When you have a very limited budget that by no means can be modified during the development.

  • When you have a short-term, fairly simple application to build.

Why we chose to use time&materials model at Visuality?

  • Onboarding, a team to a project, is cheaper for the client and at later stages, it is easier to scale-up the size of the team.

  • Our customers are having a business continuity and knowledge flow (https://en.wikipedia.org/wiki/Bus_factor)

  • The team greatly benefits from sharing challenges and ideas. It is proven that teamwork positively affects productivity and long-term motivation. Such circumstances are possible thanks to the time&materials cooperation model.

  • We were able to achieve very low staff rotation ratio because of company’s culture and high standards of work quality (e.g., professional project management, code reviewing, pair programming, investment days, etc.)

  • We can make sure that every engineer is dedicated to one project. We can witness the bond and engagement on both sides. Low turnover, dedicated developer, long-term project all that makes the cooperation smooth and pleasant.

  • We can manage the budget and time efficiently. The client pays only for the exact time spent on the development. The administration of sick-leaves, holidays, it’s all on us. Therefore the client can focus only on the product.

from Giphy

What do you think? Which model suits you more and why? Please let know in the comments or send me an email at m.krochecki@visuality.pl

Michał Krochecki
Chief Operations Officer

Check my Twitter

Check my Linkedin

Did you like it? 

Sign up To VIsuality newsletter

READ ALSO

GraphQL in Ruby on Rails: How to Extend Connections

14
.
11
.
2023
Cezary Kłos
Ruby on Rails
GraphQL
Backend
Tutorial

Tetris on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Backend
Frontend
Hotwire

EURUKO 2023 - here's what you've missed

14
.
11
.
2023
Michał Łęcicki
Ruby
Conferences

Easy introduction to Connection Pool in ruby

14
.
11
.
2023
Michał Łęcicki
Ruby on Rails
Backend
Ruby
Tutorial

When crazy ideas bring great time or how we organized our first Conference!

04
.
12
.
2023
Alexander Repnikov
Ruby on Rails
Conferences
Visuality

Stacey Matrix & Takeaways - why does your IT project suck?

02
.
10
.
2024
Wiktor De Witte
Project Management
Business

A simple guide to pessimistic locking in Rails

14
.
11
.
2023
Michał Łęcicki
Ruby on Rails
Backend
Ruby
Tutorial

Poltrax design - story of POLTRAX (part 3)

04
.
12
.
2023
Mateusz Wodyk
Startups
Business
Design

Writing Chrome Extensions Is (probably) Easier Than You Think

14
.
11
.
2023
Antoni Smoliński
Tutorial
Frontend
Backend

Bounded Context - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

The origin of Poltrax development - story of POLTRAX (part 2)

29
.
11
.
2023
Stanisław Zawadzki
Ruby on Rails
Startups
Business
Backend

Ruby Meetups in 2022 - Summary

14
.
11
.
2023
Michał Łęcicki
Ruby on Rails
Visuality
Conferences

Repository - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

Example Application - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

How to launch a successful startup - story of POLTRAX (part 1)

14
.
11
.
2023
Michał Piórkowski
Ruby on Rails
Startups
Business

How to use different git emails for different projects

14
.
11
.
2023
Michał Łęcicki
Backend
Tutorial

Aggregate - DDD in Ruby on Rails

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Domain-Driven Design
Backend
Tutorial

Visuality at wroc_love.rb 2022: It's back and it's good!

14
.
11
.
2023
Patryk Ptasiński
Ruby on Rails
Conferences
Ruby

Our journey to Event Storming

14
.
11
.
2023
Michał Łęcicki
Visuality
Event Storming

Should I use Active Record Callbacks?

14
.
11
.
2023
Mateusz Woźniczka
Ruby on Rails
Backend
Tutorial

How to rescue a transaction to roll back changes?

17
.
03
.
2024
Paweł Strzałkowski
Ruby on Rails
Backend
Ruby
Tutorial

Safe navigation operator '&.' vs '.try' in Rails

14
.
11
.
2023
Mateusz Woźniczka
Ruby on Rails
Backend
Ruby
Tutorial