Agile is meant to be a collaborative process with a user or customer to discover the truly desired objective. Baked into agile is the notion of changing courses. A business that wants a deliverable by a certain date wants a contract - not Agile. How can a route be predictable look with a process that explicitly seeks to regularly change course.
We could also get into the theory of whether it is actually possible to say how long software will take at all. Business might bevroutineky asking for the impossible using the wrong methodology for what they think they want
Software with business utility is never "finished" unless the business is finished.
Trying to estimate when software is finished is tantamount to asking when the last light will be turned off forever in the warehouse.
I keep trying to tell PMs that around the release date is when developers are the most busy, including afterwards. It's not some magic deadline after which developers are no longer needed.
We could also get into the theory of whether it is actually possible to say how long software will take at all. Business might bevroutineky asking for the impossible using the wrong methodology for what they think they want