Die Antwort auf diese Frage könnte ein Buch füllen.
Ich denke, einer der Hauptgründe ist, dass sich die agile Entwicklung auf das Erbringbare konzentriert. Es geht immer darum, genau das zu liefern, was hier und jetzt am dringendsten ist.
Ein weiterer Grund ist, dass die handlungsbasierten Planungs- und Schätzungspraktiken, denen agile Prozesse folgen, eine weitaus bessere Einschätzung darüber liefern, was wann geliefert werden kann.
Ein gutes Beispiel für die Effektivität der geschichtenbasierten Planung ist ein Projekt, an dem ich gearbeitet habe. Einige Monate (bevor wir uns für die agile Entwicklung entschieden haben) glaubte der Projektleiter, dass wir pünktlich liefern könnten, und das waren ungefähr 18 Monate nach dem Abgabetermin. Alle Entwickler hatten das Gefühl, dass das wahrscheinlich unrealistisch war. Nach dem Start der agilen Planung hatte der Projektleiter noch eine optimistische Einschätzung der Situation. Aber erst nach ein paar Sprints stellte der Projektleiter fest, dass das Team einfach nicht in der Lage war, alle Anforderungen zur erwarteten Zeit zu erfüllen. Und das war jetzt noch mehr als 12 Monate von der Frist.
So machen agile Praktiken auch die Realität viel früher deutlich.
Und schließlich tendieren agile Teams dazu, häufiger Praktiken anzuwenden, die eine bessere Codequalität schaffen, z. B. testgetriebene Entwicklung, häufiges Refactoring, kontinuierliche Integration, Peer-Code-Überprüfung / Paarprogrammierung usw. Nicht, dass herkömmliche Softwareprojekte diese Praktiken verbieten, sie tendieren einfach dazu nicht so sehr im Fokus.