When it comes to application integration management, most common problems are caused by investing more money and attention to shiny new projects than routine maintenance. Generally, experts say, not being proactive about integration updates and monitoring leads to application performance slowdowns, long-lived bugs, difficult troubleshooting and more. Fortunately, there are best practices -- such as dependency tracking -- that can help software organizations avoid these problems.
What's hindering application integration?
Enterprise software architects should not put off fixing an integration problem, regardless of how daunting it may seem. Forrester Research vice president and principal analyst Randy Heffner said this "hands off" mentality can be problematic, in a recent SearchSOA interview.
Coming up with a capability model is difficult, but very beneficial.
Going about application integration management and maintenance with the "If it ain't broke, don't break it" mindset may result in problems being missed that should have been caught early, according to Heffner. "The issue is you can get so far behind with a packaged application that you have installed on-premise, for example," he explained, "that now, all of a sudden, upgrade to the current version is a major project versus a few little hiccups along the way."
A lack a funding can take away from being able to properly go about application integration management and maintenance. Con-way Inc. principal enterprise architect Maja Tibbling said that despite the obvious downside to not investing in appropriate software management tools, it's an error made all too often.
"The biggest mistake is to allow decisions to be made solely based on individual project constraints, without the bigger 'city plan' in mind," Tibbling said. "This will result in congestion, duplication of work, lost reuse opportunities, hard-to-maintain scenarios and difficult impact analysis."
Without an initial investment into tools for things such as testing, monitoring and visibility, and service repository, Tibbling says a multitude of impacts will be felt. The following are among them:
- Prolonged testing timelines;
- Performance issues that could have been caught during the test cycle showing up during production; and
- Difficulty finding root problems
Enterprise architect Todd Biske agreed that old systems and a lack of funding can make the application integration process a hassle.
"If all we do is deliver new projects and never take the time to upgrade systems, look for redundancies, new options, it will become a big mess," Biske said. "Unfortunately, it is still hard to fund maintenance and management practices in many organizations."
Best practices for optimal application maintenance
Biske concurs that maintenance is key. In fact, he believes it's a best practice architects should follow. "Start tracking your dependencies," he recommended. "It's a painful exercise when we haven't done it for years, but it is a fundamental piece."
Poor management and maintenance is bound to happen, but there are actions enterprise architects can do to mitigate the effects.
"The resolution is to adopt an architecture that can be built incrementally, without too-large, up-front budget impacts, [and] that will result in a sensible, robust, reusable ecosystem over time," Tibbling said. "This takes sound governance, a common canonical model for the business information and some standard patterns and guidelines for all projects to use."
It's also important, Biske advised, to keep systems organized. "This will enable you to run reports and determine where redundancy or complexity exists," he said. "Coming up with a capability model is difficult, but very beneficial."
There are a couple of ways, according to Heffner, to think of application integration maintenance and management best practices. If an organization wants to take a business approach, for example, he said the decision is based on desired outcomes.
On the other hand, an organization's focal point may be on having a good monitoring system for watching, understanding and assessing when apps are changing. "Even if you don't need to deliver new business functionality, you need to keep from accumulating the technical debt of having many different apps doing integration with the same apps in different ways, on different versions of SOA services, and the like," Heffner said.