Featured Whitepapers
- Apples, Oranges, and Acorns - All Agile Development Tools Are Not the Same
- One's Enough for Agile Application Development Management
- Requirements Management 101 – 4 Basics Everyone Should Know
- Tips on Requirements Traceability – Learn How to Control Change and Improve Quality
- Scaling Continuous Integration to Large and Distributed Teams
|
| Because one of the core stated objectives of Service Oriented Architecture (SOA) is to increase business and IT alignment and IT's flexibility in meeting changing business needs, on the surface it would seem that SOA and agile methods are a natural fit. And within the SOA model of service production, distribution and consumption, use of agile development methods clearly has great opportunity for effectiveness on the consumption side of the equation. However, the approach by which a suite of generally reusable services within an SOA are defined and produced requires a cross-project perspective that could be viewed as running counter to a typical agile development approach. Some amount of up-front architectural thought must go into initial service definition to prevent those services being developed from becoming solely project-centric.
As the IT organization develops a set of core services, over time these services (if guided appropriately by architectural oversight) become candidates for consumption by application development teams. Clearly having a set of pre-built functionality available to an application team greatly increases the opportunity for rapid implementation and deployment of useful application functionality. This is where the timeboxed nature of agile development techniques can take advantage of SOA. Because many parts of a particular application may already be in hand, the functional scope of a timebox may in many cases be increased, thereby delivering value to the end customer quicker and giving the end customer a greater ability to provide feedback on delivered functionality within the broader scope of the complete application.
Without ignoring the need for appropriate architectural guidance on the service production side of the SOA model, there are also opportunities for agile development methods {sidebar id=1} to contribute to the implementation of services. The danger that must be recognized in applying agile techniques to service production is the potential for those services under development to become solely project-focused in their functionality, not recognizing requirements from other potential consumers down the road. That said, an organization could consider services produced under an agile model to be "version 0.9" of what may become a full-fledged member of the SOA services suite over time. Clearly, a service built in this manner will provide project-specific functionality to the agile team; otherwise the team would not have built the service in the first place. Once produced, this service can be considered a candidate for inclusion into the formalized SOA services suite - but not without some level of evaluation at the architectural level.
An Example: Currency Conversion
Let's take a brief look at how a seemingly simple example fits into this SOA services production/consumption model. Currency conversion is a part of many business activities today, and while the basic currency conversion scenario is straightforward, a strategic view of an enterprise's conversion needs can introduce significant complexity. Consider the needs of a multinational distributor. This distributor may support both retail and wholesale channels ranging from a publicly accessible website to storefronts to direct and indirect partner sales via modern SOAP-based partner integration, traditional EDI and even phone support. Add contractual complexity to the mix (some customers may receive a standard exchange rate, other customers may qualify for a preferred rate and still others may have their exchange rate determined by contract) and you can begin to see how what could be considered a simple service definition can grow significantly in complexity.
Agile development techniques can contribute to the value of SOA as part of both service production and consumption. Between these two perspectives, however, architectural guidance is critical. Teams must pay attention at the architectural level to guide the produced services towards support of coherent business architecture, while still enabling the rapid and iterative development of business applications that is the hallmark of successful agile development teams. About the Author Brent Carlson, recently named to InfoWorld's 2005 Top 25 CTOs, is Vice President of Technology and Co-Founder at LogicLibrary, Inc. (www.logiclibrary.com). He is a 17-year veteran of IBM, where he served as lead architect for the WebSphere Business Components project and held numerous leadership roles on the "IBM SanFrancisco Project." He is the co-author of two books: SanFrancisco Design Patterns: Blueprints for Business Software (with James Carey and Tim Graser) and Framework Process Patterns: Lessons Learned Developing Application Frameworks (with James Carey) and a frequent presenter at industry conferences and regional user groups. Carlson holds 16 software patents, with eight more currently under evaluation.
Set as favorite
Bookmark
Email this
Hits: 7610 Trackback(0)Comments (0)
|
| Last Updated on Saturday, 20 October 2007 09:17 |
Agile Marketplace - Announcements and Special Offers
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper



