Ephesoft Insight is an advanced repository mining, content extraction and data analytics application that is built on open source technology. Insight leverages the best in class Big Data technology like Hadoop and the Apache stack in order to effectively manage the throughput of billions of documents and images. As such, when discussing the merits of Open Source technology with new and prospective partners or customers, I am occasionally asked, “Why shouldn’t I just build this myself?”
While there are certainly advantages to creating a unique and custom problem-solving solution, there are many barriers to project completion and follow-through when developing an application in-house. The build versus buy debate can be broken into four key areas of consideration: (1) timeline and resources, (2) product expertise, (3) customization, and (4) ongoing support.
- Timeline & Resources – How long will it take to develop, test and deploy a home-grown solution? Does your organization have the resources (financial or personnel) to complete the development of custom applications?
The demands of application development can be challenging, and even organizations with the best-laid plans often run into setbacks throughout the process. That businesses want to save money and increase profits or that government agencies are mandated to cut spending as a result of diminished budgets is clear. And the temptation to build a custom application using free code and leveraging open source technology can be compelling. But it is important to take into account the time spent (think, developers’ and project managers’ salaries) in development and testing as well as the IT resources allocated for ongoing support of the product. If your organization’s IT department is already taxed with day-to-day operations or other project deployments, consider whether development of a custom application should be prioritized.
- Product Expertise – Does your organization employ individuals with existing expertise for the desired solution outcome?
The ability to code, develop, test and debug software applications is a niche skillset. If your company does not have an extensive in-house software team with the required skills to build a custom application, than it would be advisable to purchase an existing product and simply make any necessary customizations prior to solution roll out. And if your organization has an IT team with development experience, explore whether your staff has deep expertise in the line of business subject matter. An aptitude for coding and process- or workflow-specific knowledge are often mutually exclusive skillsets.
- Customization – How specific are your project needs to your organization? Would you be better served with an off the shelf product or a customized COTS application?
Are you in an industry with common or horizontal lines of business, such as banking or insurance? If so, odds are good that an off-the-shelf product is available for most application requirements. If you believe your application need is unique to the industry, consider engaging in market research to learn about available software offerings used by similar organizations. And if a product exists in the marketplace that offers even 75% of your desired solution capabilities, it would be wise to consider a hybrid approach to the build vs. buy quandary. A commercially available application could get your organization most of the way to your desired end-state without the upfront cost or timeline of in-house development. Choosing an off-the-shelf product that can be customized (either by your own IT team or by the Professional Services team of the solution provider) to meet your unique needs could provide your organization with a competitive advantage while minimizing the risk of project delay or failure.
- Ongoing Support – Will upgrades or version changes of core (open source) technologies affect your home-grown application? Does your IT team have the resources to manage an additional or new application in perpetuity?
Beyond the immediate costs of application development, home-grown applications also incur long term support and upgrade costs, which can be difficult to project. Active support and ongoing maintenance is critical to the success of any line of business application, and that support must be taken into consideration when allocating IT’s time and budget. Unlike in-house developed solutions, open market software applications typically include annual support agreements for upgrades, break/fix maintenance, and day-to-day application management to alleviate IT’s burden of support.
Additionally, versioning support is often overlooked when an organization considers developing and implementing a custom solution in-house. When an application is built on specific versions of Apache or Mongo db, for example, changes made in point and dot releases of the open source application or database can break or impair an custom-created application running these services. Adversely, companies that develop, maintain, and sell COTS applications are tasked with testing, (modifying/patching) and supporting their product to ensure compatibility with new environmental releases.
To summarize, regardless of whether your organization elects to build, buy or adopt a hybrid approach when implementing a new application, it is crucial to consider short and long-term costs, subject matter expertise, timeline and ongoing support.