Common wisdom suggest that it will always be better to purchase a piece of software, if it can be found, then to write one from scratch. And it stands to reason. A software vendor can spread development costs over many installations. Furthermore, the design will presumably benefit from knowledge gained from wider application development experience.
And I certainly would agree. If a suitable piece of software can be found it should most certainly be chosen over custom writing. However, in most cases the answer is not that simple. The system development life cycle has many steps:
• Problem definition
• Requirements development
• Construction planning
• Software architecture, or high-level design
• Detailed design
• Coding and debugging
• Unit testing
• Integration testing
• Integration
• System testing
• Corrective maintenance
Only some of the above steps will be negated through purchasing a ready made piece of software.
At the start of the system development life cycle, problem definition, requirements development, construction planning and high-level design are still required to evaluate what is required and inform the purchase process. At the other end of the process, unit testing, integration testing, integration, system testing and corrective maintenance will also still have to be performed. Furthermore, in most cases purchased software will often required, some customisation to fit existing business processes and integrate with existing systems.
In other words, purchasing business software is not a simple process and true deployment costs are often a multiple of the initial purchase price. Budget and expertise to implement the process successfully are often not available and it is not uncommon to see the tail wagging the dog – businesses adjusting their process to suit a new piece of software (rather than the software automating and enabling existing business process).
Hence, if you have system that works, think twice before replacing it with the latest out-of-box solution.