You are itching to board the SOA bus. Hold on a bit though because it is easy to get lost in the hype and miss the real point i.e. generation of business value. So here are 5 tips before you start your SOA initiatives.
#1 Seek clarity on how project goals align with your business strategy
What is the SOA initiative specifically achieving for your business? is it trying to optimize an existing business process? release new offerings to generate additional revenue? build the foundation for new ones to be hosted? enable self-service for your customers? make it easy for your partners to exchange data with you? Depending on what your business goals are, the SOA strategy needs to be thought out accordingly. No use investing in prototyping business-to-business integrations if your goal is to eliminate manual step in a business process internal to the organziation.
#2 Aspire to marry existing IT goals with SOA
I am sure SOA isn't the only thing your IT shop is pursuing. If you are trying to reduce storage costs or hosting costs align that with SOA. Same is the case if your shop is trying to execute on software product lines via architecture convergence. Decommissioning legacy systems is another one that can be tied to SOA goals. If you take a holistic view of your technology objectives, you will be surprised how effective the conversations around service orientation becomes. Without a good grasp of this, you can go in circles trying to get buy-in from key stakeholders across IT.
#3 Communicate with multiple levels of the technology organization
SOA needs several stakeholders to succeed. Your upper management, business stakeholders, technical leads, and developers all need to be aware of SOA goals, how your project fits into the overall SOA strategy, and how is it going to impact them. You may be enforcing technology standards, introducing governance steps, and changing tools. It is important not to give rude surprises to people who's support you need!
#4 Take stock of existing solutions and investments
Chances are your development teams have already built services. Or your enterprise has existing unused licenses. May be there is a team that is close to completing a prototype with an open-source solution. There might be message brokers or web services that need retrofitting per your new standards. Or they may need minimal rework. You should get familiar with existing investments so you can learn what worked easily, what took effort, where the challenges are, and possibly identify risks for your project. You may pleasantly surprise yourself with free code samples, or even service capabilities that you can leverage.
#5 Prepare a prioritized list of strategic SOA deliverables
Build a list of deliverables your project is going to contribute towards SOA. You may plan to enhance existing capabilities so they are more scalable and available. May be you will build a new suite of services that are potentially reusable for future projects. Or you will reduce costs by replacing a legacy system partially or completely. Whatever it is, get the prioritized list!
I wouldn't get too much into contract design, governance policies, message exchange patterns, and message routing. They are all important but unless one has the big picture it isn't useful to move forward