Because you can’t predict the future.
Being agile is not about “doing agile things.” It’s not a checklist of activities, pair programming, stand-up meetings, or having a scrum board. Being agile is embracing a set of values, and demonstrating those values through your actions.
The values of agile development are defined within the Agile Manifesto:
Again, notice there’s no mention of planning poker, retros, TDD, or continuous integration. As developers, the things we do are not what makes us agile, but instead we are agile because of the reasons we do them.
Time for some introspection:
The provided answers are likely responses if your team behaves in a manner which embraces the values of agile. So why does it matter?
There are some universal truths that exist when it comes to software development (and in life):
- Things will change
- You won’t know everything upfront
- Users (people) are unpredictable
- Developers (people) are generally optimistic about what they can achieve short-term, and pessimistic about what they can achieve long-term
These truths are the reasons you should be agile. They represent known volatility in every [software] project you will undertake. Ignore these at your project’s own peril! Don’t be agile, flexible, and open to change, and let these wreak havoc on your ability to successfully drive projects to completion.
Asking “Why be agile?” is like asking, “Why be good at what you do?” So be agile; be good at what you do.