Odpowiedź na to pytanie może wypełnić książkę.
Myślę, że jednym z głównych powodów jest to, że zwinny rozwój koncentruje się na wynikach. Zawsze koncentruje się na dostarczaniu dokładnie tego, co jest najpilniejsze tutaj i teraz.
Innym powodem jest to, że oparte na fabule metody planowania i szacowania stosowane przez zwinne procesy dają znacznie lepszą ocenę tego, co można dostarczyć i kiedy.
Dobrym przykładem skuteczności planowania opartego na fabule jest projekt, nad którym pracowałem. Przez kilka miesięcy (zanim przyjęliśmy zwinny rozwój) lider projektu wierzył, że możemy dostarczyć go na czas, a to było około 18 miesięcy od ostatecznego terminu. Wszyscy programiści mieli wrażenie, że to prawdopodobnie nierealne. Po rozpoczęciu sprawnego planowania lider projektu nadal optymistycznie ocenił sytuację. Ale dopiero po kilku sprintach kierownik projektu zdał sobie sprawę, że zespół po prostu nie był w stanie spełnić wszystkich wymagań w oczekiwanym czasie. A to już ponad 12 miesięcy od ostatecznego terminu.
Dzięki zwinnym praktykom rzeczywistość staje się o wiele wcześniejsza.
I na koniec, zwinne zespoły częściej stosują praktyki, które zapewniają lepszą jakość kodu, np. Programowanie testowe, częste refaktoryzacja, ciągła integracja, przegląd kodów równorzędnych / programowanie par itp. Nie to, że tradycyjne projekty oprogramowania zabraniają takich praktyk, po prostu nie skupiać się tak bardzo.