More Enterprises Lean Toward Hybrid Agile Development

Proponents of Agile and lean software development methodologies say they are becoming more popular than traditional sequential methods in corporate app-dev groups, but implementation of a pure Agile method is still a rarity in the enterprise.

"The movement to Agile is fundamentally changing the way in which organizations build software,” said says Forrester Research analyst Dave West, in a keynote address during the recent HP Virtual Conference 2009. “In situations where the requirements and the technology are far from understood -- where there’s a lack of clarity -- processes become more and more complicated. So a traditional approach, which requires planning, can’t possibly work."


Enter Agile, which is gaining in popularity "in direct response to [a] lack of understanding that manifests itself in large projects," West said. Agile software development methodologies (also known as lightweight or lean methods) differ from traditional approaches, such as the waterfall method, in a number of ways. They’re based on just a few key rules and practices, all of which are relatively easy to follow. They emphasize individuals and interactions over processes, and working software over documentation.

Small focused teams, closer ongoing involvement of stake holders, and an iterative delivery process are fast becoming the order of the day. According to a recent Forrester survey of 100 senior managers, who were asked to list their primary software development model, 30 percent said that they mainly used Agile methods, 38 percent reported using iterative methods, and 32 percent reported using sequential methods, such as waterfall. By comparison, a similar survey found that only 8 to 10 percent of respondents mainly used Agile methods to delivery their software just two years earlier, West said.

Further analysis, however, reveals a more complex picture, West said. "When you ask them in a little bit more detail what that really means—when you pull back the covers—you find that there’s no one particular approach…" he said. "It might me an Agile-driven approach, but it’s actually a combination or hybrid… This is great news… It shows that developers pick the appropriate tools to solve the right problem, which means that we’re moving away from this rigorous, sequential, defined, documented process to something that’s a little bit more fluid, in direct response to business need."

SCRUM is currently the most popular Agile process, West said. But that process is being augmented with practices from another Agile method -- Extreme Programming (XP) -- with things like test-driven development and pair programming techniques for building software to solve particular problems.

Scrum is an Agile framework that structures software development into cycles of work called “sprints." Sprints are iterations of work lasting two to four weeks. During each sprint, dev teams work from a prioritized list of customer requirements, called “user stories,” which helps to ensure that the features developed first are of the highest value to the customer.

"I think SCRUM has become so popular because… it provides a very clear set of guidelines on how you can organize a self-managed, self-directed team, and really create one of these high-performance teams."

XP, which has roots in the Smalltalk community, is a system of software development practices that emphasizes such principles as collective code ownership, pair programming, and frequent testing and feedback.

"We also see organizations delivering software more frequently," West said. "Continuous integration and build is becoming, perhaps, the most important single practice as they try to get to this value faster and more frequently… And we’re seeing a lot more use of automated testing tools."

Scaled Agile, however, has a different flavor, West said. "When we see organizations trying to cross the chasm, trying to scale Agile development, we see Agile changing," he said. "We see additions in the process area. We see the use of ALM and the use of tools to really help to scale the process…"

Scaled Agile at the release level, West said, involves a mix of both lightweight methods and traditional approaches. "Even though all the teams are following Agile methods, you may still see waterfall processes being followed," he said. "Particularly in the areas of much misunderstanding, often the Agile teams focus on those, and then the integration is done using traditional approaches."

Al Hilwa, program director in IDC’s application development software group, has also seen the emergence of this methodological hybridization.

"Most serious application development projects requiring a team of more than one developer use some aspects and techniques that can be described as Agile," he said. "You will be hard-pressed today to find a development team or project anywhere that doesn’t believe in the value of iterating often, checking with users regularly and repeatedly to ensure that requirements are being met, decomposing the problem into loosely coupled and semi-independent small parts that small teams can work on relatively independently, shipping incrementally and often, and getting the code out to users as early as possible even when it’s not fully baked. Consequently, very few development teams stick to a hard methodology; most mix and match and imbue their development with Scrum and XP techniques."


Reader Comments:

Mon, Nov 23, 2009 Mahesh Singh Cupertino, CA

I found your article extremely interesting and in resonance with our own experience of medium and large organizations that are trying to retain the benefits of traditional methods in planning and documentation and still be nimble-footed in trying to meet the changing requirements of the business/ customer. Numerous feature requests specifically demand a ‘hybrid’ approach where an overall project plan can be drawn up and tracked against, while being able to work with an Agile/ Scrum method within the development lifecycle. Additionally, management wants to measure performance of all their projects - whether Agile or Sequential or Hybrid - in a uniform way, whether on quality or earned value. Hybrid or Scaled Agile certainly seems to reflect the current thinking; we will continue to engage with customers and practitioners to see how it evolves over the years. Mahesh www.digiteproductmanagement.blogspot.com

Sun, Nov 15, 2009 ExperiencedDoesNotMeanIgnorant Australia

I don't know where Comical Reality has been hiding. Not that i'm a fan but ITIL and PRINCE2 are used all over the place and they are both essentially waterfall models. This "my experience is best" mentality is immature and indicates a lack of understanding of the "lower ego environment".

Wed, Oct 21, 2009 Ryan Martens Boulder, CO USA

John, Nice coverage of Dave's talk. No question this is happening in large scale accounts. However, it is not happening in all large scale agile efforts. In some large scale agile shops, the portfolio management and stage-gate process is changing to take advantage of the agile benefits. In other words, the phases are dissolving into the iterative and incremental cycles of 7 to 15 agile teams working on one large program. They are evaluating more options early, learning faster, reducing risk and providing more transparency in a higher quality manner. Who does not what this? My point: Do not think this "hybridization" is a goal, it is simply a step along the way towards a much more agile lifecycle and organization. Organizations that think of this as the end goal, agile teams running in a waterfall lifecycle, are missing out on a much more innovative, adaptive and healthy vision. Aim higher with your vision folks. Ryan www.rallydev.com/agileblog

Mon, Oct 19, 2009 Comical Reality California

To most developers under 30 “traditional methods” only means "waterfall" - that is wrong. There are other structured methodologies than waterfall (which is so outdated that I don't know of any shop using it in the last 20 years) that lend themselves to iterative processes. The problem is that certain key requirements are necessary for Agile development to work, such as a team of developers able to work together in a "lower ego environment" and with a wide range of technical skills; neither of which is widely available. Some people need to expand their horizons (and education.)

Add Your Comment Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above