Software Development: Do you Build or Buy Software Applications?
Many companies start off with a manual system, or less than ideal software developed in-house. There would have been multiple attempts to improve the quality of the systems. At some point in time, inadequacies will make a decision necessary.
Should a custom solution be developed from scratch, where the company has total control over the functionality? Or should they face the switching costs of using off-the-shelf commercial software?
The decision is generally based on:
- Buy the software when you need to automate common business processes
- Build the software when you need to automate procedures that are mission-critical and unique to your company
There are advantages and drawbacks to both options. A Build versus Buy decision is primarily about determining if a vendor product can be sufficiently customised, at reasonable cost, to make a company's administration procedures more efficient.
The Buy Software Option – Why Reinvent the Wheel?
Packages are designed to offer a wide range of options. They must achieve this, or the vendor's customer base will be limited. This is a win/win situation – because the customer receives an affordable and robust Software package and the Software vendor does not have to reinvent the wheel for every customer. The economies of scale significantly reduce costs.
Software packages address standard functions such as Accounting, Distribution, Inventory and HR. Companies pursue the Buy Option because it will be easier and faster than building custom Software. As long as a suitable package exists, there is little to be gained by Software development.
- The need to cover a large range of options may make the package complex and less than optimal.
- The required functionality is not always available.
- Business Processes may have to change.
- It can take ages for even urgent software bugs to be resolved.
- Customising a package can become expensive. One size rarely fits all.
- There may not be an upgrade path.
- There are annual renewal, upgrade and training costs.
The Build Software Option – A competitive advantage
Companies with unique, complex or rapidly evolving requirements should choose a custom solution because it is easier to incorporate new functionality.
- The flexibility to extend a system is hopefully worth the extra effort and Visual Basic programmers required to maintain the system. Flexible Software can provide a competitive advantage.
- At the heart of every business is something that makes it unique. The custom solution is designed with the organisation in mind so that it is unlikely that business processes will have to change to fit the solution.
- No off-the-shelf solution exists for the business function
- Interfacing with a standard package would be complex.
- The cost of Software development has reduced significantly with the latest version of Visual Basic.
- Visual Basic Coding standards must be rigorously enforced.
- Professional and competent Visual Basic programmers must be selected.
A Hybrid solution - Build and Buy
The decision is seldom only just to Build or Buy. Some part of a home-grown solution may be replaced by software with functionality that can't be matched. For example, there are a number of excellent Accounting packages available that may be incorporated into a home-grown Build solution.
Believe the salesmen?
Fear, Uncertainty and Doubt (FUD) is a ruse used in computer sales and marketing. FUD is a strategy to influence clients by spreading negative and dubious information by instilling fear. FUD is used to describe disinformation in the computer hardware and software industry.
The idea is to persuade Clients to go with the ultra-safe and thus expensive route, when selecting equipment and services. By spreading questionable information decision-makers can be influenced from rational choices, regardless of the relative technical merits.
This was a tactic used at first by IBM and later by Microsoft. And now used by most salesmen. So beware!
Software Build or Buy: Summary
Knowing your company's business allows you to choose your compromises prudently. What is being balanced is the optimisations that can be achieved by the company, against the engineering resources and economies of scale that the software vendor can offer.