Earlier in my career, I was part of an IT organization that owned a legacy mainframe application. This application became very outdated. Users interacting through a green screen terminal, and supporting it grew increasingly difficult over the years. Everyone recognized the need to replace this application. Various CTO’s came and went, and there was a tug of war between buying an off-the-shelf replacement, versus building a whole new application in-house. Depending on who was in-charge at the time, the conversation leaned in one direction or the other. In the four years I was there, a decision was never made on buy versus build. 

But why was this such a hard decision to make?

Choosing between buying an off-the-shelf software application versus building your own custom solution in-house is a pivotal choice for organizations. Each approach carries its own set of benefits and drawbacks. The decision can significantly impact the organization’s efficiency, agility, and costs. Let’s explore the tradeoffs of both strategies, and see which is better.

Buying Off-the-Shelf Applications

Buying an off-the shelf- application can have several advantages.  These include-

  1. Speed of Deployment: One of the most compelling advantages of buying software is the speed with which it can be implemented. Vendors often provide ready-to-use solutions that can be deployed in a matter of days or weeks, allowing organizations to address their needs quickly.
  2. Cost Predictability: Purchased software typically comes with clear pricing structures, including licensing fees, subscription costs, and support packages. This predictability aids in budget planning and financial forecasting.
  3. Vendor Expertise: Commercial software is often built by specialists who focus solely on developing, maintaining, and updating their product. This means organizations can benefit from ongoing improvements, technical support, and compliance with industry standards.
  4. Scalability: Many off-the-shelf applications are designed to scale as organizations grow. Vendors often offer different tiers or modules that can be added as needed, reducing the need for costly overhauls.
  5. Proven Reliability: Established software solutions have been tested and refined through widespread use. This reduces the risk of encountering critical bugs or design flaws that could disrupt operations.

Though it’s not all roses when it comes to vendor provided solutions.  There can be drawbacks as well:

  1. Lack of Customization: Off-the-shelf solutions may not fully align with an organization’s specific workflows or requirements, forcing teams to adapt their processes to fit the software.
  2. Vendor Lock-In: Relying on a single vendor can create dependency, making it difficult to switch providers or integrate the software with other tools.
  3. Recurring Costs: Subscription-based pricing models can lead to ongoing expenses that may exceed the cost of building a solution in-house over time.
  4. Data Ownership and Security: With external software, organizations may have less control over their data. This is particularly critical in industries with strict data governance regulations.
  5. Limited Control Over Updates: Vendors may release updates or discontinue features based on their own priorities, potentially disrupting business processes.

Building Applications In-House

So what’s the alternative to buying a vendor supplied product?  If an organization has enough resources, it can build the application itself in-house. This has several advantages:

  1. Full Customization: Custom-built software can be tailored precisely to meet an organization’s needs, ensuring that workflows and processes are supported seamlessly.
  2. Control and Flexibility: Organizations retain complete control over the software’s functionality, updates, and integrations, enabling them to adapt it as business needs evolve.
  3. Cost Efficiency Over Time: While initial development costs can be high, in-house solutions may prove more cost-effective in the long run by eliminating recurring licensing or subscription fees.
  4. Data Security: In-house solutions provide greater control over data storage, access, and compliance, reducing risks associated with third-party vendors.
  5. Competitive Advantage: Proprietary software can become a strategic asset, offering unique capabilities that differentiate the organization from competitors.

Not so fast though.  Building in-house has its disadvantages too-

  1. High Upfront Costs: Developing software in-house often requires significant investment in skilled personnel, infrastructure, and time, which can strain resources, especially for smaller organizations.
  2. Longer Time to Market: Custom development typically takes longer than purchasing off-the-shelf solutions, delaying the time it takes to address the organization’s needs.
  3. Maintenance Burden: Ongoing maintenance, updates, and support become the organization’s responsibility, requiring dedicated resources and expertise.
  4. Risk of Failure: In-house projects carry a higher risk of failure due to mismanagement, scope creep, or technological challenges, potentially leading to wasted investments.
  5. Scalability Challenges: Building software that scales effectively with organizational growth requires careful planning and expertise, which can be difficult to achieve without significant investment.

Key Factors to Consider When Deciding

The choice between buying and building is rarely straightforward, and should be based on several critical factors. 

Business Needs:
Does the organization require a highly customized solution to maintain a competitive edge?

  • Can off-the-shelf software adequately meet most requirements with minimal adjustments?
  1. Budget:
    • Are the upfront costs of in-house development feasible?
    • How do the total cost of ownership (TCO) and return on investment (ROI) compare for each option?
  2. Time Constraints:
    • How urgently does the organization need the solution?
    • Is there time to design, develop, test, and deploy a custom application?
  3. Internal Expertise:
    • Does the organization have the technical skills and resources to develop and maintain a custom solution?
    • Are there other strategic priorities that require the same resources?
  4. Scalability and Longevity:
    • Will the chosen solution support the organization’s growth and long-term goals?
    • Is the solution adaptable to future technological advancements?
  5. Regulatory and Security Requirements:
    • Are there specific compliance mandates that favor in-house solutions over external vendors?
    • How critical is control over data storage, access, and usage?

Hybrid Approaches

For many organizations, there is another option.  The answer can be a hybrid approach that combines the strengths of both strategies. For instance:

  • Customizing Off-the-Shelf Software: Some organizations purchase commercial software and invest in customizations or integrations to better align it with their needs.
  • Building Core Systems and Buying Add-Ons: Developing a custom core system while utilizing off-the-shelf tools for ancillary functions like analytics or customer relationship management (CRM).
  • Using Low-Code/No-Code Platforms: These platforms offer a middle ground, enabling organizations to build customized solutions with less development effort and expertise.

Deciding whether to buy versus build can be a pretty black and white decision for smaller apps.  However the hybrid approach may actually be the right one for larger, more complex ones.  It’s not unusual to see mission-critical applications be an integration of different components, and architecting a solution this way from the start can often be a smart and effective approach.

Guiding Org Principle or Application Centric

The tradeoffs between buying and building applications can depend not only on an organization’s unique circumstances, including its goals, resources, and constraints, but also the application itself. 

Off-the-shelf solutions offer speed and reliability but may lack the customization and control that some organizations require. Conversely, building in-house provides tailored functionality and competitive advantages, but demands significant investment and expertise. 

Rather than applying a rigid buy-only or build-only approach, it may make sense to evaluate it on more of an application by application basis.  Large, complex, mission critical applications especially should be approached with the flexibility to consider a wide variety of options.

By carefully assessing their needs, and considering multiple approaches, organizations can make strategic decisions that balance cost, functionality, and long-term value. Ultimately, the right choice is one that aligns closely with the organization’s objectives and positions it for sustained success in an ever-evolving technological landscape.

One last important consideration to note here, is that this decision can take years to make and fully implement. Remember that organization I mentioned in the beginning of this post? I left them over four years ago. Yet even today they still have users typing away on those green screen terminals.  And this is an organization with a $17 billion dollar annual  I.T. budget. 

These things aren’t easy.