SOA and Agile Development: Continuous Integration And Testing

[article]
Summary:
IT organizations view the adoption of agile development methods as a way of bringing an "integrated team" approach to the product development lifecycle where everyone is focused on early, frequent demonstrated results. The second shared goal is service-oriented architecture (SOA). SOA is an approach to deliver integrated component-based ecosystems that are assembled to efficiently execute critical business processes. The goal of SOA is to be flexible and adaptive to the constantly changing business climate. These two productive approaches, when applied concurrently, are setting the stage for the next evolution in the deployment of technology to enhance business performance and results.

IT organizations view the adoption of agile development methods as a way of bringing an "integrated team" approach to the product development lifecycle where everyone is focused on early, frequent demonstrated results. The second shared goal is service-oriented architecture (SOA). SOA is an approach to deliver integrated component-based ecosystems that are assembled to efficiently execute critical business processes. The goal of SOA is to be flexible and adaptive to the constantly changing business climate. These two productive approaches, when applied concurrently, are setting the stage for the next evolution in the deployment of technology to enhance business performance and results.

Agile Development Community Growing
The challenges that development teams face today are extremely complex. New techniques, emerging technologies, globally dispersed teams and tremendous pressure from the business units to create an environment where failure is not an option have made projects increasingly harder to complete. {sidebar id=1} Successful teams will need to master new approaches and techniques in order to remain competitive. Many companies are working within their organizations to implement agile development techniques. We have to re-train our organizations to work closer together to deliver quality solutions to the business as quickly as possible. Teams now must make critical decisions on a daily basis and adapt to the changing nature of the business processes. 

Today's development teams are cross-organizational and capable of changing rapidly to meet the critical needs of the enterprise. Continuous integration and testing is a key success factor in agile development projects. Teams using agile methods such as Extreme Programming (XP), Scrum and others deploy work in short iterations to "grow" a system. The agile methods require the whole team to focus on quality throughout each iteration, which ensures the system is built on a sound foundation. Testing is no longer a phase in the development cycle that begins when development is "frozen." The system under development must be kept in a high-quality, working condition at all times. With software builds and integration taking place on an hourly basis, there is just no time to perform extensive manual tests. To accomplish this goal, the team must commit to automating as much of the testing process as possible. This testing must be done at various levels of the system underdevelopment. Relying solely on testing the GUI level can provide the team with a false sense of security. 

Push To Integrate Through SOA
The enabling feature in today's corporate environment is integration. After years of building and buying systems to help the corporation remain competitive, the focus is now on improving how these systems work together to effectively support a myriad of business processes. SOA has emerged as the new language that both business and IT are using to address these challenges. For example, Jon Bachman offers a model for SOA success in February's Network World (see http://www.networkworld.com/news/tech/2006/021306-soa.html) and Ali Arsanjani describes a maturity model approach to SOA on the IBM developerWorks website (see http://www-128.ibm.com/developerworks/webservices/library/ws-soa-simm/). These models provide a framework for an incremental, value-driven approach to achieving a SOA where investments show ROI along each step towards maturity. 

Agile Helps To Achieve SOA Maturity
Many of the projects using agile methods today are SOA-based projects. Agile methods provide the structure for teams to tackle these challenges by keeping them focused on short-term wins and ensuring the integration of IT with its business counterpart. By tackling the challenges in increments and delivering working functionality more frequently to the project stakeholders, the team begins to gain confidence as they see the solution emerge. 

Producing working functionality in steps within complex integration projects may seem impossible. Automation is a

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Nov 09
Nov 09
Apr 13
May 03