Recently a friend of mine asked me… “What does it mean to be Agile?” Without much thought, I went on talking about the good things about Agile… like Pair programming, TDD and Stand-ups and so on. Then he interrupted me… “No, I mean what does it mean to you to be Agile?” I paused and thought… At the end I don’t think I gave him a convincing answer. So therefore I’m writing this blog to tackle that exact question…
So what does it mean to be Agile? What does it mean to the developers and the decision makers (let’s call them “the business”) in the company?
After watching Brian Marick’s talk on “What’s missing from Agile manifesto?” the answer became very clear. To me as a developer, Agile should and would always mean one thing. EASE. After all that’s what we always want, don’t we? Make things easy for us. So how does Agile ease our burden as developers and improve our lives? Simply… by incorporating Agile practices into our daily routine and over time making them our second nature. When something becomes your second nature, there are two noticeable changes that begin to happen.
- It feels wrong to do it the other way. It feels like you wore your watch on the other hand. For me after practicing Agile for the past 3 years, writing code without a person next to me, or committing a change without a code review feels wrong. It feels wrong to commit code without writing a test first. So naturally developers will become more careful and aware when they are breaking habit.
- It frees your mind from having to think about the process and allows you to allocate your full attention to the problem you are trying to solve. Just like you don’t think about the process of stepping on the gas or braking while driving. You would pay a lot of attention to other vehicles around you but not the paddles.
I believe these changes lead to something magical from the business’s point of view. WORKING SOFTWARE. For the business, Agile means that the developers will deliver working software well tested and more importantly on time. So in an ideal world Agile brings about JOY for all involved parties. Happy developers who write good code and satisfied clients who are confident about using the software.
So what does it mean to me to be Agile? It means that I am a happy developer who writes the best possible piece of code at any given time… would you agree?