How to Incorporate Agile into Fixed-bid Software Consulting
Software development and consulting are creative domains although on a different level compared to marketing or arts. It deals with designing new tools and solving new problems, and this makes it hard to completely envision the process upfront . Just like a painting or a theater play, you can’t foresee all the small details and the things that will need rehearsal or rework until you get there.
This makes fixed-bid projects sound like a utopia. Although the project scope can be easily defined by the problem to be solved, atomic-level tasks can have a significant impact on the timing and budget. Agile, on the other hand, sounds like the best framework, since it has a flexible approach focusing on incremental development during each sprint.
Expectation Management
The first item to take into consideration when trying to fit the Agile approach into a fixed-bid contract is managing client expectations. The motivation for choosing a fixed arrangement is that it makes possible a total control over costs. If this is a critical pain point for your client, the only way to get more freedom that allows you to work in Agile sprints is to create a safety net and cap costs. Negotiate a maximum value for the worst-case scenario and let them know that the price will most likely be below that, but in the unlikely event of numerous changes and reworks it could reach that amount.
Risk Management
It’s not just expectations that need to be under control. Risks are also essential to take into consideration as soon as the project is defined.
In case of the fixed-bid approach, the vendor carries all the risks. For time and materials contracts, though, the Agile approach implies that the risks are on the buyer, since the vendor is covered. These conditions are the two extremes of the continuum, so the aim is to reach for a middle-ground solution that helps both parties balance their risks.
Otherwise, cost-related risks are just converted into uncertainties about the quality of the final product. In a fixed-bid project that is progressing beyond the original budget, the vendor’s team would have no more motivation to improve it, while the client would see no incentive to increase funding as long as their end of the contract was already met.
Agile Strategies
The Agile manifesto shows that teams adhering to this credo are focused on delivering top quality efficiently, without using the framework as an excuse to excessively charging the client. It is more about the fact that excellence takes time and precision. There are several strategies for building the Agile mindset into a fixed-bid contract.
Start with Agile, Grow into Fixed
For a project that is defined only at a high level, the fixed-bid approach is not feasible, since it increases the vendor’s risk too much. It would be possible for a recurring contract between a vendor and a client who work on similar projects with neatly defined requirement. Yet, generally it’s not realistic for new relationships.
The Agile approach is mostly rejected due to a lack of trust. If the vendor takes upon themselves some of the risks by offering extended consultancy, or even adopting a freemium model while building an MVP, it is a win-win scenario. The client will gain some trust, and the vendor will learn more about the project. This will help them define a clear timeline and a set of deliverables, which all can help to move into a fixed-bid contract later. The software consulting firm Itransition argues that every stage of a product’s development lifecycle needs to be treated differently, with Agile being mandatory in the project definition phase when uncertainty is high.
Function points
If the client has a firm position regarding their fixed-bid contract type or is forced by external factors, like regulatory compliance, the use of function points (FP) could help both parties to find a compromise. FP is the system which assigns weights based on data types, transactional types, and complexity. The measuring unit is FPs/$, and this works together with a well-defined back-log system.
Price Threshold with a Margin
Conversely, you can agree to a fixed bid, but to downsize your risk as a vendor, you can set a higher contract value, which could cover delays and reworks while offering the client the peace of mind of knowing what they will pay in the end.
Yet, to incorporate Agile into this model, the agreed price should become the overall budget, which is not supposed to be used entirely but acts more like an escrow account. In fact, the team will work following Agile and will only use as much of the budget as necessary. The remaining amount will either be reimbursed at the project delivery stage or be converted into a maintenance fee. To motivate the developers, this model also needs to include incentives for early delivery.
Budget Overruns
In a fixed-bid contract, a budget overrun can be considered a development team’s failure. However, if there were frequent changes of the scope, this could be in fact the client’s fault. There are a few simple strategies to prevent this:
● Include some flexibility in the contract when it comes to scope changes.
● Keep the customer informed. Negotiate adjustments as early as possible, not around a new release date.
● Always work with an MVP model in mind and plan iterations in line with the existing budget. You can add non-essential features if additional budget is offered.
Is It Achievable?
The Agile and fixed-bid models seem to be opposites, but they could be merged into a hybrid model of sharing risks between the developers and the client. It is in the client’s best interest to have a motivated team working on their project and making the necessary changes along the way without continually worrying about budget. Yet, it takes time and requires building confidence in the project participants.