Should we buy an off-the-shelf solution, or build a custom solution? This is a common question when embarking on a new software project. And it would be a completely valid question if it didn’t offer a fool’s choice1: the assumption that there are only two options available. In logic, this is called the Either/Or Fallacy or False Dilemma. In the real world, many, if not most decisions allow for several potential options. Buy vs. Build is one of these decisions.
The truth is, many such solutions are assembled from several pre-built components (open source and/or purchased commercial), with some kind of integrating “glue” to unite them into a functional whole that fulfills the underlying purpose. This glue can take many forms, but in my experience, some form of custom software is often required to coordinate these integrations so that the resulting system [hopefully!] works the way the organization really needs it to.
Unfortunately, some organizations don’t invest in glue that is robust enough to adequately fulfill its needs. The damage from this situation is far greater for mission-critical applications. Hence, for those, some investment in custom development is essential. Underinvestment in this area will always have outsize consequences. If your competitive edge, by definition, comes from what is unique about your business, you need to identify where an investment in custom (i.e., unique) software will benefit you the most, and start there.
There’s no sense in re-inventing the wheel, and I would never advocate otherwise. But beyond the question of pure programmable integration, you should always be asking yourself: Are you looking at something which superficially resembles a wheel, but isn’t?
1 Patterson, Kerry et al (2012), Crucial Conversations, 2nd edition, (pp. 21-22). McGraw-Hill.