This blog contains reflections and thoughts on my work as a software engineer

tirsdag den 25. november 2008

Thoughts on a revised Agile Manifesto

Today I became aware that there is a movement in the Agile community which has been born out of concern that the Agile Manifesto basicly needs to be updated. The argument goes that core values was forgotten when the manifesto was announced and the manifesto needs to be updated or revised to fit the world of today.

I got curious - so I found an article by Brian Marick, one of the people who is one of the original signatories of the Agile Manifesto. He believes that there are several values such as "skill", "discipline" and "joy" are missing and needs to be clarified as core Agile values. A paragraph from the article explains why "joy" should be a core value:

"Now, I could say that a joyful employee is a productive employee, and that lack of joy on a project is like a canary keeling over in a coal mine: a sign that something big is wrong and you better pay attention. Maybe that’s true. I’d certainly like to believe it. But, fundamentally, I don’t care. I think joy is its own excuse. We deserve it. More to the point, those people around us deserve it. Their work shouldn’t suck any more than yours does, and you have it easily within your power to remove some suckitude."

I agree with him in every word - but the consequences of having the Agile Manifesto updated with terms that requires or expects joy from you in order for you and your team to be agile is a paradox. Agreeing that you are only doing things right when you are enjoying working on a project is like saying that you are failing Agile principles if you don't always have a good time earning your payroll - and that's where my warning signs kick in.

In another article James Shore expresses similar concerns - he calls it the decline of Agile. His concerns are clearly expressed in the following:

"The good Agile--the real Agile--it really works. I've seen it. My colleagues have seen it. It's been repeated hundreds of times, and some of those projects have succeeded for years. But those hundreds of successes will be drowned out by the thousands of failures"

Agile is hard. The rewards you get for being agile isn't something you earn just because it works well for your neighbour. You have to put in a lot of effort and be prepared to fail a lot before you "get it". This is by far the hardest part - to fall on your nose a lot in the beginning without loosing faith. The reason you do it anyway is because you believe in certain values. Agile is a set of values you basicly either can commit to or can’t commit to. The discussions in the community often circles around how organizations are implementing the values of Agile - the ”how to do Agile”. The ”what is Agile” is another discussion which should not be confused with the ”how do we succeed with Agile where I work”.

Why do you and I get out of bed and go to work every day? Ask yourself why - what is the core value that make you set your alarm clock to wake you up before you awake by yourself every morning? It's a simple question, but the answer isn't obvious and requires you to reflect upon your everyday life. The vision for me as a person to go to work every day is that I need to feel independant in order for me to function as a social, human being - so I have an education and go to work because the money I earn there helps me to get closer to that vision. I also believe in love and trust so when I found the one we got married because that was the way for us to make a vision we both share come true. What we do we do because we believe in something – we believe in visions and ideas and everything we do, how we react, the choices we make every day should be connected to core values which we believe in.

The Agile Manifesto is a vision - it describes a set of values, nothing more, nothing less. Discipline, joy etc. are not values as such - adressing discipline and joy when implementing Agile however helps you in making the vision of Agile come true in your work. We don't need to update the Agile Manifesto - we need better skilled, better trained, better educated evangelists who can communicate to the world how Agile is implemented because the values and principles behind Agile are generally accepted, I believe. The decline of Agile that James Shore is blogging about is a matter of people who made the choice of going Agile but don’t ask for help or are not being pushed in the right direction by experienced Agilists when they attempt to implement Agile for the first time. We should address those implementation details in terms of "how to do Agile", not "what is Agile". We don't need to devalue the current principles and guidelines of Agile by upgrading best-practices such as discipline and joy to something they are not – that would indeed be a clear violation of the Single Responsibility Principle, I believe ;o)

/ Regards K.

Ingen kommentarer: