Budgeting in an Agile environment
I’m often part of conversations with clients and within the Agile community about how to accurately predict how much it costs to deliver a software product in an Agile environment. As a result of these discussions, I’d like to share some of my thoughts and provide some alternative practices that maintain focus on delivering the right results.
I am more than appreciative that budgeting in an Agile environment, where product delivery is incremental and the journey is shaped by feedback, can be difficult. This is especially the case when organisations are deep-rooted in fixed time, cost and scope – and there may be certain conditions where this is still very relevant. Nevertheless, if it’s end user value that you’re seeking (and why wouldn’t you be?) I’d encourage the following practices and mindsets as alternatives when considering putting a cost on a deliverable.
Rolling forecasts: Rather than trying to predict upfront costs for the entire deliverable (how often is this prediction truthful?), use rolling forecasts to update your budget as the work evolves and business value can be constantly determined. This allows you to track actual costs and adjust your budget based on the incremental delivery and feedback you collect. In doing so, your product teams and stakeholders will always focus on delivering true value, not a fixed linear checklist of requirements which may, or may not, bring any value.
Operational prioritisation: As discussed Agile methodologies focus on delivering value to the customer as quickly as possible. When budgeting within an Agile environment, it's important to prioritise features based on their value to the customer and document the return on investment. Understanding the return on investment at an organisational level and minimising conflicting priorities is critical to success. This can help you allocate your budget more effectively and ensure that you're delivering the most valuable features first.
Flexible budgets: Traditional budgets are often fixed cost and time but consider a more flexible approach. Similar to rolling forecasts, set a budget range rather than a fixed budget, and be prepared to adjust your budget as needed throughout the development to allow for the evolution of the product through incremental cycles. This is where the impact of Agile thrives, doing twice the work in half the time. Who knows, you might actually get to a stage in the lifecycle where you can save money by realising the product provides the end user value without the whole planned ‘scope’.
Don’t cut corners: Focus on the quality, not just a tick in the box. Prioritise speed to market and flexibility to inspect and adapt. Consider including an allowance for enhancing your end-to-end lifecycle that can facilitate this speed and flexibility. This could include architecture decisions to ensure that the evolution of the product is effortless, QA and testing practices that bring automation to confirm quality as early as possible, to ensure that you’re not cutting corners to save money in the short term. Remember that 75% of a working product in use with end users is better than a fully 100% deliverable sat in an unreleased state collecting cobwebs.
By following these best practices, you can budget correctly in an agile environment and ensure that your products are successful and deliver value to your customers.
Agile Practice Manager, Jumar