3 ms·
It's impossible to talk about Agile vs. alternatives today because the fundamentals of Agile development are just the de facto way all software is developed now
by InclinedPlane 8y ago
It's impossible to talk about Agile vs. alternatives today because the fundamentals of Agile development are just the de facto way all software is developed now. Continuous integration, regular builds, iterative development cycles, etc. Even people who think they would be doing "Waterfall" today would do so still using these techniques.
The reason why Agile techniques were created was due to a serious crisis in software development. Projects were failing, lots of them, in ways and with a severity that few software projects today fail. At its core Agile is very simple, it's a system of hedges against failure:
Always have software that is in some sense in a usable state (builds, runs, passes smoke/BVT tests). This makes it very difficult to complete a project without anything to show for it.
Integrate early and often, don't wait until the last minute. Integrate skeleton frameworks together and then iteratively add features. This helps avoid having a huge amount of unknown risk due to integration failure at the end of a project, mitigating that risk translates to more schedule reliability and higher chances of project success.
Also, working iteratively helps ensure that progress is constantly being made rather than potentially wasting lots of dev-cycles on work that may not be ultimately viable.
Keep the "customers" in the loop. With a version of your software that actually runs they can keep up to speed on the latest features and capabilities as they are actually implemented. This makes it much more difficult to ship something that is wholly different from what the customer actually wants. This isn't a sure-fire recipe to avoid shipping the wrong thing, but it is one of the most reliable, achievable, and cheapest ways of doing so. It's certainly preferable to getting a room of lawyers and engineers to hammer out a contract that embeds a precise specification for the software to be built. Besides which, a lot of software today is not built on contract, it's built for the market.
The cult of Agile is a serious problem, and people who think that any management technique can actually protect them from not doing any management work is an even bigger problem. Agile's core problem is that it can serve as a conduit for micro-management and it can make it hard to sell doing research or expensive (but valuable), long-term investments. But the solution isn't to abandon the concept, the solution is to work better.