Stop selling SOA and start selling REUSE!
Everybody knows that it is stupid to reinvent the wheel. Still, we do it. Over and over again. Why? Because we do not think and breathe reuse. We do not create environments that encourage reuse. We do not make reuse an explicit goal and reward people who reuse things, or who design things so that they can be reused by others.
I think most of the SOA evangelists can agree upon that the main goal of Service Oriented Architecture is to achieve reuse. By reusing things we already have produced once, we can get new products and services faster to the market. We can reduce the costs of producing them since we do not have to spend time and money on developing the same thing over and over again. We can increase the quality of the products and services we provide since they build on proven components. And so on.
To be able to reuse different parts of a system, we must identify the parts which are potentially reusable. We must identify stable and discrete capabilities and isolate them as components. We must describe their interfaces in a way so that we can take the system apart into individual components and put the components together again into the same or a new system. This way we have the freedom of modularity. We can take one component out of a system and put it in another. We can replace a component with another component as long as it provides the same capability and has the same interface. It does not matter how the component looks inside.
If reuse is the goal of SOA the key to all the benefits that SOA promises, then why don't we put more energy in selling the idea of reuse and SOA as a means to achieve reuse? If the idea of sharing and reuse does not stick to our minds and affect how we behave, then reuse will not happen. It does not matter if we design the systems according to the design principles of SOA or not.
Besides, reuse is a much better word to use than SOA. Everybody understands what reuse is about. It is not a something that can be dismissed as a hype, as a buzzword that will eventually be replaced by another buzzwords as the industry gets tired of it. The concept of reuse, of not having to recreate things that already exist, has always been one of the key design principles when we have designed IT systems.
So stop selling SOA with SOA. Sell it with the promise that it can help a business to achieve reuse. Sell it with the promise that it can help t leverage existing assets and make the most out of new assets which need to be produced - as long it is properly combined and aligned with other strategic initiatives for reuse and is seen as a means to achieve reuse.
I think most of the SOA evangelists can agree upon that the main goal of Service Oriented Architecture is to achieve reuse. By reusing things we already have produced once, we can get new products and services faster to the market. We can reduce the costs of producing them since we do not have to spend time and money on developing the same thing over and over again. We can increase the quality of the products and services we provide since they build on proven components. And so on.
To be able to reuse different parts of a system, we must identify the parts which are potentially reusable. We must identify stable and discrete capabilities and isolate them as components. We must describe their interfaces in a way so that we can take the system apart into individual components and put the components together again into the same or a new system. This way we have the freedom of modularity. We can take one component out of a system and put it in another. We can replace a component with another component as long as it provides the same capability and has the same interface. It does not matter how the component looks inside.
If reuse is the goal of SOA the key to all the benefits that SOA promises, then why don't we put more energy in selling the idea of reuse and SOA as a means to achieve reuse? If the idea of sharing and reuse does not stick to our minds and affect how we behave, then reuse will not happen. It does not matter if we design the systems according to the design principles of SOA or not.
Besides, reuse is a much better word to use than SOA. Everybody understands what reuse is about. It is not a something that can be dismissed as a hype, as a buzzword that will eventually be replaced by another buzzwords as the industry gets tired of it. The concept of reuse, of not having to recreate things that already exist, has always been one of the key design principles when we have designed IT systems.
So stop selling SOA with SOA. Sell it with the promise that it can help a business to achieve reuse. Sell it with the promise that it can help t leverage existing assets and make the most out of new assets which need to be produced - as long it is properly combined and aligned with other strategic initiatives for reuse and is seen as a means to achieve reuse.