The "Oath of Non-Allegiance"
The Agile community of full of smart people, smart ideas, opinions, positions-- and differences. Substantial differences can lead to learning, but more often than not, differences can lead directly into heated conflict. Now an original signatory of the Agile Manifesto is offering an all-new declaration-- the 'Oath of Non-Allegiance'.
The Oath of Non-Allegiance
Alistair Cockburn, a signatory of the Agile Manifesto, is offering the following oath for your consideration, and signature.
Question: Can you commit to the following?
I promise not to exclude from consideration any idea based on its source, but to consider ideas across schools and heritages in order to find the ones that best suit the current situation.
Do you agree? Do you promise? Sign the Oath of Non-Allegiance here.
The Oath of Non-Allegiance is simple enough to understand. The real question is, why do we actually need something like this?
According to Alistair Cockburn, we do actually need something like this, because:
...this means the end of statements like “That’s no good – it’s not 'agile', 'object-oriented', 'pure' etc…”, but rather a discussion about whether the idea (agile, plan-driven impure whatever) works well in the conditions of the moment.
The Agile community is full of smart people and smart ideas. The history of our community incudes the astonishing growth in the use of Scrum. Scrum itself is a topic of great debate, and one can argue that Scrum itself has a certain polarizing quality to it. Debates about Scrum include what is actually Scrum, what is "Scrum-but", what is "canonical Scrum", and whether Scrum can scale to manage larger entities like departments, divisions and entire enterprises.
Recently, Kanban is gaining traction. Many in the Kanban 'camp' are pitching Kanban as an alternative-- even a replacement-- for Scrum. Some of the more hard-core members Scrum community members occasionally fire back.
This is just one of many semi-dogmatic debates that go on each and every day in the Agile community. Another common point of friction is a debate-- sometimes heated- about when and if the Project Management Institute can ever effectively integrate Agile ideas into the Project Management Book of Knowledge. Can they? Is there such a thing as an "Agile Project Manager" ? You can learn more about that ongoing debate by examining this InfoQ article on PMI-Agile.
In late 2009, things got a bit heated in certain sectors of the Agile community. Differences led to conflict and some real heat inside certain online groups and blogs. When things got ugly, Jean Tabaka called out this tendency towards nasty conflict escalation in her blog post "Escalation is Killing Agile-- Please Stop It. Some time later Tabaka, with help from Liz Keogh and Eric Willeke, created the Community of Thinkers declaration.
The Agile community is very much a headless beast, and a marketplace-- where disparate ideas are discussed and often utilized side-by-side. The Oath of Non-Allegiance from Alistair Cockburn is in some ways a working agreement, by and between those who subscribe to it.
Pure democracy is not very efficient at scale, and the Agile community is large and getting larger. There is a gap. What we might be seeing here is the emergence of a new, higher-order form of community organization.
In this emerging organization form, those with substantial informal authority in the community utilize it to clearly specify community-wide, opt-in working agreements that might gain traction and become de-facto guidance at scale.
While the Agile Manifesto continues to provide community guidance, many have called for changes in the Agile Manifesto, to reflect new realities. For example, many observers note that the Agile Manifesto calls for "Responding to change over following a plan", while the Manifesto itself has not changed at all in almost a decade of existence.
The Agile community is a large self-organizing system. Is it possible that statements like the Community of Thinkers and the Oath of Non-Allegiance have emerged to fill a community-wide "guidance gap"?
Let's discuss it. InfoQ invites your comments on this article.
I agree with the sentiment, but really Alistair...
Perhaps a more positive tone is better: "I promise to consider any idea regardless of source, across schools and heritages, in order to find the ones that best suit the current situation."
It's shame that we need such a statement, but I guess there are many dogmatic people out there. However, the real Agile people have been doing this for years.
What I do like is your statement: "many observers note that the Agile Manifesto calls for *Responding to change over following a plan*, while the Manifesto itself has not changed at all in almost a decade of existence".
Now that's thought-provoking!
Re: I agree with the sentiment, but really Alistair...
Re: I agree with the sentiment, but really Alistair...
Manifesto and Change
Not nearly enough is being said about Scrum values, another important foundation of Agile values overall. The [Oath of Non-Allegiance] in my view is actually simply 'shining a light' on the existing and defined Scrum values of Openness and Respect. The Oath supports both. The five Scrum values in total are: Openness, Respect, Courage, Focus, and Commitment. These are profoundly valuable as guidance.
I don't agree
Of course, I wouldn't do a pure apache, pure sun, pure oracle implementation if it isn't needed. But I wouldn't install postgresql besides an already running mysql, just because it has better geo-handling.
Of course, it's a smelly thing, when someone says, "that's not agile". Yet sometimes schools have much more to solve than the current situation in plain site.
Let me put this stuff in context: you maintain a program. You always add only the lines what are needed, and use the programming technique best fit to the requirements of that given task.
You'll end up with a totally f.ed up software in less time than you'd have imagined. And fellow programmers wouldn't understand it, nor you could hire new peoples easily.
Schools are important.
Somehow our profession has the tendency to explain why it wants back to chaos. If someone wants to go back to chaos, use ad-hoc solutions, write mindless code, please do it.
But don't agitate for it.
Updating the Manifesto?
InfoQ reported on her research here: www.infoq.com/news/2010/06/what-means-agile-survey
Not in disagreement - just adding a longer view.
If Alistar is trying to point us towards a better solution, I'm all for it - but I think this will remain my "Oath":
As a software engineer (or maybe as a human being?), if I must think about Absolute Truth, I promise to call it by its real name: Temporary.
(shamelessly lifted from Frank Herbert)
Re: I don't agree
- mixing-in inconsistent pieces
- having activities\decisions purporting to be of a school, but not following the correct tenets
Then yes, I've found it actively harmful to mix schools.
If a proposer is saying, let's look at another school for a problem's solution, because it may apply better in this case. Then this conscious changing of schools is likely to be positive.
I'd assume the latter is what Alistair Cockburn intended.
So, basically, Post-Agilism then
Re: I don't agree
, but rather a discussion about whether the idea (agile, plan-driven impure whatever) works well in the conditions of the moment
(Emphasis by me)
And also the comment:
If a proposer is saying, let's look at another school for a problem's solution,
If you are going to a per problem or a per moment basis, you're loosing the situation.
The reason I find this oath harmful is exactly because of this.
As an engineer, you will always have to make assumptions about the future. For that, you'll have to do allegiances that aren't the best approach on a per-problem basis, but embraces change.
I know I can always add a few lines of code without refactoring. I've seen functions with thousands of lines because of that.
You should know when you need to change them, and when you need to change them you'll be surely a bit late to change them, but don't think about on a per-situation basis. Don't be short-sighted.
Re: So, basically, Post-Agilism then
I believe it's not true that Agile came in a world where everyone followed plans as your IT Architect article suggests.
I remember as if it came in a world where everyone wished(!) that specification would precede coding, where everyone wished that one day, we could use plans, and so on. Agile was about the recognition that those days wouldn't come.
There are values however, which differentiated Agile from the chaotic reality, just like the waterfall had such. There's post-agile, for example, Lean is post-Agile, since it does not handle iterations, which cannot be done in certain situations.
So, what if we just don't want to go back to chaos and choose our values on a situation-basis (which means essentially, having small-enough decisions that we don't have values at all) to challenge the values themselves, trying to come up with more general ones, or trying to be specific about their limits rather than dropping them?