Buy vs. Build: When to Invest in Custom Software
The right software, employed in the right way, can be an effective multiplier for businesses, nonprofits, or other agencies—one that drives significant, differentiating value for your organization. Choosing whether to buy pre-existing software or to build it yourself (or commission its development) can be challenging.
The pros and cons of each approach are somewhat dependent on unknown factors and factors the people in your organization may understand only from a limited perspective, which can make getting buy-in difficult in either direction. To help in making these decisions, we’ve looked at the pros and cons for both against multiple attributes.
Custom Software: Pay attention to your master services agreement (MSA) with the development company to ensure you have the right to host and manage the software and related databases and data independently of the software development company. This includes analytics, scanning, security, email, or other management applications to make the software operate and meet all compliance requirements, and to ensure you have (or have the right to obtain) access to the connected properties associated with the application. Then there is the question of intellectual property (IP). Depending on the technologies involved, this may be something you can negotiate, but even if patents are not warranted, a solution built specifically for your company is not likely to be easily duplicated by your competitors, which if executed properly could be a great source of competitive advantage.
Off-the-Shelf Software: Consider whether the marketplace is healthy and has suitable alternatives in case the solution provider you choose ceases to exist, merges with another company, or otherwise just discontinues or replaces the product that you’re hoping to use. Will your business operations take a significant hit in such a scenario? Additionally, if the application is data-heavy, who owns the data, and who has the ability to see the data?
There is also a difference between software you own a license to through a one-time purchase and that which you own a license to through a subscription (known as SaaS software). One-time purchases probably don’t include updates and upgrades beyond a certain timeframe, and even if it does, you’re left applying those updates yourself, and dealing with the fallout of feature deprecation and breakage. SaaS systems manage that for you, but this can be with a higher long-term cost of ownership (and the cost per user per month adds up). With SaaS software, it is also harder to avoid feature changes that you don’t want. If the SaaS provider changes the software, you get the change whether you want it or not.
Custom Software: Portability refers to the ability of an organization to take software from one place and use it in another. With cloud-based software, part of this at least is built-in to the nature of the platform. One of the advantages of cloud-based custom software (vs cloud-based off-the-shelf software) is the ability to change where you host that software and who is providing upkeep and maintenance, depending on ownership.
Off-the-Shelf Software: The portability of off-the-shelf software varies, and it is often tied to the distribution and pricing models for the software provider. For hosted-solutions, portability can become an issue if the software company fails, discontinues the product, or your organization otherwise has outgrown the capabilities the software provides. When considering purchasing an off-the-shelf solution, keep in mind the ability and cost to add and change users who operate on different operating systems and platforms, and the ability to move your data (which is also tied to ownership).
Custom Software: Software with longevity must scale with the organization that utilizes it. This applies not only to the volume of users, but also the capabilities and structure of the organization. Not all software has to be constructed in a way that is scalable, but useful software that aspires to be used for a long time must. Organizations wishing to build software to meet a business need should consider not only the needs of today, but also the needs of the future, and choose a development and deployment strategy that scales, as well as the cost of that scalability.
Off-the-Shelf Software: One of the great promises of off-the-shelf software distributed by a reputable and established company is that they have the resources and wherewithal to add infrastructure to support the needs of their users. However, scalability in the software capabilities or structure is always limited to the built-in capabilities of the software.
Custom Software: One of the primary reasons to choose to build instead of buy software is that it gives organizations the ability to grow, branch off, experiment, and integrate new solutions into the software—and there is a need for it. This includes the mundane things such as integrating common APIs as well as more esoteric solutions such as complex reporting and communication patterns based on proprietary service workflows.
Off-the-Shelf Software: A lot of software these days is shipped with the ability to integrate with other software via some sort of API or other connections. Oftentimes, this extensibility comes with added complexity that requires implementation specialists to put into practice for your organization.
On top of which, very often some software will provide 80% of the needed functionality but building the remaining 20% into the software costs as much or more than having just built exactly what you need from scratch. Integration with existing systems is always harder than building to purpose, because there are quirks and limitations in the old system that must be worked around. And new, custom software (that is well-designed and well-built) always updates/upgrades into the future much easier than older, more widely distributed software does. Custom software only has one set of needs to consider: the company for whom it was built. Off-the-shelf software must consider the impact of any decision across all customers, which means you may or may not get the features you want.
Custom Software: An old (semi-true) axiom in user experience is that if something requires instructions to use (not necessarily master), it isn’t usable enough. Such usability requires focus, intentionality, and effort. One of the benefits of custom software is the ability it gives your organization to utilize existing terminology rather than adopt the language of the software developer, and then test and optimize the interface to your organization’s usage scenarios. With the right expertise and discipline, this can greatly improve usability and reduce onboarding time, adoption rates, and accuracy. Ensure you are considering usability targets and optimization methods when building custom software, and that training and support are on the table.
Off-the-Shelf Software: Some applications can shine in this area, but not all do. Software can be made more inherently usable by having access to people with more diverse needs and perspectives.
One helpful way to visualize this is to think of a pencil. It is highly usable for an incalculable number of applications. However, being proficient with a pencil, and being able to produce something of value with one depends on the application as well as the training and imagination of the person who wields it. Very few would be able to produce a drawing worthy of Da Vinci’s sketchbook, but a pencil is useful largely because of its adaptability.
Similarly, creating usable and learnable software in this environment for the average user requires the ability to gain insight through observation and the gift of abstraction. Organizations that do this well, who utilize conventions appropriately yet employ and test new conventions, typically produce better software. Organizations that don’t do this well, or that work within a highly specialized industry, may supplement their software with extensive documentation and training.
***Always consult with an attorney to determine personal and organizational legal exposure based on any purchase decision for your organization or industry.***
Custom Software: Depending on the nature of the agreement, building custom software instead of buying software off-the-shelf may change your obligations under security and privacy regulations or standards such as Payment Card Industry Data Security Standard (PCI DSS), the California Online Privacy Protection Act or the European Union General Data Protection Regulation (GDPR). Additionally, ensuring the software meets accessibility requirements under the Americans with Disabilities Act (ADA), Section 508 of the Rehabilitation Act, or other state, local, or international law, requires expertise, process, verification, and ongoing maintenance—because laws and regulations change. It rarely, if ever, eliminates liability entirely. Ensure monitoring and testing is covered in your ongoing services and support agreement with your partner.
Off-the-Shelf Software: The purpose behind and the requirements of various regulations don’t change on account of the fact that the software required to do business happens to have been purchased from a third-party. It may change some of your responsibilities under those regulations when it comes to GDPR, for instance, but GDPR is still young, and its requirements are still being debated and adapted. If GDPR is not of a concern, security and privacy always are to one degree or another, and not all off-the-shelf software takes as much care to secure your business-critical information (or personally identifiable information) as you would choose to do yourself. Some do, but this can be with (or without) some trade-offs in usability that frustrate your users.
Documentation & Training
Custom Software: Typically, custom business software is envisioned and created to replace some important work process. As such, good custom software will align with these work processes in a way that seems natural to the users, but hopefully in a way that solves the deficiencies or inefficiencies of the process it is replacing. This doesn’t alleviate the need for documentation and training, however. When choosing a software development company, or when detailing the needs for an internal team that’s designing and developing the software, ensure the documentation and training needs for the current and future users are met by the team. Additionally, if data from your custom solution must be used elsewhere, your development team must be capable of developing and maintaining sufficient API documentation that the integration teams have what they need to succeed and make the organization’s digital ecosystem work for the company’s benefit.
Off-the-Shelf Software: Purchased software will often come with its own documentation and/or training. More complex software packages or software with complex implementation needs (such as more robust CRM, ERP, or CMS packages) have a secondary market for certified trailers and implementation experts, who the company that owns the software even may certify. When selecting any software solution, the depth and the breadth of the complexity that choosing it is important, as is making yourself aware of the options for documentation and training that may (or may not) be available.
Upkeep and Maintenance
Custom Software: It takes work to keep software running for a long time. Mid- to large-size companies often have entire support departments dedicated to keeping the business running by ensuring that all employees can function in their jobs absent any problems with their computers or the software that runs on them. The question isn’t whether a company will need to consider upkeep and maintenance, but rather where the investments are made. Several factors go into the time, effort, and costs of upkeep and maintenance, but it is principally split into things like fixing bugs (corrective maintenance), refining and cleaning up code and data (perfective maintenance), bolting on other processes with existing software (adaptive maintenance), and paying off technical debt to ensure the software remains relevant and maintainable (preventative maintenance). Unlike bought software, this maintenance is not often built into the cost of development. It is a separate category that all companies needing tailored solutions need to account for on an ongoing basis.
Off-the-Shelf Software: Buyers often pay the cost of upkeep and maintenance of purchased software through their licensing fee(s). This is especially true for software loaded on individual machines and SaaS purchases that are entirely hosted by the software provider. However, there are some instances where you can purchase a license to software and host it on your own servers, or on an Infrastructure-as-a-Service (IaaS) like AWS or Azure. In these cases, you may have multiple vendor relationships to manage, which includes carefully studying the terms of those agreements. Often these licensing agreements have a support and update expiration date, and renewals available to those who are willing to pay for them.
Custom Software: One of the most alluring draws of bespoke software is the fact that it can, in fact, be changed to suit your changing needs, or optimized to better serve your team as you gain knowledge or change responsibilities. Some optimizations can be very simple, while others are more complex that lead to greater technical debt that must be addressed at the point of the change or sometime after. What’s more, your appetite and ambition for optimization either must be tamed, or it can have an unpredictable effect on the total cost of ownership.
Off-the-Shelf Software: While purchased software may sometimes be configured to suit your team’s unique needs, you more likely need to optimize the way you work with the software rather than the other way around. This works very well for many types of software and many types of internal processes that are common to your industry or to the type of work it’s being sought to accomplish.
Time to Market
Custom Software: Building custom software to meet complex business needs tends to be slower and can have a higher up-front cost, because whoever is building it must first conceive and understand the specific needs of the organization to adapt to and/or improve upon and scale their processes. However, done correctly, the solutions offered by custom software are adapted to existing processes and terminology and do not typically force staff to change the way they see or think to use it. Custom software can result in a dramatic increase in productivity and job satisfaction when it “just works” the way the users have already been trained to think about the organization and various constituencies. It doesn’t require the organization fundamentally change the way they work, except in those instances where the way they work can be made more efficient and effective.
Off-the-Shelf Software: Because off-the-shelf software is already available, it is typically faster to get it running—meaning it is faster to sign up your people for accounts. Additionally, off-the-shelf software typically has a dedicated team to upgrade and support it, since, to the software company, these costs can be distributed to many clients. On the other hand, off-the-shelf software was not created to meet your unique pre-existing needs. Partially because of that, the ability of your organization to adapt to that software solution (and the speed at which they may adapt) depends on how closely correlated your needs are with the ideas that formed the initiative to develop the software for sale in the first place. For this reason, off-the-shelf software is known for its ability to solve problems that are common among people and organizations.
Economist Thomas Sowell famously said:
“There are no solutions, there are only trade-offs; and you try to get the best trade-off you can get, that’s all you can hope for.”
There are scores of software solutions available for business already, and a combination of them may supply your business with all you need, with the direct financial risks (not opportunity costs) being limited to the software licensing and implementation fees. If one combination doesn’t work out as well as you hoped, you can always try another, right? And how much time do you have before you have to get it right?
Primarily, the software you buy or build is about the people who use it and the business value you hope to obtain. While it can be intimidating to undertake a project that requires a big software investment where perfect knowledge is not attainable, the best chance you can give yourself is not necessarily to eliminate all risk, but to better understand the risks and trade-offs at hand, in order to put your organization in the best position to succeed.