Video Spotlight
Agile Sponsors
Featured Whitepapers
- Learn Ways to Keep Schedules and Costs in Line With Requirements Change Management
- Java Deployments in an Enterprise Environment
- Challenges & Characteristics of Enterprise Continuous Integration
- Build Release Plans That Deliver Customer Value!
- Improving Traceability and Auditability Across the Development Lifecycle
|
| Service Oriented Architecture (SOA) defines a state of application development that is both the fulfillment and re-enforcer of agile values. Core Agile practices, notably business-oriented requirements, frequent delivery and testing, engender a portfolio of valuable services, while SOA reinforces agile values of reduced waste and build integrity by creating a pervasive platform for valuable, re-usable functionality. Implemented in an agile manner, SOA rapidly enables greater responsiveness to changes in the business environment.
For SOA to have business impact, there must be less focus on the "architecture" and more focus on the "services" part of the SOA equation. The Agile technique of expressing requirements as independent, coarsely-grained statements of useful business functionality (called "stories") lends itself to the definition of useful services. For example, the requirement "I as a bond trader want to be able to analyze risk of my commercial bond portfolio so I can make trades that hedge my risk" can be immediately conceptualized as a service that would immediately add value to any number of investment applications.
The notion of a framework that allows components to be easily assembled to create business value in relatively little time has long been an unfulfilled promise of many component architectures. Prior approaches - including SOA to date - have offered up little more than solutions in search of problems. The reality is that developers, working within real-world constraints of limited budgets and time-to-production obligations, are more focused on the ends than the means. Furthermore, new system development and legacy systems are not conceptualized as services but as large chunks of functionality, typically defined at the user-interface or panel level. As a result, grafting "services" over legacy systems often requires restructuring of those legacy systems or cobbling together legacy code into makeshift, malformed services. Regardless, the approach creates inconsistent points of system interaction. Given this reality, the mass definition of services across an existing portfolio of applications is not economically feasible; it is also not a logical gamble for future return on investment.
There does not need to be immediate critical mass of services nor expensive IT infrastructure for there to be immediate business impact of SOA. SOA is best implemented in an agile manner, creating greatest business benefit by implementing highly valuable services quickly using inexpensive infrastructure. There is a symbiotic relationship between business agility and SOA: producing small blocks of complete business functionality capitalizes on the Agile practices of testing and business-oriented requirements capture. SOA also reinforces some of the core values that define an agile organization:
For the agile organization, SOA is a target state of application development, providing the framework for the incremental exposure of leverageable, resilient and valuable business functionality.
About the Author
Ross J. Pettit has over 15 years experience delivering complex development projects and managing multi-national operations as a developer, manager, and consultant. He holds a BS in Management Information Systems and an MBA. He is currently consulting to global clients implementing Agile practices as a Client Principal with ThoughtWorks (www.thoughtworks.com).
[1] Source: Forrester Research
Set as favorite
Bookmark
Email this
Hits: 8655 Comments (0)
|
| < Prev | Next > |
|---|
Agile Marketplace - Announcements and Special Offers
Webcast: Moving Build and Code Quality Upstream
This interactive panel discussion moderated by Bob Aiello, Editor-in-Chief fo the CM Journal brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.
Register Now!
Collabnet -TeamForge 5.3
CollabNet TeamForge 5.3 includes Dynamic Planning—providing flexibility to model release scope and timeline in a single view. Now, you can easily manipulate/adjust release data.
Download Your Free Trial
Requirements-based testing (RBT) can help to ensure comprehensive test coverage, reducing the risk of failure and improving software quality. This white paper details how application lifecycle management can be used to more effectively implement RBT processes, offering greater collaboration, traceability and control.can help you increase efficiency, reduce project risk, and improve overall software quality. Learn how MKS Integrity for application lifecycle management enables RBT, delivering full lifecycle traceability to help ensure that project requirements have complete test planning and execution coverage.
Download the Requirements-Based Testing whitepaper
PureCM –SCM for Agile Teams
PureCM helps you to manage development in short iterations: keeping track of changes, supporting automated builds and preserving frequent snapshots of your projects.
Get the free trial now


