Software developers need to do it more often. In fact, some say they should be thinking about it all the time.
We’re talking about software interoperability – the idea that independent developers can develop for a common component repository that can be easily retrieved and combined into larger assemblies. So when it comes to developing code, why do we want or even need software interoperability? Experts say when developers share code or code fragments it often avoids duplication, reduces cost, increases functionality and speeds development.
“From a software interoperability perspective, there are a number of different reasons why it is important,” said Stephen O’Grady, analyst for Illuminata Inc. in Nashua, N.H. “The biggest reason is portability – you don’t want to develop code that runs on one platform and has to be heavily modified to run on another.”
O’Grady said the biggest technology barrier facing software vendors and developers is balancing standards and functionality.
“Standards are always going to lag behind functionality and it’s very difficult for developers to say to middle management that this is a great feature but we don’t want to implement it because it’s not standard yet,” O’Grady said.
In the developer community, one reason why some developers might shun interoperability is that they “like to get their hands dirty,” said Orion Buttigieg, software developer at Calgary-based workflow solutions provider Teamplate Inc. “Even if the technology is there, they’ll still go in there and there is an understanding to that. The more distanced you are to the mechanics of what’s going on, the tougher it might be to solve that problem.”
But developers can’t afford to put themselves on a technological island, he said. “Especially if you’re going to take a product to market, really look at the technologies out there and pick the expansive ones. It’s easy to not do that because developers like to stick with a language or technology that they’re familiar with and also because the industry is demanding that they do it quickly,” Buttigieg said.
Developers and programmers may not have a choice, as vendors and customers alike search for products that are able to interconnect – if it wasn’t a big issue, larger companies like Microsoft and Sun wouldn’t be making it such a priority, Buttigieg said. He added that companies are realizing that customers want to upgrade at their own pace, so creating applications and programs with interoperability in mind is good business. “Large institutions such as banks, insurance companies and trading houses aren’t going to spend the money (continually) updating their systems…interoperability becomes a way to further the industry.”
The barriers to software interoperability are more psychological than anything else, said Robert Perry, senior research analyst for application infrastructure and software platforms at The Yankee Group in Boston. The main concern, Perry said, is how components are going to interact with a particular product, adding that developers most often have an incentive first to deliver an application second to make it interoperable – but it’s still important to have it in mind. “Outside of the needs of your particular application, think about what components from one application could be used in another and how you developed it. Think about what the standards of input might be and the standards of output might be,” Perry said.
Even in the face of open standards such as XML and Web services, developing interoperable code makes things easier, Perry said, adding that developers shouldn’t try to make everything interoperable but rather think about it where it’s most logical.
O’Grady said it’s all about making software interoperability a priority. “Organizations have to look at the long term impact as well as the short term of meeting deadlines,’ he said. “Take the time and adhere to all the established standards because a lot of the time it is easier to cut corners.”
Interoperability, O’Grady added, allows “your applications to be managed more easily across the enterprise…that type of interoperability is pretty crucial.”