The internet has revolutionized the world of software. Today's top-selling, pocket-sized gadgets don't have room for USB flash sticks, let alone full-on optical drives — and considering many laptops and desktops now ship sans disc-reading capability, releasing a full software product without digital distribution is like selling a car without wheels.
Because of this, the way developers make software needs to change, too. While methods such as traditional waterfall certainly have their uses, there's no question that Agile development is the way of the future. Here's why.
The Old Guard
The old-school way of making and releasing software simply doesn't mesh with how people consume it these days. The waterfall method's biggest issue is a lack of flexibility: According to the International Scrum Institute, it makes "moving backward" highly difficult and expensive, except at set points in the software development lifecycle (SDLC).
In the pre-internet days of software delivery, that rigidity was a good way to do business. When software was expected to be complete before hitting the gates (and especially when "patching" meant mailing discs to registered buyers), making sure every little thing was perfect before progressing to the next step saved time and money.
That's not the way we do things now. These changes happened for a lot of reasons, but the biggest one is that new channels became available. As soon as devs had the bandwidth and technology to release and repair software directly over the internet, Agile started looking like an enticing alternative.
Why Agile Works
Whether you're building for customers or clients, change requests are almost a given in the development world. Agile accounts for that, making it easier to fix or otherwise modify a given project relatively quickly.
Agile development has several flavors, each geared toward a different subindustry, development style, management style or guiding company. But the secret sauce in each one is a single word: increments.
The general rule here is that each cycle could result in a releasable product, with the assumption that more layers and features will be added as time goes on. This makes it a perfect match with the way people consume software. You can release with speed, update with regularity and have the best of all worlds in terms of time to market and quality.
This is downright wonderful. Security isn't a stop on a road map, and Agile allows developers to treat it as the full-time commitment it needs to be in today's information security climate. Agile also comes with a heavy focus on automation and allows for bug testing, iteration and incrementation throughout the SDLC, which results in speedy fixes when needed. If a live product is found to have a flaw that allows hackers to access sensitive data, developers don't need to waste time throwing away good work to get to its root.
Agile is definitely not without its conceptual flaws, though. It's looser and less meticulous than traditional methods, so it's difficult to know what a finished project will look like. Plus, it can leave in-progress apps susceptible to the dreaded "scope creep." But that unpredictability is a by-product of the flexibility that makes it so relevant to today's software distribution methods, so it's a relatively small price to pay.
There's a reason major companies like Microsoft appear to be turning toward Agile: It's the way of the future. While waterfall and related methodologies will always be around, there's a strong likelihood that they'll find themselves in the minority before long. For developers and the people who use their products, that's an undeniably good thing.
Photo Source: Flickr