ZapThink met with the global CIO of a multinational financial services firm recently to discuss the success he'd had with his Service-Oriented Architecture (SOA) implementation efforts. He made an interesting and provocative point: even though he had achieved substantial success with SOA in terms of the business value such initiatives yielded, he had constrained the scope of his SOA efforts to a set of specific problem areas. In fact, he had no plans to Service-orient most of his IT operations -- and yet, his firm is one of the most successful SOA implementers in the world.
This CIO's experience underscores a fundamental principle of SOA adoption that many organizations on the roadmap to SOA overlook: SOA solves some problems, but not all, and is best implemented when the characteristic benefits of SOA outweigh the overhead and cost of architectural change that moving to SOA requires. As a result, success with SOA rarely necessitates comprehensive change; instead, architects who choose their SOA battles carefully can deliver on SOA's promises to the business via projects of limited scope. Architects who miss this point often set the bar for SOA success too high -- but by taking a more pragmatic approach to SOA, success really doesn't have to be that difficult.
No Silver Bullet
ZapThink has long discussed the fact that SOA is no silver bullet for solving all of IT's ills, as we introduced in a 2004 ZapFlash. After all, silver bullets are only good for killing werewolves; if a vampire is after you, you'd better have a wooden stake instead -- and the same is true for the various problems organizations have with IT. Starting with the business problem you're trying to solve and identifying the appropriate solution based on that problem is an obvious best practice for all of IT, and is clearly a best practice for SOA as well.
Taking such a solution-oriented approach to SOA, however, is only one aspect of pragmatic SOA. On the one hand, it's important for the architecture team to prioritize potential SOA projects, while on the other hand, it's also an established best practice to take an iterative approach to SOA implementation, where each project iteration delivers business value. Combine this two-dimensional evaluation process with an additional risk/benefit analysis, and you have a pragmatic approach to SOA that will likely enable you to eliminate many potential SOA projects from your roadmap entirely, and focus on the ones that will provide the most value for the smallest risk.
Project-by-Project Pragmatic SOA
The best way to get a clear picture of how to approach SOA in a pragmatic way is to discuss a few examples of how organizations might approach specific initiatives. Here are some common situations:
- Pragmatic SOA Governance. Most governance challenges facing organizations today don't directly involve IT -- if they involve IT at all. Many policies are simply not automatable, and as such, IT takes a secondary role of simply enabling the communication of written policies. When planning a SOA governance initiative, therefore, it's important to differentiate between automatable policies and other policies that are best left for manual enforcement.
As a result, Early iterations of SOA governance initiatives might focus, say, on security policies for Services, followed by reuse and quality of service policies, and eventually, Service consumption policies. From the business perspective, therefore, of the full range of policies the organization must create, communicate, enforce, and update, IT is able to leverage SOA to automate a specific subset, and will do so by prioritizing specific policies based upon a risk/benefit analysis.
- Pragmatic Reuse. Many people like to tout reuse as the primary benefit of SOA, but in fact, reuse is quite difficult to achieve in practice. After all, reuse really means sharing of resources -- and while we all supposedly learned how to share in kindergarten, we didn't like it then, and we don't like it now. Effective reuse also requires governance, and even so, presents challenges to organizations seeking to obtain business benefits from increased reuse.
It's important, therefore, for the architect to understand that reuse builds over time. After all, the word "reuse" itself indicates that "use" must happen first. Only after an organization builds a comfort level with the use of the Services at its disposal will it begin reusing those Services. Pragmatic reuse, therefore, typically means delaying the expectation of reuse to later iterations. Seek to achieve different short-term business benefits from a SOA initiative, and let reuse grow at its own pace.
- Pragmatic Legacy Enablement. One specific area where the reuse benefit of SOA becomes particularly important is legacy enablement. The surprisingly durable 80/20 rule of thumb works quite well here when it comes to Service-enabling legacy capabilities. Analyze what legacy functionality you use most for any particular system or application, and chances are, you use about 20% of the functionality 80% of the time. Service-enabling that 20% is likely to provide the best value for your legacy rejuvenation investment, both for increased use as well as better reuse of the legacy assets. In fact, you may find that rarely are you justified in Service-enabling much of the remaining 80% of the functionality.
- Pragmatic SOBAs. When ZapThink discusses the creation and management of Service-Oriented Business Applications (SOBAs), which are applications composed of Services that implement business processes, all the effort required to build and maintain such SOBAs can appear to be far too much trouble. As a matter of fact, SOBAs really are too much trouble for many business processes an organization conducts. After all, static, stable, well-understood business processes gain little by adding the overhead and complexity required to support SOBAs.
It's important, therefore, for the architect to identify those business process in the organization that require the special flexibility, agility, and user empowerment benefits that SOBAs provide. Chances are, just like the global financial services firm discussed above, only a small portion of all the business processes the organization executes every day can justify the extra expense and overhead that SOBAs require.
- Pragmatic User Empowerment. Enabling certain business users to manage and evolve business processes without direct IT involvement is one of the most ambitious of SOA goals, and for good reason -- such a vision requires bulletproof governance as well as mature tooling that's only now beginning to reach the market. A more pragmatic approach to user empowerment leverages end-user tools that are available today, including browsers, spreadsheets, and mobile devices, combined with the power of SOA-enabled Services to offer a richer, more functional interface for users, and leaves the more challenging composition tasks to IT.
Such pragmatic user empowerment can come in many forms, including Ajax-enabled portals, handheld interfaces to business Services, spreadsheets that place Service queries into cells, and more. In other words, the Web 2.0 movement presents a smorgasbord of options for the enterprise, but architects watching their "waste" will pick and choose those tidbits that provide high business value with low risk. Pragmatic user empowerment, therefore, builds upon the capabilities and desires of users with an eye toward increasing business value, instead of bombarding users with new tools and capabilities that they are unable or unwilling to take advantage of in their day-to-day work.
The ZapThink Take
It's quite rare to find anyone using the words "pragmatic" and "architecture" in the same sentence, let alone use the phrase "pragmatic SOA." In fact, if you Google that phrase, much of the discussion centers on nuts-and-bolts Web Services, and not on the SOA-as-Enterprise-Architecture perspective that ZapThink espouses. And yet, we feel that it is crucial that organizations take a pragmatic approach to Enterprise Architecture (EA), especially if they're implementing SOA. Any architect who's ever struggled with the Zachman Framework understands that taking an overly formal, all-or-nothing approach to EA is bound to fail. Instead, architects must balance the more technical, formal aspects of their job with the more ad hoc, human parts, and focus much of their time on pragmatic efforts that build rapid, visible value for their organizations.
When architects are implementing SOA, this need to focus on pragmatic efforts is particularly important, because of the immaturity of the architectural approach on the one hand, and the need to build and maintain business support for SOA initiatives on the other. The good news is that the number of organizations who have achieved real success with pragmatic SOA is growing dramatically. Regardless of the problems that the SOA initiative is meant to solve, taking a pragmatic approach to SOA lowers risk and increases your chance of success -- both in the short term with individual projects, as well as with long-term architectural change in the enterprise.