Agile development is no longer an alternative way to develop software. With the pace of technology adoption accelerating at a frenetic pace, agile is increasingly the only way to develop software. That is, if you want to stay in business.
Making Each Release A Non-Event
Agile software development essentially refers to an iterative, incremental software development process, as opposed to old-school "waterfall" methods that relied on long-term, upfront planning. Agile assumes that IT projects often fail, despite our best intentions. It's therefore a way to minimize the cost of failure by making the software development process highly responsive to change.
And while agile may once have been the focus of free-wheeling technology companies developing cutting-edge mobile or web applications, it has now gone mainstream. As Forrester analyst Diego Lo Giudice notes:
Within the modern applications era, regardless of whether new software applications are being developed and delivered for mobile, tablets, or the Web, the truly successful app-dev leaders will be those who focus on delivering constant value and incremental improvement to their business.
Importantly, the reasons for embracing agile are as much about boring old product stability as they are about increasing the speed of development, as I heard from an executive at one (very) large financial services company:
OH: "Product stability comes from releasing code more frequently, not less. You want each release to be a non-event, not a major launch."— Matt Asay (@mjasay) October 2, 2013
The Times They Are A-Changin'
This sort of iterative approach to software development has always been a good idea, but it's becoming critical as technological change and adoption increase, as Harvard Business Review showcases:
Such increased adoption, in turn, is arguably being driven by a much more flexible infrastructure, particularly in software. Open source software provides a huge pool of quality software from which developers can draw, while hardware accessible through the Infrastructure-as-a-Service (IaaS) clouds makes it trivial to scale up and out.
With this in mind, Synergy Research Group's newest data on IaaS adoption is interesting not so much because it demonstrates Amazon completely dominates the market, which we knew, but rather because it shows growth across all major cloud providers:
Whatever your provider, then, the infrastructure is in place to accelerate development.
Big Data Demands An Agile Approach
This is particularly important in new areas of exploration, like Big Data. As Gartner's research shows, enterprises are hell-bent on getting started with Big Data, but often don't really have much of a clue as to how to tackle these projects.
Big Data is new, and let's face it: most companies are likely going to fail as they start their projects. After all, it’s almost guaranteed that companies won’t know which data to capture, or how to leverage it, without trial and error. It therefore becomes critical to design for failure, with an agile approach that reduces the cost of failure, both in terms of time and money.
Could this be done in a traditional, waterfall-esque approach? Sure. And many companies will almost certainly approach Big Data and other projects in this way, because they simply don't know any better. But don't be that company, or that developer. Agile development isn't some holy grail that will solve all a developer's problems, but it is a savvy way to keep pace with technology adoption and to tackle large-scale development projects.
Lead image courtesy of Flickr user geishaboy500, CC 2.0