But most companies that build SOA mistakenly lead with technology. They go out and purchase an ESB or some other SOA-in-a-box solution with the hopes that it will solve all their problems. The end result is a technology solution that's mismatched to their real issues and thus does not work. The SOA effort fails.
The process of matching the right technology with the problems that need to be solved is very simple, but it's also time-consuming. The process is to list your requirements down one side of the page, and the candidate technology down the other. From there, create a short list of technology that's practical to test. Next, work with the vendors to bring the technology in and test its form and function. Does it do what it should do and under the stresses that the SOA will place upon it?
Sure, it's tempting to call one of the big stack players and just leverage everything they have in their portfolio. Whereas some portions of such a technology suite will indeed be a good fit for your SOA, the rest of the stack will be the wrong match for your requirements. Accepting wrong technology for the convenience of a suite or single vendor relationship leads to SOA failure. Instead, in most cases the right technology solution for SOA will be a mix-and-match kind of exercise with many different vendors and technologies.
Make sure your architecture is technology-independent. It might sound easier to build architecture around a particular technology, as some vendors promote, but remember that technology is always in a state of change, whereas the core notion of the architecture needs to remain fairly consistent. You need to work the architecture out first, and then be concerned with the technology that supports it, understanding that the technology will change.
The bottom line for SOA success
SOA success is not rocket science; it's really a matter of good old IT disciplines that focus on all dimensions, including the people, processes, technology, and the business. Organizations that fail did not resist the temptation to chase the "quick and easy" technology-oriented solutions, and they did not consider the fundamentals.
The issue in most failed SOA development efforts is not having a clear understanding of the systemic change that SOA requires. It touches many parts of the organization, and therefore touches many political fiefdoms within enterprises, and turf issues come up quickly. Strong leadership is required to counter these issues, and most enterprises don't seem to have that leadership at the IT levels. Thus the project/movement founders and dies.
The core pattern of SOA success is around new, innovative thinking within the company among leaders who have the ability to drive enterprise-wide change based on that new thinking. Although some enterprises can step up to the requirements of SOA, most will need new leadership, management, and even staffers to pull SOA off. The ROI is real and significant, but it requires making the sacrifices at the very beginning.