Ezi Boteach, VP of Products at Coverity, recently spoke with Keith Ward at Visual Studio Magazine on the topic of ‘Agile Gaining Steam’ in software development projects. It is a great discussion around some of the specifics of traditional waterfall development versus Agile and Ezi shares his thoughts on the best practices, and caveats, for organizations looking to adopt agile development technologies.
One of the Gartner statistics mentioned in the article surprised me a bit – “…agile techniques will be used in 80% of all software development projects.” Considering the fact that the Agile Manifesto was published just a little over 10 years ago, this rapid increase in adoption is very interesting. This is until you think about the following:
— Software development teams in most industries are under immense time-to-market pressures, hence the need to increase agility and speed.
— Regardless of whether it is Agile (i.e. the principles of the Agile Manifesto) or agile methods (such as short iterative development cycles), these techniques give you that ability to develop quickly.
The fact is that using techniques such as short iterations for development is not new. In the 1977 August edition of IEEE Computer Society publication, there is a mention of short, iterative development very similar to a Scrum:
“… we consider the design process as a recursive operation taking place in increments of, say, weeks. That is, after each increment, we aim at having a finished product… In other words, we consider the product as always, from the very first few weeks onward, to be in the hands of users. A version of the product is always finished and available for use.”
What is new, though, is the expectation that development tools should support agile development. The expectation is to bake in automated code testing tools such as static analysis and unit tests into short, iterative development processes. The benefits of discovering code problems early are valid regardless of the development method. Tighter integration of static analysis and code testing within Agile – now that’s new.