Build vs. Buy

There are many times when it is advantageous to purchase a commercial software package. If a commercial software package exists that is close to the solution you need, and if the process built into the software is relatively close to the process that you want to follow, then it makes sense to purchase rather than build a software solution.

However, there are many times that it makes sense to build software for your organization: If there is no package that meets your needs.

If you have a process or needs that are unique or rare, there may not be a package to meet your needs.

If your business process differentiates you from your competition

When you buy a commercial software package for your enterprise, that software forces you to take a particular approach to a process. As a result, your processes will be identical to those companies who also bought the package, and your business will operate using processes that can be easily matched by your competition. A custom application helps you protect a unique process and guard against imitation.

If you don't want to change your processes to meet the needs of the software you are purchasing

Enterprise software usually outlines a specific process that must be followed to use that software effectively. We often hear about companies spending years to adapt their processes to meet the needs of their software. Often an easier (and less traumatic) approach is to build software to support your existing processes.

If technology is a critical part of your business

E-commerce is an obvious example. Many tools are employed to build state-of-the-art e-commerce solutions. Software design and development and often database integration are crucial to your site's success. No matter what tools are used, your success early on depends on the developers' strong understanding of technology and technical architecture combined with technical creativity. Even the best software tools won't provide you the knowledge that can be acquired only through e-commerce development experience.

If you want to control what changes are made to your software

When you build software, you control what modifications are made to new releases. When you purchase software, you are just one of many customers that impact how future releases will look and what features future releases will have.

If you are not sure that a purchased solution can be modified to meet your organization's needs, despite the promises of vendors

At times commercial solutions can be modified easily, at others they can be modified with difficulty, and sometimes they can't be modified at all. This all depends on the range of requirements considered when the software was developed. If a scenario arises - such as a new business need of yours - that wasn't considered when the product was developed, the architecture may not allow for the appropriate modification.

If the cost of customizing commercial software approaches the cost of building software from scratch

The cost and effort of customizing commercial software often meets or exceeds the cost of building a solution that meets a company's specific needs. This is especially true when commercial software only partially addresses a crucial business need. In many cases, a company purchases the software, spends a substantial amount of time and money to customize it, and ends up building a solution from scratch anyway when it discovers the package's hidden limitations - only evident late in the implementation process.

If you want to keep using familiar desktop tools

Typically, new commercial solutions come with new user interfaces, and you (or your users) may end up interacting with dramatically different interfaces in the course of a day. A custom solution is designed to fit seamlessly with the systems you already have in place.

If you need to integrate the new solution with existing enterprise systems from the start

When installing a commercial shrink-wrapped solution, the greatest development challenge is to integrate the new application with existing corporate systems. Once that hard work is done, there is still no guarantee that the package will work with these legacy systems completely. By contrast, a custom solution is developed and tested to integrate with existing systems from the beginning.

When your situation maps to any of the above, the best solution is to develop custom software. If you would like to talk with us about your specific requirements or if you would just like additional information, call us at (781) 250-2001 or email info@knowledge-management.com.