But even the Manifesto has some points that make it impractical in many circumstances.
To stick with a single example: is it safe to favor customer collaboration over contract negotiation when dealing with high budget projects? Changes in requirements, delays, reprioritizing in client's side, those are all things we know that may happen. How are we going to deal with them after you favored customer collaboration, and that collaboration doesn't exist anymore?
Agile requires Trust. But trust is a fluid thing, and we must cope with its fluctuations.
The client is cooperating? Good, let's get a bit liberal about some rules, but let's keep monitoring the situation. The team is mature enough to self-manage? Good, let the team manage itself, but keep an eye to see if things are still running smoothly as the time goes by.
The biggest problem of Agile is that it takes Trust for granted and assumes that every single stakeholder wants the project to succeed, and shares the exact same definition of success.
Yes, but note that the client is inside the circle, not an external force, in Agile.
> Changes in requirements, delays, reprioritizing in client's side, those are all things we know that may happen.
Yes, that is specifically what the point deals with, on both sides. Favoring contract negotiation over collaboration is a very poor way of dealing with those things.
(The X over Y statements in the Manifesto are not X instead of Y, but Y must be centered on supporting X; contract negotiation is necessary, but the terms must be framed to support collaboration rather than impede it by being inflexible for the kinds of things that are known to be likely to change over the time of the project development.)
> How are we going to deal with them after you favored customer collaboration, and that collaboration doesn't exist anymore?
If the need for collaboration was centered in contract negotiation, then that will be addressed.
> The biggest problem of Agile is that it takes Trust for granted
The biggest problem (though far from only) problem of Agile is that the authors of the Manifesto underestimated the degree to which people would misread “over” as “instead of”, even given an explicit admonition that that reading was incorrect, making the Manifesto terse and catchy, but ineffective in communicating it's core ideas.
Indeed, and this is one of the points Agile gets furthest from real world.
Anecdote: I've worked for an average-sized bank with users who were cooperative but not that much. One day we were faced by an urgent legal requirement and the bank had to choose: either to halt operations or to adapt the software, otherwise our equivalent of a CFO would be arrested. The customer became an integral part of the team, we had extremely fast iterations and that was my first Agile project, and I didn't know it because I was going to hear first time about Agile only three years after that.
As soon as the legal requirement was met, things got back to normal.
That's what I talk about methodologies having to subject themselves to the environment. Agilists seem to dream about inverting things in this regard.
> The biggest problem (though far from only) problem of Agile is that the authors of the Manifesto underestimated the degree to which people would misread “over” as “instead of”, even given an explicit admonition that that reading was incorrect, making the Manifesto terse and catchy, but ineffective in communicating it's core ideas
I agree, but even avoiding the "instead of" interpretation, I believe the ideas in the Manifesto are only actionable under special conditions.
Each project is a different case and demands a different combination of agile/non-agile variables, it all depends on the environment it presents (customer behavior, team's maturity, project complexity etc)
It's one of the parts the Manifesto gets most right about the real world.
> That's what I talk about methodologies having to subject themselves to the environment. Agilists seem to dream about inverting things in this regard.
I don't know “Agilists” in any general sense, I do know that adapting methodology to the specific (and shifting over time on a single project/product) combination of team, context, and task is the central focus of the Agile Manifesto.
By all means collaborate, but put it in a contract too.
The key is understanding the upfront spec, while a necessary stating point, is almost certainly wrong, maybe fundamentally so. So how are renegotiations handled?
This is in itself a major point. Managers trying to put scrum on everything. This is my main hope for scrum passing away. I have seen it now several times companies deciding to use scrum for research projects, and after a year they all realize how bad of an idea that is.
On the other hand so far I haven't worked for a single company that actually did scrum (despite claiming it). They all started by "adjusting the process" and removing the scrum master. Sure. You totally understood how this works.
A lot of the criticism seems to form around the fact that people actually develop processes around agile, even though agile discourages processes. (And that those processes in the end become empty rituals that hinder development more than support it)
But couldn't this actually be a sign that people in fact need processes to get some kind of routine and system into their work?
> Individuals and interactions over processes and tools
> Working software over comprehensive documentation
> Customer collaboration over contract negotiation
> Responding to change over following a plan