People talk about agile sprints, but how about an agile marathon?
Sprints are often held in a controlled environment like a stadium. Variables like temperature, wind, humidity don't change much over a short period of time. The finish line is visible in plain sight.
Anyone who has attempted a marathon knows that there's no such thing as a perfect race. Over 42.195 km, anything could happen. Temperature could soar or plunge. Aid stations could run out of water. You might drop a gel or two and hit the wall early. Worse, you eagerly tear open a pack of salt tablets and they fall into a drain, then legs begin to cramp.
Sometimes, things happen in your favour and there is a potential to hit a personal best. You're picked up by a pack of pacers and you draft towards faster splits. The sky opens and it rains.
As these things happen, you need to adapt your race strategy. When race condition is not in your favour, you go at a slower pace in order to complete. When everything is near to perfect, you go for personal best.
It takes as much responsiveness to change, if not more, in order to complete a marathon, so why not model a project like one?