My friends who are not programmers or IT people ask me what’s up, what’s exciting in my mind & my life, and I don’t know what to say! “You wouldn’t understand” isn’t very appealing… so here is my attempt to explain why I’m madly, deeply, head-over-heels in love with a “software development methodology”.
So you might have noticed that I love life, and love and truth and beauty. I love the stuff that warms my heart, gives me hope, connects me with other people, brings peace and joy. And I hope you’ve noticed that I don’t mean unicorns farting rainbows here — I love sitting with someone who is hurting, in the cold rain, with puddles of smelly-stuff at our feet. I love working through hurts with my lovie, reaching for the light. I love life. And, to get to the point, Agile is life. Agile is love.
Agile is an approach to business that trusts that collaboration actually produces better results than coercion. That change is good because it means things can evolve and improve. That talking about mistakes and difficulties leads to their resolution. That people who love making programs will actually do a better job for the people who love making money if they’re given the tools they need to work, and if people are listening to each other.
How cool is that?!
I hear sometimes that good things (like money) come from carrots and sticks, from fear, from doing what you’re told. What I love about Agile is the way it uses beautiful things that we value (like collaboration, curiosity, trust, connection, problem-solving-pleasure) to create more beautiful things we value (like solved problems and friendship and more solved problems and money-stuff like houses).
The less-fuzzy side of Agile
I figure some Agile folks might be eye-rolling about this; if so, I can understand why. Agile doesn’t look so fuzzy in the real world. It’s about actual workday practices like
- fluid requirements Instead of deciding (or guessing) at requirements and documenting them way in advance and all at once, etching them in stone, Agile development expects requirements to change (improve!) all the time.
- active involvement of stakeholders The people who need the software say whether it’s “done” or not, for example.
- short iterations Biting off a chunk of work that folks can wrap their minds around, and is easy to evaluate the success of.
- pair programming Two sets of eyes on the code means better code. (And I could go on and on about the wonderfulness of collaboration.)
Anyway, if you’re curious to know more about Agile, here’s the original Agile manifesto, and here’s a Wikipedia article to get you started. And if you run a business with an IT department, and you want to make more money with more love, I could introduce you to some brilliant people… ^_^.