I am the Programme Configuration Manager for the SOA programme for a large UK financial company, which have adopted an SOA approach for creating new services to replace existing
Part of the problem which I have found when first trying to come up which a Configuration Management strategy, is that normally you can go to the internet and there are lots of articles on a subject in a particular area. However, what I found was that there is very little and what there is, is mostly theoretical even from well established names.
This series of articles is looking at different aspects of the introduction of the SOA into software development and mainly concentrating on the Configuration Management aspects of the lifecycle. This looks at taking a lot of theory and how this migrates in to a practical Configuration Management processes such as build management, release management and defect management. All these areas have a new way of working to support the SOA environment.
Hopefully this series of articles you show how much effort is require having a new understanding of the Configuration management. It must be clear this is not the only solution to the CM aspect of this area but hopefully this will give all Configuration Managers some pointers of what they have to think about when putting a CM system for a SOA system.
As in any large companies that are many existing and well-established processes that have been used for many years and what I have found even in these early days of the programme is that many of these processes do not support the SOA environment.
One thing I have noticed is the management attitude towards SOA development because they have readily accepted that the work we are doing in the area is not cutting edge software but bleeding edge software. It has been explained to them that they is little reference material on this area apart from theoretical and mistakes will be made and major changes to processes will be made and they have taken this on board.
One of the things I have noticed very quickly is that you need to explain what this is because many people are used to applications rather than a service being created. Therefore I have to do is explain what a service is and a came up with this,
If there are eight departments and they all need calculators the company will build eight different calculators. What SOA tries to do is to take the eight calculators and extract the core components when it is re-engineering a process, so it creates the core components and eight interfaces and the core components can be used again.
When approaching this type of development the communication between supporting departments is very important. This is because many people when there first hear about it can make them defensive because in some cases they know it may affect their job in the company. The way this has been sold into the company is by:
- Where we can use existing process, which fits in with the programme then use it.
- Where need to adjust the processes of the company demonstrate to the people what parts of the process need to be adjusted.
- If a new process need to be written then the outline of the process is written and discussed with the various departments involved. This shows them some thinking has taken place, but the approach I have taken is to mention this is always open for discussion which makes them feel as part of the decision making process.
With the introduction of SOA there is a new language to learn as well because people even familiar with Java development there will be some new concepts and a new language to learn. To understand this language the technical architects of the programme have been a great source to tap into because they tend to live and breathe this kind of development.
The amount of software tooling that has been required to support the development of SOA has been greatly underestimated and part of my work has been to get all software used by the developers, Analysts and testers to the correct version. This has included purchasing all the necessary memory not only for the PC's but the servers as well. The types of software we used will be explained and