Friday, March 5, 2010

Developers Mix and Match Agile Approaches

A pair of recent studies by leading dev industry research firms confirm what many developers long suspected: Agile programming methodologies are hot, and getting hotter.

According to the 2009 North American Development Survey, published in November 2009 by Evans Data Corp. (EDC), the number of developers making use of Agile programming techniques in some part of their work increased by 9 percent between fall 2008 and fall 2009. According to the survey, Agile and the related Scrum and eXtreme methodologies are the primary approach for 39 percent of responding developers, making Agile development the dominant methodology in North America. Waterfall development, by contrast, is the primary methodology of 16.5 percent of respondents.

Forrester Research Inc., in its January 2010 report, "Agile Development: Mainstream Adoption Has Changed Agility," found that up to 35 percent of respondents described their development process as Agile. Notably, Agile adoption is about equivalent in both larger and smaller development shops, indicating broad acceptance of the approach.

The size and scale of adoption surprises Dave West, senior analyst at Forrester and one of the authors of the January report.

"The numbers are pretty impressive across the board, and when talking to developers the numbers stay the same, across the size of company or industry, at something in the region of 30 percent," West explains. "The reason why this surprises me is that developers historically have always shunned process, believing that it's the province of managers, QA people or the business analyst."

Hyping Hybrid
The Forrester report urges dev shops to consider blending Agile and traditional programming methods in what Forrester calls a "hybrid approach." Forrester found that hybrid approaches are well suited to organizations that must fit Agile within broader release cycles, address governance and compliance requirements, and prioritize delivery of elements -- like documentation -- that go beyond software. According to Forrester's survey, more than one-third of Agile shops already employ a hybrid approach, deliberately mixing Agile with non-Agile methodologies.

The Forrester report also found that as dev teams advance in their Agile maturity, the amount of non-Agile activity tends to decrease, though not disappear entirely. The pattern reflects a pragmatic approach to Agile adoption, according to the study.

"Most teams are not adopting Scrum, eXtreme Programming or another specific Agile approach but are embracing Agile as an ethos or philosophy and cherry-picking the best bits from many different process models to develop a formula unique to their own situation," the authors wrote in the Forrester report.

EDC CEO Janel Garvin says hybrid approaches are very common in larger shops, which typically have relied on the waterfall method for complex projects. Garvin says that new software change and configuration management (SCCM) tools enable this approach by supporting both iterative and fully architected programming methods.

Going Hybrid

The Forrester Research Inc. report concludes that hybrid Agile approaches can enable faster, more flexible and higher-quality application development. To achieve these benefits, Forrester recommends:

Provide teams with the support to adopt the right Agile mix: Get an experienced Agile coach to help with decision making.Focus on measurement to help provide direction: Emphasize business value, measured progress, and quality and risk management.Start with team principles and build practices, then move on to adopt other practices: Building on core concepts enables additional practices associated with testing, measurement and planning down the road.Involve architecture teams in the process: Resist the temptation to focus only on issues of delivery, and engage architects immediately as active team members.

The EDC survey reveals widespread support for mixed Agile/non-Agile development. Nearly 60 percent of surveyed developers said they employ one or more aspects of Agile methodology in their work.

Ryan Martens is chief technology officer of Agile development solutions and consulting firm Rally Software Development Corp. He says hybrid approaches appeal to larger organizations because disparate teams are able to work on different time cycles. "The teams that are running Agile might do three or four cycles in comparison to a larger middleware team or back-end team that runs only one cycle," Martens explains.

A hybrid approach does pose some challenges. West notes that teams sometimes apply an Agile methodology only where it's easy to do so, rather than where it's really needed. And Martens points out that when teams don't fully understand what's going on, it can create adversarial situations.

"If you're intentional about what you're doing and share and let everybody understand and have awareness of what's going on, it's pretty easy to confront those issues," Martens says. "This doesn't have to be hard -- you just have to be intentional about it. But if you're unintentional about it, that's when things degrade into 'us versus them.'"

Microsoft Making Moves
According to Garvin, .NET developers are less likely to be devoted to Agile methodologies than their Java counterparts. "Even casual Java users are more likely to use the Agile model than .NET developers," Garvin says.

Microsoft is working to change that. Matt Nunn, Microsoft's group project manager for Visual Studio Team System, says Visual Studio 2010 is designed to give dev teams flexibility in adopting programming approaches. He singles out collaboration features for code sharing and peer review, as well as features like deep traceability and project monitoring and management resources.

CollabNet Acquires DanubeBruce Willis Thinks ‘Die Hard 5′ Will Shoot In 2011