Back when enterprise application development first became important, it was a case of "who knew?", as in, "who knew all these applications would one day have to play well with each other?" Today, however, there is no excuse. Every developer should know that, to paraphrase Clarence in It's a Wonderful Life, every application touches so many other applications.
Knowing it is one thing, though, and doing something about it is something else. Here are 10 things ISVs need to keep in mind when developing new applications.
Web services are here to stay No matter what type of software you're creating, it should contain secure Web services for any back-end functions -- authentication, privilege levels, encryption, logging, auditing, etc. Web services and service-oriented architectures are becoming increasingly important in today's enterprise. If you can't connect to them, your software may not get a second look.
Create true interoperability Interoperability is one of those words that crops up a lot in press releases, but its meaning seems to vary depending on who's using it. True interoperability, however, is really an automatic function rather than a manual one. Two applications should be able to deal with each other natively without a great deal of gnashing of teeth. If someone has to create a connector manually every time your application needs to interface with another, your application will quickly become bloatware. It probably won't work well across the board, and users won't be able to get the support they need. Make it simple -- build in automatic interoperability.
Look beyond the walls Interoperability isn't limited to internal systems. Financial institutions and manufacturers, for example, both need applications to interface not only internally with each other but also with suppliers and dealers as well. Making sure information such as purchase orders can move from one system to another -- no matter what that "other" is -- is key to taking advantage of technology. Every time something needs to be re-keyed, it creates an opportunity for error. Keep data exchange automatic without either side having to change their systems.
Allow for multiple sources Most communications applications draw information from a variety of different sources, including LDAP, databases, email, CRM, and HR systems such as SAP and PeopleSoft. Each of these has a protocol, so the more technology-agnostic you can make your application, the better able it will be to serve as a central point for all of them. This is particularly true when information is integrated into a portal -- or maybe sent to someone else's portal for aggregation. Becoming the conduit between all of these applications makes your software more valuable.
Emphasize security, especially in HR HR applications touch more users' lives than others, because their data pertains to everyone within an organization. HR is the starting point for all personnel data, such as payroll, vacation time, healthcare benefits, authorization to access certain systems, passwords, and more. As such, there is an even greater need to integrate them with other applications. At the same time, however, there is also a greater need for security and availability for the same reasons, and the more difficult it is to make the connections, the more likely it is something can go wrong.
HR information escaping through a wormhole can be embarrassing for an organization. But if the data are covered under laws such as HIPAA, the leak can be costly. The more rekeying that's required, the greater the likelihood of a leak. As the CIA says, if two people know, it's no longer a secret. Passing information directly from system to system based on a set of rules minimizes the potential risk.
Simplify manufacturing Earlier I mentioned manufacturing in terms of working with suppliers and dealers on a fairly simple level. Yet the truth is, manufacturing requires a complex series of relationships. You have to manage multiple internal processes, such as scheduling, materials handling, and shipping and receiving, as well as external processes all along the supply chain. The paradox is that while manufacturing is one of the industries that most needs technology integration, it's one of the least integrated industries.
Some organizations try to apply a full Oracle or SAP suite, but because they're focused on internal processes, it only solves half the problem. Your opportunity is to give manufacturers a turnkey system that easily matches up to supplier and dealer systems, whether those systems are purchased off the shelf or custom-designed. The more you can simply the entire manufacturing process, the more ingrained you will become with those clients.
Leverage single sign-on This is one of the "holy grails" of productivity. Users don't want to spend their time looking up and entering passwords in order to do their jobs. They want to be able to sign on to the network once and have their login information follow them as they go. Good integration tools allow you to let that happen, especially with older applications that were built when networks were uncommon. Offering single sign-on puts you at a tremendous advantage in the battle for the hearts and minds of corporate decision-makers.
Track those projects The growth in outsourcing has greatly increased the use and importance of project tracking software. While it's good to track hours and expenses internally, it's even better to be able to share that information with clients via Web sites, an extranet, or even email. If data on project hours can be imported directly into a client's accounting system, it greatly simplifies the payment process. (Whether it speeds it or not remains to be seen.)
See the big picture Most ISVs tend to focus solely on their own applications. For the most part that makes sense, because you want to keep focus on things you can control. But in this increasingly connected world, smart ISVs also look at the business aspects of their software, i.e. how it will be used in the real world, and plan ahead of time for integration. While you may not be able to envision every scenario, the more you work toward universal, automated connectivity, the better off you will be.
Build or buy? It's the age-old question -- whether to build your own integration engine or buy one from someone else and incorporate it into your product. To answer that question, do the math. How much will it cost to assign or hire one developer to create the integration tool, and how long will it take? Now compare that to ready-made tools that can be incorporated in anywhere from a few hours to a few days. Even if you go offshore for this phase of the development, you can't build it as cheaply as you can buy it. There's also the question of core competence. A company that specializes in horizontal integration of various applications is far more likely to think of all the possibilities than one who is internally focused on your products.
Whatever you decide, building your applications with integration in mind gives you a key selling advantage in the marketplace, and helps you move from being a vendor to a partner. Give your brainchild the ability to play well with others, and you'll reap the rewards time and again.
JT Smith is the director of technology for WDI, the makers of the Business Integration Engine and other Open Source enterprise application tools.