One of the most important questions in any development effort is whether to build a custom system or to use a prepackaged solution.
At the simplest and most fundamental level, the decision to buy a solution vs. to build it is cost vs. flexibility. A “commercial off-the shelf”, or COTS solution is likely to cost far less, but may not be as suitable for a particular company’s needs and desires.
The typical reasons a company may choose to build a solution are:
- Their business requirements are unique or complex and cannot be handled by a pre-packaged solution.
- There are trade secrets that must be incorporated into the software solution.
- The business needs are extremely small relative to the cost of any available commercial solution and it is cheaper to build it from scratch. This may be the case, for example, with a high-volume, high-per-seat-cost product. If you have 1,000 users and the only available commercial solution is $1,000 per seat, if you can do it for under $1 million, the commercial solution may not make sense.
The typical reasons a company may choose to buy a pre-packaged solution are:
- Not having to reinvent the wheel.
- Ability to focus on your core business.
- Responsibility for maintenance.
Some of the other considerations you should keep in mind when deciding whether to build or buy are:
- When gathering requirements from stakeholders, keep your “would be nice” features separate from the core requirements – and make sure your needs are well enough defined that you know the difference. You don’t want to keep a good solution from being considered because it is lacking in some peripheral area that will never be missed – perfect should not be the enemy of good enough.
- Make an objective assessment of your needs. It is easy, because of company politics or a good or bad experience in the past, to come to the table with a preconceived notion of the right answer.
- The software development lifecycle involves more than just geeks sitting at a computer writing code. The true cost of software involves design and analysis before the coding, as well as testing and validation afterwards and continued support and maintenance throughout the life of the software. Properly engineered software involves continual validation throughout the coding process to ensure that what is being developed is going to fulfill the stakeholders’ needs.
- The build vs. buy decision need not be absolute – many commercial software programs are “extensible”, meaning that their intrinsic functionality can be extended through custom development. Cottage industries have sprung up for developing add-ons for many of the popular financial management or ERP (enterprise resource planning) solutions such as Microsoft Dynamics or Oracle’s PeopleSoft.
- The build vs. buy decision is independent of who actually does the building or buying. A build decision might involve a company’s internal developers, contractors, or enlisting the assistance of a professional services company (like JASE). For a company whose core mission is not IT, it often makes sense to engage another company not just for the programming work, but to assist with making the decision to build or buy.
Photo Credit: lraine