Everything You Need to Know About the Time and Materials Engagement Model in Sofware Development
In the previous instalments of this series, we outlined the importance of choosing the right engagement model out of the three most common ones, and we looked in depth at the fixed price engagement model. Today we are going to consider in detail the time and materials engagement model, which is gaining speed in the world of fintech, blockchain technology, and web development.
What is Different about the Time and Materials Model?
With the time and materials engagement model, you pay for the time actually spent on the development of your product. There is no pre-determined budget, but rather iterations, during each of which you compensate the vendor for the resources used and decide whether to go on with the project or not. What does this mean in practice?
Time
There’s a shorter pre-development stage — you only need a basic outline of the product’s functionality, usually split up in user stories (we’ll look at that process later). After each iteration, you get a working product that gets expanded on and improved in the next iteration, and so on, until you decide the project is complete. There’s no fixed deadline, although there is an estimate to give you a very high-level idea of how long the project might take. This will change with every iteration.
Scope
You are very involved with the project — after each sprint, you receive a product and you give feedback. You can change requirements and their priority at any such point. This lets the project evolve in real time.
Cost
Budget predictability gives way to budget flexibility. You can’t have a fixed cost for the whole project, which makes budgeting difficult, but if it exceeds your limits, you can stop the project at any iteration and still have a functioning product. You also get a lower price per unit of work than you would with a fixed price contract. That is intended to compensate you for the aforementioned risk of running over the initial cost estimation.
How Does it Work?
1. Vision
You share your very high-level vision of the product with the vendor of your choice. Together, you decide what project management method you want to use — the time and materials engagement model is very well suited to all Agile practices, such as Scrum, Kanban, etc.
2. User stories
You work together to break the idea down into functional chunks, or user stories. A user story should be a separate functionality. For the sake of simplicity, let’s take as an example a mobile app for a bookstore. Example user stories could be creating a profile, buying books, paying by card, filtering books by genre, getting recommendations for similar books, getting recommendations based on your previous history, signing up for notifications for sales, etc.
3. Priority
You decide the priority of each user story. To continue with the example above, it’s essential for a bookstore to be able to sell books, but while giving readers recommendations based on their history would be nice, it’s not vital. So the “buy a book” user story would get top priority. However, the user can’t very well buy a book without creating a profile. So, you decide that the “create a profile” user story should be developed first, followed immediately by the “buy a book” user story.
4. Iterative development
The development team starts work on the decided upon user stories. They develop them completely — design, functionality, testing.
5. Sprint review
At the end of the iteration, you get a functional product — an app that lets users create a profile and buy a book. You review the finished user stories, give feedback, and prioritize again, setting up the next iteration. You pay for the time and materials spent on the development of the new functionality. (Note that at this point, and according to the terms laid out in your agreement with the vendor, you can decide to back out of the project — you still have a working product, which could be made nicer, but already delivers value.)
6. Rinse and repeat
(Keep in mind that the specifics of this process might differ depending on what methodology you chose to use, but the main ideas will still be the same.)
7. Project Finalization
When you decide that your product is already everything you wished it would be, you give the okay to finalize it.
When is the Time and Materials Model the Right Choice?
Big projects starting from scratch
If the solution you have in mind is complex and multi-faceted and will take longer than 3 months to develop, time and materials is a great choice. The regular communication allows you to stay on top of things, while the freedom to make changes ensures that your product will be up-to-date with the market environment and your business needs once it’s finished.
Unclear requirements
If you still have some kinks to work out, or if you don’t have the necessary expertise to figure out from the beginning how the final product needs to work, this model works perfectly. At the end of each iteration, you get a working product that you can examine and build upon. Any new ideas are welcome.
Projects in a dynamic field
Let’s be real, all projects fall under this category in the spheres of fintech, blockchain technology, and web development. However, if your project is small and simple and will take less than 3 months to complete, the fixed price model might be an option for you. Anything longer than that is certain to need modifications to meet the ever-evolving demands of the market before its completion date. Thus, time and materials is a great model to stay on top of a rapidly changing environment. It also works well in such situations because of the quicker time-to-market — it’s a race out there and having a functioning product to offer users in the fastest way possible is a huge advantage.
No rigid deadlines
For this engagement model to be viable, there can be no necessity of hitting an immovable deadline. By its very nature, it makes precise estimations impossible.
Inconsistent workflow
While the time and materials and dedicated team engagement models have very similar pros and cons, if you don’t know how busy the developers will have to be at any step of the way, this engagement model might be more sensible, as you will only pay for the time they spend actually working on the tasks.
Pros of the Time and Materials Engagement Model
- Flexibility. You can make changes at specified points throughout the project and have them implemented according to priority. That also means a more efficient process, since important features that emerged after the start of the project will be implemented before older but less essential requirements.
- Faster ROI. Your project spends less time in the pre-development stage because you don’t need to clarify every requirement in advance, and more time actually being developed. Iterations also mean that you can release a working version of the product much earlier, rather than wait until absolutely everything is finished.
- Focus on quality and business value. By definition, there’s no danger of the quality of your product suffering in a scramble to meet a deadline. Quality is king and constant feedback and re-evaluation make sure that your product will bring value. Seeing an actual product rather than imagining one makes it easier to determine if anything is superfluous, letting you drop it before it’s been worked on and paid for. You receive a lean solution that’s focused on your business needs and the market demands.
- Transparency and collaboration. You are involved with the project throughout. You get constant reports and updates and you have the opportunity to give feedback to the team, re-evaluate and re-prioritize user stories, nip misunderstandings in the bud, and add or drop requirements after every iteration.
- Suitable for Scrum, Kanban, and other similar Agile frameworks and methods. Scrum is our preferred framework at INDUSTRIA, as it provides great levels of efficiency and transparency. We assign each user story “points”, which represent how much risk is involved in estimating it. The points are based on Fibonacci’s numbers, which is meant to account for the fact that the longer a user story is estimated to take, the more risk there is that the estimation might be wrong. For example, if a developer thinks a task is going to take them 2 hours, it’s likely that small estimation is correct and the story gets 2 points. However, if a task is thought to take 10 hours, that means it’s more complex and therefore the estimation might be off, so the story gets 21 points. Each sprint has a set capacity for points (velocity), which lets the product owner decide which user stories to include in the sprint, according to priority, while keeping it doable for the team. This level of collaboration ensures smooth sailing between the supplier and the owner.
“Scrum lets us work closely with the client and lets them see the problems we handle and the effort we invest in solving them.”
Hristo Gatsinski, developer
- Low risk. No, you have no fixed budget. However, if at any time it becomes unreasonable to pay any more, you can back out of the project and still be left with a viable, functioning product. If necessary, you can also put a cap on the project and talk to your partner after every iteration about whether or not it’s still feasible to finish the project with the current requirements within that limit. If not, reprioritize your user stories. The time and materials engagement model gives you a great opportunity to fine-tune your budget and product in real time. Furthermore, you only pay for time spent working on the project, so there’s no risk of an overestimation resulting in a higher-than-necessary cost.
- Lower price per unit of work.
Cons of the Time and Materials Engagement Model
- No long-term budget planning. You start out with an estimation, but it’s just that — an educated, yet approximate guess. The time it actually takes to complete the project could end up being lower than the estimation, but considering the requirements will probably change and expand in the course of the work, there’s a higher chance of the final price being bigger than the initial estimation.
- No deadlines. Similar to the point above, you do get an estimation of when the project might end, but considering the fluid requirements, the time it takes to actually complete it might end up being shorter or longer.
- Necessary involvement. You need to dedicate actual time to the project — time for communication with the team, prioritizing user stories, and giving feedback. You don’t entirely outsource responsibility for its success and you remain very much a participant in the process.
Final Thoughts
The time and materials engagement model is very well suited for today’s dynamic market. The idea of not knowing exactly how much you’re going to have to pay might be intimidating, but keep in mind that you decide how far the project goes and what is included in it. Collaboration is key with this engagement model, so be open and honest with your partner — and expect the same from them — so that you can find the best solutions together.
If you don’t think the time and materials engagement model is the right one for you, check out our analysis of the fixed price engagement model and the dedicated team engagement model.
About INDUSTRIA
INDUSTRIA is an award-winning global consultancy and development firm that creates web, blockchain and fintech solutions, helping both companies and ecosystems significantly reduce the costs and complexity of doing business. Official partner of R3.
INDUSTRIA delivers quality fintech, blockchain technology, and web solutions based on the time and materials model. To talk to us about making your idea a reality, contact us here or follow the links below.