Have you ever heard that oil and water don’t mix? It’s pretty common knowledge that oil will float on top of water and the substances will not mix together. This simple chemistry is easy to demonstrate, and most of us learned it in elementary school science.
In the software development world, we also tend to assume that certain types of projects can’t be mixed together. Agile and Fixed Price Contracts for example. The reasons are probably already clear to you, but I’ll briefly mention some reasons they are in conflict.
Agile discourages nitpicking and micromanaging of developers, and constant tracking of hours and holding teams to a budget. Instead of committing to a set feature list for 6 months from now, Agile methods encourage us to only make commitments one iteration at a time, and then to be willing to completely change direction in the next iteration based on what we learned about our customer’s needs.
Most fixed price contracts rely on those types of interactions, and when the budget gets spent and deadlines draw near, teams are expected to work weekends for free in order to make up the time. And the client wants to know exactly what they are going to get, when they will get it, and they are used to holding consultant’s feet to the fire and shifting all risk to them.
Sounds like an impossible match doesn’t it? But there are a couple ways you can mix agile and fixed price, just like mixing oil and water.
The simplest way to mix oil and water is to simply stir it. Stir fast enough, and the oil and water will mix to some degree. Tell your development team that you are doing Agile, and micro manage their hours and make them work weekends, and you can sort of get Agile and fixed price to work together.
But as soon as you stop stirring, the oil and water separate again. And you can’t keep stirring forever. The oil and water is still unstable even when you stir it, and will still separate. Likewise, just saying you are Agile when really you are doing a traditional top down fixed price contract is not sustainable either.
It’s very hard to get oil and water to mix permanently, but if you apply an emulsifier, you can create a more stable solution that you don’t have to constantly stir. For example, vinaigrette dressings combine oil and vinegar by using an emulsifier like egg yolks, mustard, or honey. Sure, you will still have to shake the bottle occasionally, but you don’t have to constantly stir it throughout dinner.
Because Agile and Fixed Price Contracts don’t naturally fit together, we have to apply an emulsifier to them so we have at least a chance of success. Instead of egg yolks, our emulsifiers will be things like conservative estimation and strong communication techniques.
I’m looking forward to the webinar I’m doing in January on Fixed Price Agile and sharing what I’ve learned about doing profitable fixed price agile work. We’ll talk about strategies to emulsify two seemingly unmixable things, so that you are not constantly shaking down your teams and clients to try and achieve the impossible. The webinar is free, so I encourage you to sign up!
In the meantime, feel free to contact me at 434 996 5226 or Arin@AgilityFeat.com if I can be of assistance to your Agile teams.