With short, tactical projects at the forefront of web services deployment, enterprises can benefit from applying agile development methods.
| ||express delivery|
| print comment|
|Abandoning mega IT projects in favor of multiple short implementations brings advantages, provided long-term objectives stay in focus:|
- Agile development is an emerging methodology for breaking projects into smaller, more manageable chunks
- Users see rapid results and give frequent feedback
- But strong project management and the right tools are essential for success
- Business managers must agree to a strategic framework
- Developers must adopt a business process view
Glossary terms: agile development, service-oriented, BPM, lookup tool
Agile development takes as its starting point the notion that user requirements are inevitably going to change as projects evolve, and therefore breaks down software development into smaller, more manageable chunks. By delivering more frequently to end-users in shorter bursts, products can be tested earlier and changes can be accommodated more easily. The result, say advocates, is rapid delivery of working software that can adapt to changing requirements, driven by the business needs of the organization the same objectives sought by early adopters of web services.
But agile developers recognize that iterative development of this nature requires strong project management to ensure that each individual development project builds into a coherent whole.
Many web services projects lack that wider perspective, according to John Hagel, one of the best-known management consultants and authors in the e-business space. Driven by business managers rather than technologists, they're designed to derive specific value through rapid deployments. Such opportunistic projects "are so fragmented and limited in scope that the kinds of confusion you're going to see over time haven't surfaced in production."
With nobody taking a broader view, "that will make the case of the line manager superficially so compelling," warns Hagel. "You have to fast forward and look ahead and see what kinds of problems you'll run into."
As well as providing a proven framework for iterative development, agile methodologies can aid developer productivity, say proponents, provided the right skills and tools are applied. But the concept has been slow to emerge in enterprise IT shops, despite a respectable pedigree one of the most famous examples took place at DaimlerChrysler in the mid-1990s, which evolved into a specific discipline known as Extreme Programming (XP). Last year, leading proponents joined together to form the AgileAlliance to champion the approach.
Although agile techniques can be applied to any development project, many companies make their first foray into agile development on web services projects. Greg Reisser, vice president of delivery services at Chicago-based agile development shop Thoughtworks, suggests this is because people are more comfortable adopting a "lighter" methodology within a service-oriented context, which allows them to break down projects into smaller, more focused components.
The characteristics of agile development are a good match for the dynamics of web services projects. Reisser lists three key advantages over other methods:
- Early, frequent delivery of software
- High visibility into projects
- Greater ability to adapt
"Agile development is based on an acknowledgement that, especially for larger programs, it's difficult if not impossible to do perfect upfront requirements analysis," he explains. "We have to acknowledge that (a) we don't know everything upfront and (b) as people see the components of a delivered system, they discover new requirements."
Frequent delivery gets software in front of users earlier so that they can feedback into the process much earlier. It can also bring business advantages, since if usable components can be deployed earlier, the benefits may also be felt sooner.
One company that has standardized on agile development methodologies is iUniverse, the largest independent book publisher in the US, which offers self-publishing services for authors. It adopted the FDD (Feature Driven Development) methodology over two years ago, and has now applied it to its web services development initiatives. With FDD, companies create an overall design and then break it into features that will be iteratively developed, ensuring that the framework for development is there from the outset.
Vernon Stinebaker, vice president of technology and operations, who along with iUniverse's development team is based in China, says the company has verified the effectiveness of FDD by comparing it in tests with more traditional methodologies. The traditional projects "required more time to complete, progress during the project was more difficult to track, and the ultimate level of code and project quality was lower than those projects managed with the FDD methodology".
Using a business process management (BPM) system from Intalio and focusing on low-risk, high-return processes, iUniverse has now completed several projects aimed at improving data export from its catalog to its business partners, building a common set of web services-based, re-usable extraction components that can then be converted into whatever format partners require.
But success in agile development is not just a matter of methodology. Three further ingredients have to be added to the mix.
The first is having the right people on your team, says Thoughtworks' Reisser. "A good process will only take you so far, it still comes down to people." Teams need to include experienced and highly talented developers, as well as master developers who can ensure that a coherent underlying architecture is built.
The right tools are also important. "You do need certain tools in place and know how to use them," Reisser says. For example, agile development requires that, as far as possible, testing procedures are automatically executed when new code is introduced, which requires a specific infrastructure and toolset. "I've seen people fumbling around during earlier iterations because they don't have the tools in place," he says.
The final ingredient is the relationship with business managers and that's a two-way street. Getting the right balance between tactical objectives and strategic overview is just as important for executive decision-makers as it is for developers. John Hagel says that big-project thinking can paralyse development in some companies, with an IT department too heavily focused on developing an elaborate web services blueprint and service-oriented architecture before any initiatives begin. On the other hand, short-term ad hoc development driven by line managers brings "near-term economic value, but at the risk of very incremental implementations that add up to a lot more complexity over time, without a clear architectural view."
Hagel advocates a strategy called FAST short for four stages called Focus, Accelerate, Strengthen and Tie it all together which sees executives adopting two parallel approaches. The first is a five or ten year plan, which avoids too much detail but gives a framework for all development initiatives. The second tackles short-term tactical needs. He believes this combination allows organizations to meet short-term objectives without setting themselves up for unexpected long-term problems.
With its framework for managing iterative, incremental projects, agile development makes a good fit for this two-track approach. But perhaps its main appeal for business managers is its insistence on constantly testing development assumptions against the live needs of business users.
This emphasis on delivering usable business process automation is another point of concordance with the objectives of many web services projects. But developers have to adopt a new mindset to make it work, warns iUniverse's Stinebaker.
"I think a shifting of mindset from vertical or 'system' thinking to one that considers more horizontal or component thinking is necessary," he says. Most recent development thinking has focussed on building "seamless" integrated applications, he explains, which automate processes as a series of predetermined steps rather than providing each step as a discrete service that users can call on as required.
"Getting people to think in terms of business process and process steps which should be further refined by the lower-level business analysts and developers as a series of service calls instead of systems and applications is probably the greatest challenge we've faced."
More on this topic
In the new era of short-term web services projects ...
As we boldy explore the new universe of service-oriented architectures, we should not be surprised if software begins to assume unfamiliar, alien forms ...
Organization dedicated to promoting awareness and adoption of agile software development.
, John Hagel