In the past, companies have typically budgeted for software projects by deciding what to do, getting a quote, and then allocating a budget. They they comission the project, it is completed, and then they company moves on to the next one. This is a waterfall approach and has been popular for decades.
Today, businesses are finding that agility and product thinking can give better results. An agile project doesn't start out with a clear scope, instead it has a loose direction and then the details are figured out along the way by creating software and seeing what customers think. The advantage of this is that customer feedback and real-world use determines what is built, which tends to lead to better software with better results for the business.
In order to implement agile development, you need agile budgets. Rather than agreeing a scope, price and timescale, a business agrees on desired outcomes and a budget for a time period. For example, one to three years. As the digital product is evolved, the business reviews the outcomes rather than checking it is on-time and on-budget.
We're running agile budgets on most of our digital product development efforts, and would recommend it because it is the only way to truly allow a product to be shaped by feedback, rather than an upfront plan. This results in software that creates more impact for the business and its' customers.