SOA and Agile Development: Continuous Integration And Testing


critical component in the agile development success. The component-orientation of these projects requires testing at the integration level. In a sense, SOA is gaining success for its ability to provide "agility" to the business. The very nature of SOA is to quickly deliver IT supported change in processes as the business needs and priorities change; a goal similar to agile development methodologies. Iterative, incremental processes are focused on delivering true value to the business in fixed increments of time which creates a culture of success and confidence. 

Continuous Integration And Testing In Agile SOA Projects
The success of an SOA project also depends on the ability to continuously test the system under development. During SOA projects, testing can easily be pushed to the end as teams are consumed with simply finding a solution to the complexity. The knowledge of how the system actually operates comes too late. The goal of an agile development project is to validate where you are at short intervals of the project. By sticking with an agile approach, a much stronger, high-quality solution will emerge. 

Through the use of short iterations, teams will begin delivering value to the enterprise immediately. Quality solutions and adaptable architectures will emerge and be delivered with confidence. The working component solutions can be demonstrated to project stakeholders. Tools that support project management, system development and customer support, including JUnit, ANT, CruiseControl and VersionOne, are available to suit the needs of various team and technology environments. The key value of the tools should be to provide visibility and demonstrate system integrity as it emerges. 

The focus on integration and SOA has identified the need for an enterprise tool that provides for the recording and automation of integration-based tests, which can also simulate components that are still under development or unavailable. Through the adoption of this tool, the complexity and distributed nature of organizations building SOA is supported by allowing both visibility and the reduction of risk from concept through delivery and will continue driving quality and compliance as business processes change in operations. Tools of this type can support an iterative and incremental development approach necessary to increase the chance of success on these types of complex initiatives. 

In high-transaction systems, even small processing errors can result in a significant percentage of failures. Quality Assurance (QA) organizations and Integration Competency Centers will need to find tools that allow these complex integration architectures to be tested effectively. This means automated and intuitive access to integration infrastructure. Business process analysts and QA staff must be provided with a better view of the SOA. The complexity of data in message-based integrations and Enterprise Service Bus technology must be extracted to a higher level for testing and analysis. A tool that helps these people understand the underlying infrastructure and keeps them focused on looking at the business process steps will contribute to a successful integration implementation. Organizations that invest in the people, processes and tools to make their SOA initiatives successful will certainly reap the benefits of speed-to-value moving their organizations up the SOA maturity scale with the confidence of a strong foundation.

About the Author
Bob Schatz is the VP and Chief Development Officer for Solstice Software and is responsible for leading the software development of all Solstice products. Prior to this, Schatz served as VP of Development for Primavera Systems, Inc. Before joining Primavera, Schatz spent seven years at Liquent, Inc. As a 23-year veteran in the IT industry and a recognized leader in agile software development, Schatz is a frequent speaker at industry conferences on the subject of successfully implementing agile development techniques in organizations. 

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.