Agile software development changed my life.
Agile is very simple, but simple ain't easy. Truly practicing Agile requires dealing with some heavy life questions. Agile gets a bad rap sometimes because people choose to practice it poorly instead of dealing with those.
Everything has an 'opportunity cost'. Choosing to do one thing means you can't do some others.
Tons of others, actually. Life is finite, so there's an infinity of things we won't be able to get to. We are defined at least as much, if not more, by what we choose not to do.
People don't realize with software, they're always asking for something that's never been done before. If you could just use WhatsApp or WordPress or Wikimedia, you'd do that. They want something customized. Maybe someone else has built this particular customization ("I want you to copy feature X"), but I've never done it before.
When you ask for one thing, you're also asking not to do all the other things, at least not right now.
It requires prioritization, which is a form of discipline. Because "not right now" may mean "never". We don't know whether there will be a "later".
Agile is a form of a daily "bucket list". God forbid, if I die tomorrow, what's the most important thing to get done today?
Jack Welch, the CEO of GE, had a saying: "Face reality." This is the essence of Agile. We have a limited number of days on this Earth, and we don't know the number.
Work on the most important thing first, and put the rest of it out of mind. That's Agile.
It's hella challenging to try to live my life that way. But the alternative is to die withimportant work unfinished. That sounds worse.