Developing and Testing Composite Applications? Keep calm and carry on...

Facing perfect storm of change?  Do you, as an apps testing and delivery team feel like the Andrea Gail, the famous battered boat in the “Perfect Storm”?   Are your projects reducing cycle times while at the same time shifting to composite application architecture, which means assembling solutions based on shared components and services that may be developed by your team or sourced externally.  And.. on top of this, do you find no “hall pass” for quality, probably facing increasing pressure for secure, scalable, resilient working code?

 

It’s enough to make any tester or developer want to go back to the comfort of green screens and 18 month delivery cycles, but modernization doesn't have to mean re-work, poor quality or chaos.  These projects offer a window to increase skills and have a direct investment in business success.   It’s time to get your arms around the challenges of composite applications and keep “calm”—accept the “composite” application lifecycle-- and embrace three “C”s—visualize change, motivate collaboration, and eliminate constraints.   

 

Keeping calm in rough waters:  Let’s start with the part about keeping “calm”.  There are two main ideas here.   First, composite application architecture is here to stay.  It’s a fundamental set of patterns behind just about every type of application modernization effort being embraced today.   Examples live in all forms, from SOA based applications, to orchestrated business processes and emerging cloud-sourced business services.   You can run, but you can’t hide…

 

The second idea behind keeping “calm” is that applications inevitably have a lifecycle and that lifecycle defines and represents real opportunities to test earlier and test often when it is managed.  However, with composite apps, the management of the lifecycle needs more information, more visualization and more traceability to deliver actionable status and compositional state at any time.    Composite application lifecycles are needy (think teenage athlete and food...)

 

The three “C”’s -- The only thing constant is change—visualize it

 

The first “C” is to visualize change in real-time and relate it to development and testing actions.  Composite application architecture promises agility but often brings risk.   If a component is being used by multiple processes or other applications (think of a single-sign on component for instance), then an unplanned or untested change means havoc across its users.   Development and testing teams need to understand what existing processes and applications may be currently using the application component, where a component is expected to be used and whether they need to dev and test against the different access and usage scenarios.  This applies not only to functional and integration testing but also performance/load testing  and application security, as multiple usage points can impact expected load levels and expose points of security risk.  

 

Visualizing inter-dependencies and multiple usage points across different business processes and applications sharing services and components is easier said than done, especially if you rely on flat sources of data repositories such as spreadsheets and Wikis.   Having a visual navigation solution that dynamically shows actual architecture and service inter-relationships and visually demonstrates change impact of implemented and planned changes will be a big help for teams having to figure out what to test and the impact of a change in real-time.

 

Here’s an example:  (from HP Systinet)

 

HP Systinet

 

  

#2 “C”:  Collaborate, collaborate, did I say collaborate?

 

The second “C” is to drive communication and collaboration during the lifecycle.  You can’t test what you don’t know about.   With composite apps, multiple parts of the application may be being built or provided by multiple development teams.   Testing teams need to know which team is working on what, who owns the source code, which is responsible for fixing defects and what new changes and builds are being implemented as the app progresses through its phase or sprint.   Armed with this information, testing and development teams can collaborate as changes are made, tests run, defects found and actionable data can be passed from tester to developer to speed fixes.   Relying on distributed teams to share real-time info on work items and results via email and phone is tough, if not impossible in fast-moving projects.   Having management software with traceability built in that provides the right data to the right person at the right time in the context of a project or sprint can avoid re-work, highlight issues early when they are less costly to fix and alert downstream teams of upcoming work items.   Add a social media layer to this that supports context based conversations and take collaboration up a notch.

 

Here’s an example:  (HP ALM with Enterprise Collaboration)

 

HP ALM

 

#3 “C”:  Eliminate constraints for smooth sailing

 

So a tester walks into a bar and the bartender says, “Why the long wait”?   The last “C” is to eliminate constraints that slow progress and increase your cycle time.   Composite applications imply that multiple components are orchestrated to work together but what if the components are not all ready or available at the same time?  What if one component hasn’t been developed yet but another is ready to test?  Or if a component relies on data supplied by integration to a production SAP system that operations will only open to testing on Sunday nights between midnight and 4:00 am?   These constraints cause delays or worse, skipped testing steps to hit the delivery schedule.  Constraints don’t have to mean building in developer unit test, functional or performance testing delays.   There is another solution.  

 

Teams can plan for such constraints by looking to virtual services.  Technologies exist today to allow teams to stand up virtual services that are able to learn, through techniques such as interface definition language and data model introspection and record/replay.  These virtual services act as proxies for the eventual delivered service.  They can be identified, modeled, and made available to development and testing teams to keep progress moving on development, unit testing, functional and performance testing.  In addition, forward-thinking organizations who expect an increase in composite application development, shared service and component re-use can set up a shared-service repository with built-in governance that can include virtual as well as actual shared services to reduce duplication even of virtual services

 

Here’s an example:  HP Service Virtualization

 

 

Service Virtualization

 

Did this discussion get you thinking?  Do you want to hear more?

 

Listen to this recorded webcast on the  Composite Application Lifecycle here

 

Or join us at HP Discover Vegas and attend session #2643 “Composite Applications and the Cloud, Keep Calm and Carry  On”, on Tuesday, June 5the at 2:45 pm.

 

___________

 

 

Kelly Emo is Director of Product Marketing for Application Transformation at HP Software, when she is not blogging about composite applications she is trying to fit her single-cup coffee maker into her carry on to ensure she attends the 8 am sessions at HP Discover, Las Vegas, June 5-8th, 2012. 

Leave a Comment

We encourage you to share your comments on this post. Comments are moderated and will be reviewed
and posted as promptly as possible during regular business hours

To ensure your comment is published, be sure to follow the Community Guidelines.

Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
Search
Showing results for 
Search instead for 
Do you mean 
About the Author
Kelly has over 20 years experience with enterprise systems and software in individual contributor and manager roles across product manageme...
Featured


Follow Us
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation.