So let's take Scrum, which is probably the face of Agile, whether its parents want it or not: Scrum doesn't work either for a lot of projects. Typically the implementors are blamed, but if a method consistently fails to be implemented correctly by a large segment of projects, I put the blame on the method myself.
Maybe the real problem with software is that it's become too unstable because of market forces and all these methods designed to tame that are just a band-aid. Releasing a new version of an OS yearly seems to be a pretty silly idea...
At the current level of complexity and churn, everything seems to deliver less than impressive results in the end, but people are kind of used to perpetual crappy software.
I have heard that sentiment many times but it doesn't really make sense to me.
If a doctor tells patients that going for a run a few times a week is a good way to increase their stamina, but most patients are too lazy or busy to do it, do you blame the method of running then?
Or do you mean that the method should be designed in a way that only companies who will succeed will adopt?
By your standard, is there any successful method to this area?
I've given actually a similar example regarding the "eat well and do sports" advice. It's not bad advice, it is correct, but it's not working for a large segment of the population, causing massive problems for health care and later (or now?) society.
Instead of cheap advice maybe the doctor should prescribe physical therapy with a specialist where the patient can be educated on the what and the how. Or the appropriate gov organisation should ban or heavily tax soft drinks and crappy foods and make good, healthy food affordable and available.
If a particular method is not compatible with duties and needs of a normal employed person with a familly, then that method constitues a bad advice for such person.
Yes, if a medical intervention largely fails in real-world practice, whether or not it is through non-compliance, that's a strike against it as an intervention. On which is more successful in practice, even if worse in the ideal case of perfect compliance, is a better intervention.
Similarly, a development methodology which fails with real world orgs, even if the failure is due to “incorrect” implementation, is a worse methodology than one which produces better results in practice.
Agile methods aren't really particularly usable across orgs for the same reason prior methods weren't; the Agile Manifesto states “individuals and interactions over processes and tools”, but the Agile community is all about processes and tools at the same level, if with different content, than the processes and tools the Manifesto was talking about. How do you prioritize individuals and interactions? The Agile literature doesn't really address this. (Lean, for instance, does through higher-level processes and tools by which teams establish ownership and control of the main processes and tools, which meta-processes are subject to themselves so that he team owns the meta-process as well as the lower-level process.)
Because it works for them. Right tool for the right job maybe.
I see companies trying to switch to Agile without even considering that they're applying it to the wrong projects, like big infrastructure ones. It's a buzz word and they have to go for it to look good. That costs.
They are able to deliver software in spite of waterfall rather than because of waterfall. They just keep injecting time and money until they 'declare' their projects to be complete.