If your company is considering service-oriented architecture (SOA), there are many issues and challenges that need to be addressed in order to improve the chances for a successful implementation. One issue that is often overlooked early on, is an assessment of the company's existing skill sets and the application development culture.
If distributed computing, abstraction, loose coupling and service-orientation are foreign concepts to an organisation, there obviously will be challenges to implementing SOA. These companies should seek help from consulting firms who have a proven track record delivering SOA, but they should not let the consultants run the show. There should be a strong technical leader who understands SOA and can set the strategic vision. The consulting firms should complement this person and help the company realise the vision.
The consultants' goals are to maximise revenue. The IT leader's goal is to deliver SOA without breaking the bank! If a company does not have a strong technical leader with great business and people skills, it should hire someone. This person will cost top dollar but the initiative will likely fail without the right person in charge.
SOA requires specialists in many areas. A company implementing SOA will likely need enterprise architects, data architects, security specialists, process modelers, integration specialists, process analysts on the business side and various types of developers. If you need to purchase software such as an enterprise service bus (ESB), business process management systems (BPMS) or service management tools, you need to hire people to administer this software. Testers and infrastructure people need to understand the concepts of SOA. It would be wise to consider bringing in an expert or two in this area as well.
Budget for a large amount of training. Everybody is impacted by SOA. The DBAs, configuration management personnel, project managers, testers, developers, architects and all of the specialists mentioned above will need various types of training. One of the greatest cures for resistance to change is knowledge. The more these people understand SOA and its potential benefits, the less they will resist it.
What is the current culture like? Is a well-established architect team already in place? If so, is it respected as a group that delivers value or is it a group of ivory tower philosophers? Does the organisation have established standards to which people adhere or do the individual teams make their own rules? The answers to these questions have a huge impact on the effort required to deliver SOA.
Cultures that value enterprise architecture, governance, and standards will have a much easier time adapting to SOA than companies that do not have controls in place. Building services that are abstract, loosely coupled, extendable, and truly reusable requires a consistent and well governed design process.
Another thing to evaluate is the readiness of the business to participate in SOA. SOA done right allows organisations to break down departmental boundaries and look at business processes across the company, not just in a departmental silo. This can only be achieved if the different business silos are ready to work together for the greater good of the company as opposed to "protecting their turf." That is why SOA requires strong executive sponsorship from within the business.
Somebody in the business must drive the change required to get the line of business managers to think about the business at a higher level. Then there is the IT and business relationship. Does the business trust that IT can deliver or do they feel that IT is ramming the next hot technology down their throat? All of these questions should be considered before any investment is made in an enterprise SOA initiative.
What are the next steps?
After performing the skill set and culture analysis, which is basically a readiness assessment, a company should identify the gaps and the high risk areas and create plans to mitigate the risks. If these steps are done early enough, the funds required to address these issues can be included in the initial project funding. This is an important point because many SOA implementations are expensive and going back to the well for more money before anything is implemented is not a recipe for pleasing upper management. Resist the urge to dive in too quickly into solution mode and spend some time up front acknowledging the skills and cultural issues. As the old saying goes, "You can pay now or pay big later."