Have you ever watched a hamster running in circles on a wheel? The hamster is working so hard and the wheel is spinning so fast, yet the animal does not go anywhere. Sometimes, it seems that the manner in which we deliver new functionality in software is just like the hamster running on the wheel. No matter how hard we try, we simply do not seem to be getting to where we need to go as fast as we want to get there.
We have all been there and felt this way. It is not a reflection, perhaps, on our dedication to performing our jobs well. And, there are obviously many reasons why the system life cycle is not as efficient as we would like. I believe there are some simple ways for us break out and deliver higher quality solutions to our business partners.
#1 – Look at what others have done: We all become mired in the process and methodology used to deliver IT system functionality. Often, performing activities differently seems foreign. For example, why would the owner of system A wait until the team from System B delivers their system so testing within System A can occur? Service virtualization techniques break out of the mold by enabling the team from System A to pre-test their components before System B is even ready. When the systems are connected and tested, the quality is proven to be higher and the number of overall defects is reduced.
Similarly, the CA Communities provide a wonderful mechanism for sharing knowledge and experience. The 'Community' offers a platform for exchanging ideas and obtaining information from folks that have "been there, done that, and have the t-shirt to prove it". One of its main goals is to help others succeed. Why not use the 'Community' to improve the way you deliver systems?
#2 – Change the Environment: We are all creatures of habit. There is nothing wrong with that. However, we become too comfortable doing the same things in the same ways. Yogi Berra, a baseball legend, expressed this nicely when he said: “The more things change, the more they stay the same.” Service virtualization is disruptive in that it requires us to change the way we perform work tasks. For example, why should we wait until systems reach a pre-production environment to perform load testing? We should performance test all the systems together, and a L&P environment is the place to do that. However, performance testing an individual application for the first time in L&P seems too late because any change results in retesting, promotion of the change(s) through the lower level environments, and retrofitting code into in-flight sprint cycles. All of these steps occur so that another end-to-end performance test can be executed. Why can’t performance testing occur while a given system is under development – where developers are better positioned to make improvements in a more cost and time effective manner? Service virtualization positions our teams for shifting costly and high impact changes to the earliest possible time in the life cycle where they are the easiest and cheapest to fix – development.