May 16, 2008   Sign In |  About ebizQ |  Contact Us |  Join ebizQ Gold Club
Brenda Michelson
Business-Driven Architect
Brenda Michelson’s view on architectural strategies, technology trends, business, and relevance.

« Elemental Links: Talking "Events" - Event Occurrences, Event Sensors and Event Stream Coding Contests | Main | links for 2006-07-19 »

July 18, 2006
Agile & SOA: Like Apples & Oranges, Google & Search or Oil & Water?

SearchWebServices.com has a good, short, article by Rich Seeley covering Gregor Hohpe speaking on Agile & SOA as a powerful combination.  Gregor, now with Google, is probably best known for his excellent work on enterprise integration patterns (site, book).

The article opens talking about Agile and SOA as apples & oranges:

Talking about SOA and agile development in the same breath may seem like comparing apples and oranges, says Gregor Hohpe, software architect at Google Inc., but from his point of view the terms go together like Google and search.

"Agile and SOA pair up to improve the alignment between business and IT," Hohpe told attendees at the Burton Group Catalyst Conference in San Francisco this past week. He was not being theoretical. He was talking about how Web services and applications are being developed by his employer, "one of the largest civilian computing infrastructures in the world."

The apples and oranges view comes from looking at SOA as being "an architectural style" that emphasizes how systems interact, while "agile" encompasses "a development approach" that emphasizes how people interact, Hohpe said. But in his view agile practices can help developers move SOA beyond theory.

The article goes on to point out how Agile’s emphasis on evolution, iteration, testing, learning as you go, and close customer collaboration, can help bridge the gap from SOA theory to real world deliverables.

This makes sense to me.  I always advocate starting small with SOA – the project (measurable return, low business risk), the team (good technicians, follow standards, work smart, continuous learners, influencers) and the infrastructure investment (leverage what you have, invest incrementally).  So, Agile concepts are definitely appropriate, particularly dealing with the unknown:

He urged anyone planning to start their first SOA project to not only start small but accept that they really won't know what they are doing. He urged them to accept that Agile principle "that you will know more at the end than you did at the start."

I also speak (over and over) to the importance of the “A” (architecture) in SOA for sustainable success.  Many readers of the article, and this post, might argue that Agile and SOA aren’t ‘apples and oranges’, or ‘Google and search’, but rather ‘oil and water’, because Agile skips architecture, and jumps right into design-code-test increments.

So, an interesting question then, becomes how is that architecture aspect reconciled?  Especially as you move beyond early experimentation.  How can you leverage agile development practices to implement solutions centered on an architectural strategy?  Assuming your staff isn’t loaded like Google’s. 

Right now, I have more questions than answers.  Nevertheless, I can’t help but think a healthy SOA (service model, shared infrastructure, and assembly patterns) is the perfect feeding ground for business solution development (assembly) using agile practices.  As well, I agree with Gregor, that embracing agile concepts for early SOA experimentation is smart.

I’ll definitely be doing some research and thinking along these lines.  If my schedule works out, I might even sneak out to Agile2006 for a bit next week. 

I’m very interested to hear what others think.  Have/Would you use Agile and SOA together?  How do you reconcile the ‘architecture aspect’?  Which do you start with?  As the article points out:

For the managers in the audience, he also stressed that both SOA and agile development take time for programmers to learn. He warned against the sink or swim approach where coders unfamiliar with SOA or agile practices are asked to start doing both at the same time.

Posted by brendamichelson in SOAagilearchitecture strategies |Digg This|Add to del.icio.us

Trackback Pings

TrackBack URL for this entry:
http://www.ebizq.net/mt/mt-tb.cgi/506

Listed below are links to weblogs that reference Agile & SOA: Like Apples & Oranges, Google & Search or Oil & Water?:

» SOA and Agile - Peas in a pod from Enterprise Abstraction
Brenda posted about the compatibility of SOA and Agile, comparing them to apples and oranges. I'm not sure of the best metaphor to use, but in my opinion they're undoubtedly compatible methodologies. It's human nature to want to 'waterfall' processes. ... [Read More]

Tracked on July 18, 2006 11:21 PM

» Agilty and SOA: Compatible, With Exceptions from Technology Architecture
Brenda Michelson wrote an interesting piece on whether SOA and Agile development techniques are compatible or not. My answer is that it depends on a number of factors, such as: 1. Are we looking at building a SOA using Agile [Read More]

Tracked on July 25, 2006 01:24 AM

Comments

Posted by: Ronan Bradley at July 18, 2006 05:57 PM | Permalink

Ronan - Thanks for stopping over and sharing your thoughts.

The agile aspect to governance is interesting. Sounds like a good idea even if you aren't practicing agile methods. Essentially, incorporating a tolerance continuum.

Your point on early projects having greater latitude (and influence) on the architecture highlights the need for careful early project staffing. I always call for the architects who are driving architectural strategies (like SOA) to participate on the early business projects, and your comment reinforces that importance. -brenda

Posted by: brenda michelson at July 18, 2006 06:18 PM | Permalink

I fall in the crowd of classifying SOA and Agile Development as apples and oranges. I wouldn't call it oil and water, because there are some things that agile development practices address that are directly applicable to SOA adoption.

First, my definition of SOA is always at the enterprise level. In my mind, there's no such thing as an SOA project. If I was on a project that was building both services and consumers, I think agile development would definitely be a good thing. The reason, however, is because by the nature of the project definition, the required collaboration should be in place to allow rapid change. At the enterprise level, however, the service provider and the service consumers are likely on completely different schedules, across many different projects and teams, all of which are barriers to communication and collaboration. Without communication and collaboration, agile efforts will struggle.

At the same time, creating rigid service interfaces that don't change is completely the wrong approach. The problem is poor communication between service providers and services consumers, not an interface that changes. The business does not remain constant, and anyone who thinks that service interfaces can be defined once and set in stone is destined for failure. The key to success is change management. Change management is not a problem in agile development because of close communication between the parties impacted by the change.

So, I think the takeaway should be that SOA adoption must ensure that communication and collaboration between providers and consumers occurs. It doesn't mean that service interfaces should change on a rapid basis, as individual component interfaces may on an agile development project, but it does mean that change should be managed.

I've cross posted this on my blog.

-tb

Posted by: Todd Biske at July 18, 2006 08:37 PM | Permalink

Posted by: Scott Mark at July 19, 2006 07:57 AM | Permalink

Posted by: Alexander Samarin at July 19, 2006 09:53 AM | Permalink

Posted by: Richard Leavitt at July 19, 2006 06:54 PM | Permalink

Posted by: Mark Griffin at July 20, 2006 02:00 PM | Permalink

Posted by: Richard Leavitt at July 20, 2006 04:48 PM | Permalink

Posted by: Dave Nicolette at July 26, 2006 01:54 PM | Permalink

Posted by: Anders Tornblad at January 26, 2007 04:41 PM | Permalink

Posted by: brenda at January 26, 2007 07:55 PM | Permalink

Post a comment




Remember Me?

(you may use HTML tags for style)

We ask that you type your code (displayed below) in the text box.This code is an image that cannot be read by a machine. It prevents automated programs from submitting comments.


Code:



Most Recent ebizQ Blog Entries
ADVERTISEMENT
Subscribe
BDA Feed
BDA Comments Feed

Enter your email address:

Delivered by FeedBurner

My Work Elsewhere
Search Brenda's Blogs

Powered by Rollyo
This Work
Accountability:The opinions expressed in this blog are solely representative of the blog's author, and not of ebizQ

Creative Commons License
Blogosphere

Subscribe to our Newsletters
ebizQ Weekly Gold Club Update
Live Webinar Updates
Updates from ebizQ Partners
ebizQ SOA Update
ebizQ BPM Update
ebizQ Security Update
ebizQ BI Update
ebizQ Open Source Software Update
Virtual Show Newsletter
ebizQ Web 2.0 and the Enterprise
Your E-mail Address:
PepsiAmericas: Realizing Real-Time Communication
a refreshing approach to ESB and data integration

Date: May 28, 2008
Time: 13:00 PM ET
(17:00 GMT)

REGISTER TODAY!
Accelerate Agility and Lower Costs by Virtualizing and Governing Your SOA
Date: May 29, 2008
Time: 12:00 PM ET
(16:00 GMT)

REGISTER TODAY!
Archived Webinars | Upcoming Webinars

Marketing Solutions | Feedback | About ebizQ | Unsubscribe | Privacy Policy | Site Map