Agile Isn't Latin
What does it mean to Be Agile? It means you're always learning. It means you're very disciplined, you frequently engage your customer, your software is ~always~ working, your automated tests are ~always~ passing, and you interact with your entire team every day. Agile means a lot of different things, but there are some basics. Many of the wanna-be agile experts would dispute this, but not many of those respected in the field would.
What is Agile not?
It's not Latin for half-baked... or "skip anything that's difficult" or that "makes you uncomfortable." If comfort built great software, you'd be set... but building anything that's great is hard. That's why it's great!
Agile doesn't mean you skip design, or don't write docs. Never say "We're skipping that part! We're being Agile!" You're being lazy and blaming your sorry behaviour on Agile.
It's doesn't mean (and this is a quote from a particularly interesting character) "Agile says we have to please our customer, not our manager, so we're not telling him anything."
What I'm trying to say is this. If you're looking for the safest, easiest way to write software, stick with RUP or waterfall. RUP is designed to minimize risk. Waterfall gives you months, or years, to hide within the system. If you work for a large company that reorgs every few months, you might last your entire career by floating from team to team, and never have to do any real work.
Agile isn't a silver bullet for solving problems, but it does a really great job of exposing problems. Then you can fix them or accept them.
If you don't like seeing your own weaknesses or problems, then don't pursue Agile. But don't claim it when you're being lazy either.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)