What is the Time & Material contract and where did it come from in IT?
Most people would agree that paying for real work done is quite fair. It’s what the Time & Material contract gives you as it involves regularly paying for the work delivered. This approach grew out of the very specific nature of software development projects and the dynamically changing technology environment. Year after year the number of solutions to consider while composing the best tech-stack is remarkably increasing and digital products on their own are becoming more and more complex.
Today, maybe a part of the simplest developments can be delivered within accurately prepared estimates, but all of the more customized apps require comprehensive and sophisticated analysis. However, even when the stack is carefully picked and the best professionals did the approximate calculations it’s still impossible to fairly estimate all three things - the final cost of the software project, its scope, and duration.
Why can’t you plan everything in advance in software development?
Of course, years of experience in managing software projects allow us to evaluate resource needs more precisely, yet even with the help of Nostradamus we are not able to name all possible scenarios. A solid track record and an extensive background in app development do not make it much easier to predict all problems with various components or with integrating the software with external APIs. And it isn't always a big tech complication that ruins our carefully arranged plans and estimations. Just a usual change in requirements, which is like everyday routine especially within startup projects is enough.
When there’s only a shape of a product, setting a detailed specification means that the crucial decisions are being made in the very beginning.
Well, the question is whether we know enough about the nature of the project at the moment to establish a full spec. And even if the answer is yes, we may have another doubt; namely, how long it will take to do it. You need to be aware that when you build the app from scratch, you will waste a lot of time creating a highly advanced scope with all the required features and clearly defined tech solutions. For companies trying to cut the time-to-market and launch their innovative products before the competitors, it’s just too risky and pointless. Not to mention that after setting the plans, you’ll have to rigidly stick to them during the development process.
To be honest – it’s hardly doable, for startups in particular. Some of the ascertained requirements might need to be reformulated because the market environment changed, or the first users verified your ideas, or you gained new investors. Then you need to remember that every change in the development process costs - not only money but also precious time.
One and only Agile
In these dynamic conditions, within which we run software projects, what really gains in importance is flexibility. That’s the main reason why IT uses the Agile approach so widely as it’s based upon the assumption that project requirements evolve during the development process (it seems more natural, doesn't it?).
This method allows us to implement changes and improvements on an ongoing basis – you can add or remove features even on the more advanced stages of the project. What’s more, the works can start when we have only the business requirements and key features. The functionalities are being adjusted after their core is created and when we have the essential information.
Changes are just a natural part of Agile projects and the approach ensures the environment and proper toolset to retain full control. Usually, the development process is divided into short sprints after which developers deliver MVP. Each sprint is followed by testing and compatibility verified against business requirements. Successively, features or even the whole project can be redone or pivoted. With the progress of the work, you receive detailed reports and analyzes that verify the development team works.
Constant tracking of the outcome enables to improve the project on the go, rethink the initial assumptions and change direction if needed. This way agile mechanisms provide answers to two of the most significant problems in outsourcing IT projects and cooperation within Time and Material contracts. Firstly, they assure the high quality of the software products because they’re are well-tested and brought to perfection thanks to many iterations. Secondly, they support keeping the transparency and verifying the state of the works.
Time & Material contract – how to do it right?
Although the combo of the T&M billing and Agile approach is an ultimate solution for the development of software products, there are some challenges to face and risks to consider while implementing it.
- Pick the right software partner
Successful delivery in “the Agile + Time & Materials mix” demands high discipline in project management and constant monitoring of the workflow and effectiveness. A diligent analysis of potential contractors should start from checking the experience and proficiency of their PMs. Call them, verify their language skills, ask about crucial processes like managing risks, budget, scope, and backlog, make sure they’re able to lead the team and keep its members motivated.
It’s also a good idea to reach out and get to know the tools the potential contractor uses to track the progress and maintain efficient communication. But most of all try to validate the openness to solutions that influence running the project in an Agile environment like:
- supporting flexible project design and timeline,
- recognizing the benefit from open, frequent and face-to-face communication between business and technical staff,
- delivering functioning prototypes at key stages during development
- reviewing client performance and results regularly, with an eye on improving processes and methods when needed.
There are a bunch of other criteria to consider while looking for a reliable IT outsourcing partner but the comprehensive evaluation of vendors is the key factor in software development. A product of the highest quality that will fully meet your expectations can only be created by a software partner you trust and the team with a proven track record.
- Build frames for the project
Agile is great, the sprints are awesome, that’s it – let’s do it! But first I need to hear how much it’s going to cost?
Even though Agile and T&M contract fit the software project best, we are aware that cost must be somehow estimated (budgets, budgets, budgets) and the scope should be at least outlined to provide the frames for the development. To establish it, it’s always helpful to conduct a product design workshop and specify business requirements.
With workshops, tech-planning, and project analysis, your IT outsourcing partner is able to estimate the number of sprints (cycles) required to deliver the outcome by a particular team and pre-calculate the cost.
- Compose a proper team
Project teams should be created and matched to the project by their key competencies. In Agile, they need to be as small as possible in order to avoid any communication problems or excessive documentation – that allows developing high-quality software quickly. Team members are free to decide how to reach particular goals, both product- and time-wise.
- Engage and stay up-to-date
Even the best project management provided by your software development does not exempt you from engaging in the process of creating the solution. Agile approach as well as Time and Materials pricing require the client’s involvement, in particular, regular meetings and constant communication to monitor the progress and validate the direction of works. That might take more of your Product Owner's time but makes the cooperation transparent and ensures you will be always up-to-date with the state of the project.
What’s the deal with a Fixed Price contract?
The fixed-price contract is nothing more than a top-down price estimation for your digital project. As a Client, you decide, together with the chosen software partner, about the budget, limits, and other conditions under this pricing model. Requirements of the project need to be written down precisely before estimation will start to define the precise scope of work. So what exactly is so contentious about the fixed-price contract that most IT outsourcing companies reject it?
Well, by now (if you came this far in the article) you already know why preparing the exact price and time plans in software development is infeasible. To secure their interests, most vendors will assume some safety net so you shouldn’t be surprised that fixed quotes will be probably overestimated.
As fixed is the opposite of flexible you can be sure any changes in the initial scope will cost you both money and time. More serious modifications will require the renegotiation of the contract, meetings, quoting and futile documentation. So not only applying them translates to extending the duration of the project but also completing all the necessary formalities around it. Along with further changes, the cost of creating the app may exceed the budget several times and become uneconomical. So if you’re doomed to fixed price model - prepare as neatly as you can to make sure you will not run out of money in the middle of software development.
But the real headache of fixed-price projects is the difference in priorities of both sides – the client and the contractor. Although they might seem like common, they can also lead to a situation where the vendor wants to complete the project as effectively as possible in order to maximize its profit (which is dependant on spent man-hours). On the other hand, the client desires a product of the best quality and the time frame is not of his concern since it doesn’t drive any extra cost. Although they should be on the same page, their interest might mismatch in that kind of conditions. That’s the hidden cost of the fixed price model - the software development cooperation which should be based on true partnership turns into a tug-of-war and a blame-shifting show.
Ready for T&M?
A great part of Time and Materials skeptics find this billing method as a blank cheque and an extreme risk of losing control of the project and its budget. When charging hourly in software development, the successful delivery depends on fixing not the final budget or a detailed scope but the division of roles and responsibilities, the definition of done and priorities. The processes and methods should be designed to encourage a healthy, productive relationship between both parties and leading to mutual benefit and satisfaction. Although the collaboration is more time-absorbing for clients it pays off in a more refined product that meets their expectations and needs of final users.
Looking for a reliable software partner with battle-tested methods of running agile projects in Time & materials conditions? Check why you should choose Merix!