Home arrow Articles arrow From the Editor arrow The Agile/SOA Potential
The Agile/SOA Potential PDF Print E-mail
User Rating: / 0
PoorBest 
Written by Liz Barnett   
Sunday, 09 July 2006

The synergies between Agile processes and Service Oriented Architecture (SOA) development are obvious. Agile practices, particularly the emphasis on iterative development, continuous integration and test-driven development, facilitate SOA development. Teams building SOA environments must use agile and iterative approaches to succeed. And, many Agile adopters do emphasize the importance of well-defined architecture and see SOA as the most pragmatic approach.

Given the hype that both SOA and Agile development have seen in the past few years, it's not surprising to see companies offering products or services trying to capitalize on this relationship. SOA initiatives can be well-funded, so there's budget for software vendors and consultants to chase.

You may assume that the SOA community, with the "A" for architecture rather than agility, would view Agile processes as insufficient or lacking in rigor. I haven't found that to be true: as teams adopt SOA and incrementally deliver software capability, so too do they incrementally adopt new development practices. Many Agile practices provide the necessary flexibility for teams to define, code and test well-formed services.

Right now, it doesn't seem as though Agile community industry is on board - at least if you look at the presentation abstracts for the upcoming Agile 2006 conference. I did a quick scan of the over 150 sessions and did not find a single mention of the term SOA. [Note that I'm not here to bash the conference - actually I'm quite excited about it and I think that it will be far more practical than any app dev conference that I've been to in years. Still, it's disappointing to see that the industry leaders aren't emphasizing the relationship between these concepts.] This conference obviously doesn't represent the broader industry: a simple Google search found several hundred thousand hits, including thought leadership from software vendors such as IBM and Microsoft and a host of software gurus.

Leveraging Agile And SOA Concepts
So why is this connection so important? An IBM developerWorks article put it simply:

"Everyone who is responsible for architecting a SOA faces two main challenges: 1) How can I design a system such that there is a good fit between business processes, business goals, and IT architecture, and 2) How can I build an architecture that is able to respond to future changes?"[1]

This mix of business-driven development and continuous change lies at the heart of every critical software project. Using Agile processes on SOA projects, teams can be more effective in addressing common challenges.

First, time to market - and,  more importantly, time to value - remains the highest priority for a development team. Both SOA principles and Agile processes stress the need to deliver iteratively and incrementally. And both demand that customers drive requirements and work closely with the IT team throughout the project.

Second, we know how many development organizations suffer from weak or non-existent processes. Why not use an SOA project as the catalyst to change the way you work? Some SOA projects involve greenfield development, while others involve interfaces to legacy systems. As either type of new services are delivered, teams can quantify the value that they have delivered and can tie both costs and benefits to individual software components. This can go a long way in helping to justify the value of adopting new processes and/or associated tools.

Third, testing is still the black hole for many organizations. Agile processes' emphasis on early and frequent testing complements the ability to test individual services and interfaces while continuing to evolve functionality. Even companies that only adopt Agile testing techniques will see benefits in their SOA projects. This could be a good first step.

Finally, large organizations understand the value of strong software architecture. For Agile processes to truly satisfy enterprise needs they must address this requirement and address the plethora of software environments that the company supports. Whether you base your Agile process on Scrum, XP, RUP, DSDM or the new MSF Agile, you'll need to include an emphasis on architecture to make it fly for the enterprise. You can find some great insights on site such as the Agile Alliance, Scrum Alliance and Agile 2006 conference proceedings.

Who's Doing This?
Examples of Agile SOA projects are beginning to emerge. The blogging and open source communities help in that the informal - and often more valuable - experiences do come out through these channels. The earliest examples still tend to come from the vendor community, as it culls out best practices from its customers.  

For example, Digital Focus, a Virginia-based Agile consulting firm, is using XP and SOA on projects for Federal Home Loan Banks, Office of Finance.[2] They found XP's short release schedules and incremental development techniques to be particularly complementary to the practices of developing business process models.

BT Group in the UK recently discussed its experiences with Agile development, SOA and tools from Borland.[3] By defining business requirements as services within a broad well-defined architecture, teams use Agile techniques to build individual services and know that the services will integrate via the overall architecture.

At the Agile 2006 conference, project managers from Google will discuss their experiences using Agile processes.[4] Gregor Hohpe, architect at Google and former ThoughtWorks consultant, has discussed how evolutionary development is key to both SOA and Agile practices.

While many companies have deep expertise with either SOA or Agile development, there aren't that many that have leveraged the two. It's still early. So think about how and where you can use Agile practices on your SOA initiatives. Pay particular attention to your integration and testing processes - these are the obvious places where SOA projects can benefit from Agile experiences.  


[1] IBM developerWorks, "Service-oriented agility: Methods for successful Service-Oriented Architecture (SOA) development, Part 1: Basics of SOA and agile methods." http://www-128.ibm.com/developerworks/webservices/library/ws-agile1/ 
[2] See http://www.digitalfocus.com/research/whitepapers_soa.php.

[3] See http://www.borland.com/us/company/newsletter/issue1/btgroup.html.

[4] See http://www.agile2006.com/program/Program.

 


About the Author

Liz Barnett is the Editor in Chief of the Agile Journal and Principal Analyst at EZ Insight Inc. Previously Liz spent 10 years as a Vice President and Research Analyst at Forrester Research, joining Forrester as a result of its acquisition of Giga Information Group. Liz held management positions at Accenture, PepsiCo, and Atelier Research. She also was the Research Director for the advanced software development and advanced network computing research services at New Science Associates, prior to its acquisition by Gartner Group. Liz holds a patent for developing a distributed application development/CASE tool. Liz earned her B.S. in operations research and industrial engineering at Cornell University.


Error, missing joomlaboard config file!

Comments (0)add feed
Write comment


Write the displayed characters


busy
Tags:
Click to add your tags...,
 
< Prev   Next >






Lost Password?
No account yet? Register

Video News

 
Copyright © 2006 - 2008 CMC Media, Inc. All rights reserved. All marks are trademarks of CMC Media Reproduction in whole or in part in any form or medium without the express written permission of CMC Media, Inc. is prohibited  
 
 CM Yellow Pages | ALM Expo | CM Today | Configuration Management Journal | CM Crossroads