Friday, January 1, 2021

The Agile Manifesto has a wording problem which creates needless confusion

The Agile Manifesto which is canonically defined on the website agilemanifesto.org is unfortunately not worded properly. It is a source of unnecessary confusion, ambiguity and conundrum which could have been easily avoided.

As it stands, Agile Manifesto is a collection of following four aphorisms which try to define the intention behind the idea of Agile but the use of the term "over" gives ambiguous signals to the reader.

1. Individuals and interactions over processes and tools.

2. Working software over comprehensive documentation.

3. Customer collaboration over contract negotiation.

4. Responding to change over following a plan.

As you know, "over" is often used to convey "instead of" in common spoken English language.

For example, when someone says "I prefer X over Y", they mean to say that can do away with Y if they have X. But that's certainly not what was intended with the Agile statements!

A software firm is never going to throw away its processes and tools even after coming to realization that individual interaction is going to substantially benefit their projects. Similarly, no project is going to throw away their painstakingly created comprehensive documentation just because their software works with minimal flaws!

What's meant here is that at most, one factor is prioritized over the other. But it must still be emphasized that both factors are complementary to each other, they aren't exclusive and both bring their own value or benefits to the table. The word "over" also tends to convey that one is trying to be the enemy of other which is totally wrong. There may well be a few odd projects where comprehensive documentation is extremely crucial (for example, in case of API endpoints exposed by one system to another).

There may also be a situation where contract negotiation is extremely important (for example, service project contracts with SLAs where downtime needs to be precisely defined). The ability to respond quickly to a problem situation doesn't mean that you stop following a plan, that's just plain dumb!

In view of the above, I'd like to restate the Agile aphorisms more precisely as follows to convey their intended meaning better:

1. Individuals and interactions should be generally prioritized over processes and tools.

2. Working software should be generally prioritized over comprehensive documentation.

3. Customer collaboration should be generally prioritized over contract negotiation.

4. Responding to change should be generally prioritized over following a plan.

No comments:

Post a Comment