I love to do software because it can make people's life better, solving real needs. When I make something and someone uses it gladly, that's priceless to me. That's why I want to make great software. Don't you?
So, our goal should always be to satisfy real needs. I think that's why endless projects make software developers get so tired, dropping their productivity and motivation to the floor. They find themselves coding and coding without ever seeing any user using they product! No feedback, no gratification, no improvement. How frustrating! Is there a way in which we can add real value to our users fast and frequently, even when working in large systems?
Agile software development is many times referred as a lazy process, without enough documentation and with no upfront design and architecture. How untrue is that. Since I started reading The Art of Agile Development, I started to realize how disciplined and professional your team is in an agile process (XP in the book). Besides that, the focus on adding value to the business frequently makes your users more involved on your project and satisfied by your software.
I found a little (5 min) but clear video that answers the question: Why does Agile Software Development pay?. I really recommend it to you as a brief introduction to agile and how it adds value to our users.