This is just a taste of the presentation that was given during the 2019 ICEAA Canada Workshop, September 17-18, 2019.
Agile development practices offer a more practical approach to software development in many cases. Agile development processes rely on development teams communicating with clients to deliver software that provides the most value for the money spent. This requires a mind shift on the part of both the developers and consumers of software to accept the reality that things will change over the course of the project.
At any given time, the agile development team is only working on the feature that the customer currently feels is the most valuable. Estimation is performed by the development team and is only focused on the feature(s) that is currently on deck. At the end of each iteration, the customer reviews the implementation to date and can reprioritize remaining features. At this level, estimating beyond the current feature doesn’t really make agile sense.
Unfortunately, the fact that estimation may not make sense for the agile team does not mean it doesn’t make sense for the business or the program office. These folks need to be able to make business decisions based on likely outcomes and known risks. The good news is that with a truly agile project, cost and schedule are fixed. There is an agile team of a certain size, iteration lengths are pre-determined, and the release cycle is fixed.
The estimation question is now “How much can the team fit into the next release and how many iterations or releases will it take to accomplish what they plan to accomplish?”