From Software to System to Service
Service Architecture: In terms of architecture, to optimize a service means there must be recognition that a system of inter-connected components are being assembled to deliver the services needed by the business. Service architects need to plan how all the various configuration items (CI) connect together. Dependencies need to be identified and any issues identified and dealt with.
Service Testing: The development of test plans also highlights the need for a services mindset. In order to understand how a service will perform in production requires testing in a manner that reflects how the service will be delivered. Performing unit testing in a vacuum excluding the balance of the services CIs introduces risks that the production service will not perform as planned.
There are recognized testing regimens such as integration, load and operational testing that can help test the overall service provided the test service adequately mirrors the production service. Differences in database sizes, network speeds, levels of integration, network security systems and so on can cause there to be different behaviors in the test environment vs. production.
For some organizations it is financially impossible to have a test environment that mirrors production. The intent is to come up with procedures that reduce the risks of introducing a deficient service into production to a tolerable level.
In closing, IT doesnt simply deliver applications or systems for the use of the business. Organizations need to evolve their development life cycle from a software-only approach to one that recognizes that overall services need to be architected, built, tested and implemented accordingly to optimize results.
George Spafford is a principal consultant with Pepperweed Consulting and a long-time IT professional. George's professional focus is on compliance, security, management and overall process improvement.