Saturday, February 4, 2017

Make or Buy?

What are some advantages and disadvantages of purchasing versus developing software?

The main advantage to purchasing software versus developing it is the cost savings to design, develop, and test the software. If a company – or a consumer – purchases software, there is a reasonable expectation that it has been tested and functions the way the developer intends. However, this is not always the case. Conversely, no pre-packaged software ever does what every user wants. As a result, users have to change settings, add customization options, or resort to purchasing additional software to accomplish their goals.

Developing software has its advantages, too. If a company develops its software in-house, it can be sure the software meets expectations. One unexpected advantage is if the software benefits the company – and could benefit a company's customers – the company may be able to sell that software and realize an additional profit.

Another advantage to companies developing their own software is the concept of "dogfooding," where companies use their own product in production to demonstrate its capabilities.

As an aside, I think free and open-source software have an advantage over proprietary software when it comes to companies developing their own software. Companies can reap the benefits of having pre-packaged software, which saves on the development and design costs, and customize that software to fit their business processes.

What is important to include in the contract with a software developer?

Some important things to include in the contract with the software developer include:

  1. Service and support – If my software does not function correctly under certain circumstances, or there is a bug discovered, what are the developer’s responsibilities? Should they make a fix available at no cost? What is the ideal response time for any support issues? How soon can I expect a resolution to any support issues? What would be the developer’s responsibility if any data loss or data integrity issues result through use of the software? What is considered an “inappropriate” use of the software or what would violate any licensing agreements?
  2. Training – Will the software developer provide training or make any training available to the end users? Is the documentation on how the product is intended to function?
  3. User Acceptance Testing or Trial periods – Does the software developer offer a trial of their software?
  4. Is the software secure? It’s almost impossible to guarantee complete security as there will always be defects in the software and improvements in hacking methods. But does the developer respond to security concerns in a timely manner? Has the developer knowingly released the software with security issues?
  5. How much does the software cost? This would include up-front and maintenance costs over the life of the software.

No comments:

Post a Comment