There’s no doubt that the Agile software development methodology has made a tremendous impact on software development, introducing incremental development practices that promise to bring applications to market faster with higher quality and fostering organizational changes, such as improved collaboration between business and development groups.
Yet, 2011 may be the year that Agile users have taken off their rose-colored glasses and stirred up an Agile backlash. Looking at the pains experienced in first Agile projects, they are re-evaluating their approaches and frequently mixing Agile and other development methodologies. We’ll look at the trends behind this mash-up of Agile hybridization and retrenching in this post.
In 2011, the number of Agile users decreased for the first time in four years in July’s SearchSoftwareQuality.com (SSQ) 2011 Agile ALM and Testing Survey of over 450 software professionals. Last year’s four-year Agile usage high of 57% dropped to 34% this year in the 2011 survey, while usage of waterfall development remained at about 50% year over year.
Out of context, these figures seem to put Agile in decline; but a broader view shows that Agile is interwoven into other methodologies and usage of Agile practices is growing.
All told, the majority of software organizations are using Agile practices, but not pure Agile. About 28% of SSQ survey respondents use a hybrid development methodology. Hybrid development typically refers to a mix of Agile and other development methodologies. Also, 11 percent of respondents use the Agile Unified Process (AUP), an Agile version of the Rational Unified Process (RUP). Add to this the 12% who use Lean software development, which includes many Agile processes.
More evidence that Agile has infiltrated most types of development comes from a recent Analysis.Net Research survey, sponsored by VersionOne, of 4,770 participants from 91 countries. Only 27% of respondents use one type of Agile only, while 35% mix Agile with other methodologies and 39% mix Agile flavors, like Scrum and AUP. A whopping 90% of respondents use Agile in some way.
Why aren’t the majority of Agile adopters using pure Agile? The short answer is that organizations have encountered organizational and functional problems in Agile projects and cherry-picked other methodologies’ practices to solve them.
Organizational problems have happened when organizations quickly adopted Agile development without having experienced Agile leaders on board or adequately training team members. Some found Agile’s requirement for frequent meetings untenable or impractical because team members were widely distributed or resistant to the Agile team approach. The Agile/Scrum practice of short iterations and modular development and business-development collaboration also put a strain on teams that had worked with longer deadlines and in relative isolation.
The SSQ 2010 and 2011 survey shows little change in these organizational challenges in Agile development. Resistance to change was a problem for 37% in 2010 and 2011; communication 47% in 2010 and 52% this year. Lack of training, management support and unrealistic expectations are chronic problems for about a third of Agile users.
Challenges in functional areas of Agile development remain, too. Software documentation has been difficult for years for over half of SSQ survey respondents. Others have ongoing problems with tool integration, (http://searchsoftwarequality.techtarget.com/tutorial/Scaling-Agile-Beating-challenges-in-large-scale-Agile-development) scaling Agile to large projects and organizations, automating testing and managing requirements.
While the above practical and organizational challenges can be common in all types of development, using Agile methods can exacerbate them. Documentation, in particular, is problematic in Agile because there’s little time to document when iterations are only weeks long. Also, some mistake Agile’s call for just enough documentation as license to do little or no documentation. Generally, inadequate documentation puts test and quality assurance teams at a disadvantage. Short iterations also spur management’s unrealistic expectations for feature delivery.
Once Agile became mainstream, with literally millions of software pros using it, it’s only natural that a period of adjustment has occurred. Modifications will continue to occur, due to a greater understanding and continuing advancement of Agile. Organizations will be mixing legacy and Agile methods, as well as utilizing new automated management and functional tools to streamline documentation, lifecycle management and more. They’re also adopting Agile-friendly practices, such as Test Driven Development, which dictates that the code and documentation are combined and are more accurate than documentation done the traditional way.
Agile’s basic principles – incremental and lightweight development, self-organizing teams, cross-functional communication and collaboration – are widely accepted and not being debated today. While some Agile purists may protest hybridization of the methodology, other Agile proponents think modification and change is an extension of the Agile way.