Procurement vs. Development in New Software Applications
New software projects must address the issue of procurement vs. development. Is it better to purchase a commercial product, or it is better to develop the company's own solution? The final decision should be based on a careful evaluation of the software application requirements and an analysis of the pros and cons of each alternative.
Important factors to consider when making the decision of procurement vs. development include:
- Budget: In some cases, this will be the deciding factor, whether it is the ideal metric or not. Commercially available alternatives may be prohibitively expensive, or may offer value that is not recognized by non-technical stakeholders within the organization. An example of this is when organizations hire someone to accommodate the excessive workload of a team member or of a team. Automated solutions are often available, but it may be difficult to convince non-technical stakeholders of the fact that automated solutions have a higher up-front expense that decreases over time when compared to the overhead of hiring additional personnel.
- Requirements: If the existing platform is custom-built, it can be tough to gain buy-in on a commercial product. The developers will be loathe to cede control of any part of their platform to an outsider and may have concerns that the new software will break the existing system. However, commercial products often do a much better job of meeting requirements for a typical solution than an internal developer could, simply because the outside solution is focused on a niche software application. For example, an e-commerce site that is built on a custom-built platform could suffer from being behind the times when it comes to usability and keeping up with competitors, but the developers of that site may resist integrating a commercial solution into that platform and instead advocate for creating that solution themselves.
- Usability: Usability studies have often already been performed for commercial solutions, whereas a custom development program may be starting from scratch in creating an application that will be adopted and utilized by users. However, no one knows their audience like the company in the particular industry that needs the software in the first place. Commercial applications may try to be too many things to too many users, resulting in confusion on the part of users in a niche audience.
- Integration: Internal developers typically have a much better understanding of potential integration issues than developers of commercial applications. "Failures in one component can be propagated through the system and affect the operations of other components....[but] it is often difficult to anticipate how these component features will affect other components." (Sommerville, 2010, 270) And when commercial applications need to be integrated into existing solutions, costs can rise quickly. If a commercial application is selected, it is best to negotiate any necessary customization upfront to avoid nasty surprises when the invoice arrives.
The ability of the existing development team is an important consideration in this decision, regardless of the direction the company chooses. Even if a commercial solution is selected, the development team needs to assist with the integration as well as troubleshoot during launch and maintenance. The development team should be evaluated based on their ability to design solutions for the company as well as their problem-solving capabilities. For example, a development team may be adept at creating a custom platform for an e-commerce website that includes ordering capabilities as well as inventory management, but may falter when it comes to applications that allow for product reviews and customer questions. When this is the case, it is often better to select a commercially available solution and proceed with integration. Conversely, the development team that created the e-commerce platform may be better-equipped to handle the creation of a suggestion box ("Customers who liked product X also liked...") because they already have an understanding of how the product offerings complement one another.
Also, if the existing development team does not have previous experience in the required software, it may be much more cost-effective to purchase a commercial application due to the amount of research and training that would be required. It's important to understand that some training will still be required, however, for the internal team to implement the new software, as well as troubleshoot implementation issues after launch.
Sommerville, I. (2011). System procurement. Software Engineering. Boston, MA: Addison-Wesley. pp 261-281.