Geeks With Blogs

News View Michael Stephenson's profile on BizTalk Blog Doc View Michael Stephenson's profile on LinkedIn
Michael Stephenson keeping your feet on premise while your heads in the cloud

There's been a few discussions going on recently with various colleagues and community members on the back of the SOA Manifesto announcement. In this discussions it made me think back to a year or so ago when I was watching some presentations about various SOA things. At the time there were discussions about why SOA was good, what it offered, why companies struggled with it and all of the usual stuff.

At the time I was reflecting on things on the way home and was thinking you know SOA is really just outsourcing. So if business has been doing outsourcing for so long and become fairly effective at it why is SOA something which is still very unclear?

At the time I didn't really take this any further but this week I thought id note down some of my thoughts in a bit of a brain dump fashion to see where I end up.

Before we get into more detail to set some context I am thinking about outsourcing in terms of how throughout history organisations have evolved to identify specialisations where a unit of work can be abstracted from the mainstream tasks and performed by a group specifically for that task. Overtime this has obviously evolved to the point where organisations developed departments to deal with specific types of work. This again evolved to the use of external business partners who would do these units of work for the organisation.

In the systems context I'm thinking about SOA in terms of how we want applications to work together doing work for each other. This can be either internal applications or applications outside of the core organisation. I guess this could also extend beyond applications to infrastructure services. I don't really want to get into a discussion of SOA vs. SAAS in this post but I'm sure I will mention things where some readers may think ah..but that's SAAS not SOA. To state my view upfront I believe that SAAS is what you are delivering in terms of applications as services, and SOA is one way you might do this. I guess I'm saying that to me SOA is an architectural approach to help you build effective SAAS applications and services across your organisation, and to consume services provided by yourself and others.

I thought it was best to discuss some things that outsourcing and SOA have in common, some of their differences and then a summary of my thoughts.

What have SOA and Outsourcing got in Common

Some of the things SOA and Outsourcing have in common include:

Lower Cost

Usually the vision for any project which talks about SOA or outsourcing includes some statement about how the project will save the organisation money.

Reuse

On of the best ways to get ROI on both services and outsourcing is through reuse opportunities. A business example of this would be when an organisation creates a specialist customer retentions team. Nomally all customer service people may deal with customers who become unhappy and want to cancel their account.

It's not really what we do

Business and applications are the same in that they have a core function and then a set of things that they need to do to support that function. To a business these support functions are usual candidates for outsourcing. Take the example of Acme Widgets. The thing they do is to manufacture and sell widgets. Acme really want to invest their resources into building the most profitable widgets and the best sales processes. Acme aren't really interested in things like human resources or finance departments and want to do these things to a good enough standard and to a low cost. These are obvious outsourcing candidates.

In the systems world Acme would be interested in investing heavily in functionality to support their sales, R&D and manufacturing departments but they don't really want to have to deal with application support things like user management. This is where services can come in. By using services from other systems such as Active Directory you can remove most of the user management requirements from your application.

Its really about focusing on the high value stuff and getting the low value stuff don't as efficiently as possible.

Someone else does it better

A common reason for using outsourcing or a service provided by someone else is that they may be a domain expert in that area and be really good at what they do. Rather than try to do it myself if it's not too expensive shouldn't I just get this expert to do it.

Contract

Having a well understood contract is key part of both successful services and outsourcing. A contract usually defines the following

  • what messaging/communications needs to take place
  • What levels of service are required
  • How much will be paid and how often
  • How exceptions will be managed
  • The way things are expected to work together
  • What everyone is expected to do

I'm sure I could come up with others, but if you think about it these things are equally applicable to an application service provided internally or externally as they are to an outsourcing project.

Enhancements from partner

Both application based services and outsourcing would offer opportunities for the consumer to benefit from enhancements the partner made to their offering. It is the partner (external company or internal team) whose core function depends on the outsourcing or service your organisation wants. You are their customer, but you are unlikely to be their only customer.

To improve their business the partner will probably try to add value to their offering by enhancing it or offering complimentary offerings which may benefit your organisation. A systems example of this might be where enhancements made to an application for one consumer can be offered to another. If I am the provider of a service which allows companies to get quotes for travel bookings. If I enhance my service to integrate with more travel companies then my customers would benefit from better prices and more choice.

Governance

Governance is important in both SOA and Outsourcing worlds to ensure you have made the right decisions and things are put in place to support your initiative and the ensure that these things are followed through.

An example of governance might be the policy which is created by a company to help them evaluate and choose outsourcing partners or application service providers. This can be done without this governance, but the importance of the policy is that there is a standard and consistent approach to doing this which can be evolved over time, but who's aim is to protect the interests of the business.

Monitoring

Without monitoring for service usage in IT or outsourcing usage and organisation would not be clear on how much it should pay, if it is getting value for money and a whole lot of other things.

In an SOA approach organisations would often be looking for a monitoring platform which they can reuse across their services for a consistent approach and to lower the cost of monitoring. In outsourcing projects monitoring is probably less standard because the nature of the projects could be very different. Obviously some outsourcing projects could involve IT and applications which could take advantage of SOA approaches.

The benefits of a Middleman

My initial thoughts were that one of the key differences between SOA and Outsourcing is that when using an SOA approach organisations often look to platform technologies such as a service bus to help them effectively connect their applications and services. This is quite a well understood concept in IT. However after a little bit of reading about advice for successful outsourcing apparently one of the common things for successful outsourcing projects is to have a middleman who can act as a broker between stakeholders. I didn't really know much about the detail of this but I guess this person is the equivalent of the service bus.

Barriers to entry

If you are doing some new work then both outsourcing and using services can help reduce those barriers to entry to start your new business initiative. An example from outsourcing might be an SME who want to begin doing online sales when they previously had very little IT capability. The cost of setting up a sufficient capability might mean the initiative would never start. Outsourcing this might be one way that the company could partner with someone who can do this for them could massively reduce the costs of the initiative.

Likewise in organisations who have an SOA approach, the more mature their SOA capabilities then the lower their barriers to entry for any new project could be because they can reuse or buy services which could be the difference between a project being viable or not.

Security

When considering outsourcing or SOA, security is an important factor in both. In initiatives involving both there is probably going to be information which is sensitive to the business moving around the organisation and potentially leaving its boundaries. Security considerations are important in both areas to ensure the business is not at risk.

Economy of scale

Because both services and outsourcing are normally dealing with more than one customer each consuming organisation can often benefit from the economies of scale offered by the service or outsourcing partner. For example in outsourcing a company who handles calls for many companies can probably negotiate much better deals with their vendors because of the number of customers they have where as each individual organisation if they didn't outsource would have a smaller volume of work which would be less attractive when negotiating deals with vendors.

An effective SOA strategy can also offer the benefits of economies of scale in a number of ways, one of which could be by using external service providers in a similar way to described about for outsourcing.

 

Where do SOA and Outsourcing Differ

I have listed below some thoughts on how SOA and Outsourcing are clearly different.

Competitive Advantage

One of the aims of SOA in an organisation is to make the organisation more competitive and to get an edge by being more dynamic and able to react to change. In outsourcing work is usually outsourced to save money. You do get some cases where work which is important to the income of an organisation is outsourced but this is probably unusual. Consider the case of a company who sells insurance, they may outsource something like random sales lead generation by SMS to a company who specialises in text messaging but they are unlikely to outsource the really important bit of the sales process where they get to speak to their customers and really show what they are about. Any company who is looking to get a competitive edge by outsourcing work which is where their differentiation lies has probably lost some of its focus.

SOA is more organic then outsourcing

Services tend to evolve and be enhanced over time, adapting them for more consumers and to do new things. Outsourcing units of work tends to be very fixed and with a clearly defined time where you are and are not outsourcing the work.

How are cost savings achieved

In an outsourcing initiative it is likely that the cost savings from the delivery of the project will begin immediately or very soon after delivery. In a project involving SOA the cost savings from a service may not be seen in the short term. SOA projects usually begin to see real cost savings when services begin to be reused and this is usually a longer term cost saving.

Return on investment

Because of the above comment about cost savings the ROI is likely to be seen quicker in outsourcing projects than projects which use SOA. However I would assume most outsourcing projects get to a certain point and then the ROI levels off to a fairly static level, where as with an SOA initiative the more times you reuse the service the higher the ROI. As you become more mature in your services then your opportunity to reuse them goes up closely followed by the return on that initial investment.

To discuss an example here, a few years ago I worked with a company in the banking sector. This company was a financial institution but they had this great and quite innovative idea at the time to offer outsourced online banking solutions to the rest of their sector. Initially they had been taking their own online banking application and creating copies of it to be setup for any business partner they teamed up with. Although this did the job, they did a project which I was involved with where they would reuse the things that their mainframe did and develop a services layer on top of this and a white labelled banking application which consumed these services. One of the original requirements was an upgrade of the old application to lower maintenance costs, but by also including requirements which allowed this to be properly treat as a service they made a larger initial investment. When they begun using the application themselves and with their main business partner the success they had meant they were able to win a number of other good business partners who had significantly reduce costs and time to get that business onboard. This was a good example of where the greater initial investment to include service based requirements payed off in the long term with an ROI that gets steeper over time.

One project helps another

In projects with SOA practices and services being delivered one of the core aims of the project is to deliver something which will help you in other projects. In a traditional business outsourcing project the requirements of the project are unlikely to care about the next project.

Outsourcing doesn't have to involve IT

Outsourcing does not have to involve IT, but I've never heard of a project or initiative which talked about SOA which did not have a heavy IT element.

Ownership

In my observations when parts of a process are outsourced the business side of an organisation always has a significant amount of control and ownership over the process however in lots of organisations when services are used or created it is a much bigger challenge to get the business to own those services and champion them. If you asked the manager of a business area within an organisation what services he/she had and how they played into the strategy for his/her business unit I think you would get very mixed responses.

Payment/Cost Model

In outsourcing you have probably negotiated a contract based on an expected amount of work. The outsourcing partner may expect to require 100 people to support the work. If the real volume of work is actually much lower than that they will probably still have to change you the same amount, your organisation is taking on the risk of how accurate the work estimate is. In a services based costing model (particularly for cloud platforms) the cost model tends to be much more usage based. You tend to pay per click or per request or with some kind of band width algorithm. Pay as you go models really support good scalability.

Centre for Excellence

Creating a Centre for Excellence is a term which I've heard many times in discussions about both SOA and Outsourcing. What I think is interesting is that in the two contexts however they often are realized in different ways. In SOA the centre for excellence usually refers to a group of people who actually get SOA and can apply the principles to real things. In Outsourcing it tends to be the different because it's the group doing the outsourced unit of work is generally what is considered to be the centre for excellence.

I guess this one could go in either similarities or differences?

 

Conclusion

Ok so I've wrote down a whole load of things so far, have I proven that SOA is just outsourcing for applications, well of course not and that wasn't really the point. However what I was trying to show is that there are a hell of a lot of similarities between SOA and Outsourcing as an approach and although business usually struggles to get to grips with SOA and has done for quite a while, they do understand Outsourcing very well indeed.

Maybe one way forward could be to talk about SOA using an outsourcing metaphor, this might help with those business/IT interaction challenges and remove some of the fear factor. One of the difficulties in communicating SOA is the lack of a common language for describing and explaining it. There aren't many well defined patterns or models. Maybe this is where we could look to outsourcing to see if any are transferable.

When you look at the differences you probably notice that actually a lot of the differences tend to come in the detail and implementation which often falls within the IT area anyway for projects based on SOA principles.

It would be good to know if anyone agrees with any of the above or if I'm just talking a load of rubbish

Posted on Thursday, October 29, 2009 10:06 AM BizTalk | Back to top


Comments on this post: SOA is just outsourcing for applications – Discuss?

# Drone
Requesting Gravatar...
Drones are super cool, and there are no two ways to look at the statement, and today we are going to reveal the best drone camera under 200 you can ...
Left by Best Drone Camera on Feb 20, 2017 8:53 PM

Your comment:
 (will show your gravatar)


Copyright © Michael Stephenson | Powered by: GeeksWithBlogs.net