"The online business magazine at the heart of international business management news..."
New Account

The Magazine

Issue 10

E-magazine
  • Previous Issues

Blog

Where our team of editors discuss what they think about the current BM issues.

Seth Shaw
VP of Sales and Marketing - LogMeIn

Don't miss your connection!

Seth Shaw, VP of Sales and Marketing at LogMeIn, discusses how business travellers can stay connected during their travels
05 Jul 2010

How a Simple Adjustment to the SOA Life Cycle Will Save You Millions

No Comments

Global 2000 business managers know that IT is under tremendous pressure to ensure that the infrastructure continues to meet rapidly changing business requirements. The result has been a trend toward service-oriented architecture (SOA), which allows IT to get more out of current investments and to offer new products and services to market faster, all while driving down operating costs. While some enterprises are experiencing the benefits of SOA, including business agility and greater return on IT investments, the shift toward this new computing model is not risk-free. As many executives are fully aware, an alarmingly high percentage of SOA software projects are delivered late, meet only a fraction of requirements or fail outright.

Thankfully, our experience shows many of these missed expectations and failures can be corrected with simple changes to the SOA development life cycle; by changing something that is often overlooked, but easily addressed with the right tools – tackling integration testing earlier in the life cycle.

How SOA Changes the Software Development Life Cycle

For years, tightly knit IT development teams have focused on unique, custom-built applications as their deliverable units of work. SOA changes this paradigm. With SOA, development teams deliver applications based on distributed, re-usable components instead of customized applications to the enterprise. A successful SOA requires that these many moving parts work together closely in the midst of constant change. This dramatically changes what parts needs to be tested, how, and when.

To make matters worse, the fundamental shift toward out-sourcing and off-shoring complicates the development process further by isolating part makers from each other. Limited accessibility to components created by other teams makes unit testing much more difficult and unreliable. While each developer works against a specification, his interpretation might not match that of his peers.

As expected, this leads to serious last minute complications when the application is assembled in the test bed for the first time. Without a single point of contact, now parts have to be assembled to create the application before testing can begin. Not only are testers blocked from getting an early look at the application; they are being asked to make room in the testing phase for a task that never existed before.

Another challenge of testing SOA infrastructure is that processes must flow across application platforms, hardware technologies, and development teams. With SOA applications being composed of loosely coupled, business-level services that are distributed across the network, organizations must test the applications end-to-end, service-by-service and interface-by-interface. Clearly, new approaches and tools are needed to meet this challenge.

By necessity, testing has remained primarily a back-end task performed at the end of the fully assembled application’s life cycle. Improved quality assurance (QA) techniques like Test-Driven Development promote the preparation of tests from the start of a project, but QA cannot execute such tests until an assembled application exists. Our experience has demonstrated that quality unit testing as early as possible is vital to keeping projects on schedule, and test organizations must work closely with development to get first access.

While it’s true that organizations need to test just prior to publishing new services, not doing so beforehand results in serious defects related to system integration. When defects are discovered much later in the life cycle, changes are most costly to implement. More efficient organizations are painfully aware of these limitations. If Global 2000 organizations are going to successfully design and deploy an SOA, it’s critical they better manage this increased complexity so that testing occurs earlier in the life cycle.

How to Address Testing Challenges in the SOA Life Cycle

IONA’s customers take different approaches to address SOA life cycle management. Some have combined applied computer science, knowledge management and other techniques to address SOA testing challenges. What we’ve learned, is that the most successful companies have implemented processes and tools to accomplish the following four objectives:

1. Standardize on shared, explicit interface definitions
Interface requirements must be followed closely because slight variations will put a project weeks or months behind schedule, especially when they are being shared by multiple teams. By leveraging standards like Web Services Description Language (WSDL) and XML Schema Documents (XSDs), organizations can create explicit interface definitions that act as contractual agreements between components. As a result, developers, testers and systems can use these definitions consistently throughout the life cycle, ensuring increased productivity and far less rework.

2. Provide early access to interfaces for testing
Testing interfaces early requires more sophisticated tooling than traditional application development environments provide. As a first step, developers often employ home-grown simulators to validate that interfaces are functioning correctly. However, these simulators are typically based on the developer’s interpretation of the specification. Validating the interface against independent tests ensures higher quality. And providing all developers with the ability to validate against the same interpretation of an interface eliminates the potential for discovering serious defects when the application is finally assembled.

3. Create a shared infrastructure to simulate end-to-end distributed application scenarios
Development and QA teams need a shared infrastructure that simulates end-to-end distributed application scenarios and demonstrates how individual components interface with each other in a production environment. Such an infrastructure allows QA and development alike to test interfaces in a consistent and predictable fashion and enables the detection and repair of defects much earlier in the life cycle.

4. Support geographically distributed collaboration
Integration by its very nature is a collaborative process between development and testing teams throughout the development life cycle. An effective testing infrastructure should support the entire extended team of players collaborating on the SOA infrastructure. This team includes the process owners who write requirements, the developers implementing them, and the QA teams verifying the functionality and performance. To support team collaboration, organizations must implement issue tracking and document versioning systems. In addition, a dashboard view into the overall process makes it easy to spot problems, monitor the overall project status and determine what must be done to ensure on-time system delivery.

A Real World Example

The IT department of a global 100 telecommunications company was unable to keep up with business needs, often delivering projects late or failing to meet all necessary requirements. Despite established processes to manage their SOA life cycle, they found that too much time was spent specifying and revisiting system connections. The complex development environment, coupled with the distributed nature of development teams, made it difficult to integrate and test against production systems across multiple technologies.

The company’s specifications for messaging and application interfaces left too much room for interpretation; the company did not have a discipline for sharing and updating collective information, nor did it have a formal process for testing compliance with specification documents. This caused errors and defects to be discovered very late in the life cycle, at an enormous cost to the organization. The organization dedicated a large number of resources to software testing to combat such errors, resulting in high development and QA costs. The IT department was unable to keep up with integration issues, and ambiguous, incomplete or out-of-date system interfaces littered the infrastructure.

These issues resulted in long release cycles for key applications needed by the business to be successful. Most importantly, long testing cycles and delays in system delivery negatively impacted revenue; the company was not able to leverage those systems to quickly exploit new business opportunities.

The telecommunications company turned to IONA because of our experience solving difficult integration problems for more than a decade. By implementing a methodology to standardize specifications, facilitating team communication and automating integration testing earlier in the life cycle, we were able to help IT streamline their project life cycles and meet system delivery deadlines.

The company leveraged IONA’s Interface Simulation Framework for SOA to dramatically reduce the time and costs of testing application interfaces. The Interface Simulation Framework is an extensible SOA simulation tool that allows IT developers and testers to simulate end-to-end distributed application scenarios. The Interface Simulation Framework demonstrates how individual components will interface with each other in production and enables the detection and repair of defects much earlier in the software development life cycle (SDLC).

By enabling automated integration testing earlier in the system development lifecycle, IONA protected project timelines to help the company produce higher quality systems with less down time. Using the Interface Simulation Framework, the company was able to significantly reduce the time, effort and costs of application development and testing, delivering higher quality systems into production weeks ahead of schedule. IONA enabled the global 100 telecommunications company to:

  • reduce the number of full-time employees dedicated to services testing by 75%
  • decrease development and QA costs by nearly US$15 million over three years
  • reduce the life cycle for major releases by 2-3 weeks, allowing them to exploit significantly more new business opportunities

In Summary

Clearly, applying application-centric testing practices to SOA has created new challenges for IT shops trying to deliver quality solutions to market. But as experienced organizations have demonstrated, implementing effective processes and tools that enable testing earlier in the SOA life cycle is critical to delivering the benefits inherent to SOA, including business agility, increased ROI and lower operational costs. This approach allows organizations to deliver SOA-based projects on time, while reducing the costs and resources dedicated to testing. By studying how leading organizations are working through the challenges associated with integration testing of their SOA deployments, and implementing their lessons and best practices, you too will save your organizations millions.


More like this...

Disclaimer: All comments posted in a personal capacity
POST A COMMENT
In order to post a comment you need to be regsitered and signed in.
Register | Sign in
No Comments Have Been Submitted
Disclaimer: All comments posted in a personal capacity