“Shifting left” in application development offers a faster return on investment by allowing IT to catch errors earlier in the software development life cycle, cutting the time between releases and improving software quality. This article gives a brief refresher on the shift-left concept, describes how service virtualization can help software development organizations put it into practice, and highlights real examples of how shifting left and service virtualization combined are fueling innovation and growth.
You can’t ‘test quality into’ a system
Today’s CIOs recognize that they need to be innovative, delighting their customers at every opportunity, in order to survive and grow in highly competitive markets—those that don’t have already been left behind.
However, developing and delivering software releases and new customer-facing applications on time is a growing challenge, particularly for large enterprises that must contend with a complex web of modern technology like service-oriented architecture combined with legacy systems and resources. And these large enterprises are up against faster, cloud-based start-ups only restricted by the credit limits on their credit cards.
This is indeed a problem, which was illustrated in “The Business Benefits of Service Virtualization” study of 200 software developers and testers from large enterprises in North America, released in November 2011. Respondents acknowledged that constraints in the development process are resulting in loss of reputation in the market (96%) and loss of customers to competitors (93%). At the same time, 74% admitted that reduced functionality impacts the customer experience, and 72% said that new customer offerings are late to market.
So, what can be done to improve overall quality while at the same time accelerate release cycles to help companies bring new services to market faster – in order to drive growth or maintain their competitive edge?
A long talked about theory in software development is the idea of “shifting left,” where software development and testing teams work to bring higher degrees of quality – usually through testing – earlier in the software development life cycle. The problem is that the majority of testing is not done until the service is completed—after integration and user acceptance testing—making it nearly impossible to test quality into a system. An early article on the shift-left topic (back in 2001) noted that “Bugs are cheap when caught young.” Errors caught at the end of a development cycle are more difficult to fix, cause unnecessary downtime, and lead to significant productivity losses. Of course, bugs that make it into production can have an even greater impact: damage to the brand and lost customers as they defect to the closest competitor.
If the software development industry has been talking about this for at least a decade, if not more, then why do we continue to see issues with delayed releases and error-prone applications? Though Agile methodologies – through parallel development, etc. – do address this issue to some degree, due to the complexity of environments and composite applications, Agile teams are often stuck waiting in a queue once all of the pieces come together in the performance and user acceptance testing phases. Agile approaches help development teams work more quickly, but they often hit the same constraints as traditional waterfall approaches when it comes time to integrate and test.
What development organizations need is access to a range of virtualized environments that look and behave just like the real thing, and they need access to these resources at every stage of the development life cycle at the component level, without any constraints. What they need is service virtualization, which becomes the key enabler for today’s IT organizations looking to shift left – to find errors earlier in the life cycle and to resolve them more quickly and cost-effectively. Each component can be tested individually in the context of its environment rather than waiting until assembly when issues that crop up are most costly to address.
Companies fueling growth with service virtualization + shifting left
Several smart companies are already seeing the benefits of shifting left enabled by service virtualization. There are early examples of success in the financial services, telco and retail industries; by delivering customer applications faster, these firms are able to enhance customer loyalty and grow market share.
By putting shift left into practice with service virtualization, Sprint-Nextel has been able to launch its most important products to market faster than before, as reported the book “Service Virtualization: Reality is Overrated,” by my colleagues John Michelsen and Jason English. Sprint-Nextel also built 300 virtual services in a year by reducing the release cycle time while making improvements to the quality of the code much earlier in the lifecycle. The company has avoided what they call ‘system test gridlock’ where each application waits on the next causing a bottleneck. Following the launch of an in-store pilot app, they built 80 virtual services in the first two weeks of the project. For the first time, they were able to do stand-alone system testing for the app – something that would not have been possible before.
One financial services company took advantage of this approach to develop and release a first-to-market innovative service in a bid to win over new customers. This company was looking to roll out a new mobile offering allowing account holders to use their mobile phone camera to deposit checks. The firm was able to bring a very high quality service to market more quickly than the competition with the help of service virtualization, which allowed them to identify issues earlier and address them much more quickly.
Lastly, development teams at an international courier firm use virtual environments to shift left, moving their software testing efforts to the left side of a horizontal timeline. As a result they were able to go to market with a new application one month ahead of schedule and realized millions of dollars in additional revenue as a result.
Helping IT deliver faster
Though the concept of shifting left may sound a bit passé, given the challenges many companies continue to face in rolling out high quality software releases quickly and cost-effectively, there’s clearly still room for improvement. Today’s technology – with options such as service virtualization – is helping to bring this shift-left idea from concept to reality. With software, there is constant pressure, perhaps even more so with the pace of business and change today, to deliver faster. Service virtualization empowers development teams to shift left, enabling the enterprise to open new doors and drive competitive advantage and growth.
By Shridhar Mittal
Shridhar Mittal, general manager of Application Delivery at CA Technologies, leads a team responsible for addressing the most critical challenges in operationalizing DevOps methodologies. The group is focused on helping customers improve application development and delivery to accelerate innovation through service virtualization, release automation, DevOps data mining and environment management.