"I'll do it myself" — you probably heard it and said it a couple of times as well. That is a common reaction when you can not find an existing and fitting solution to your problem.
This sentence naturally echoes the saying: "we are never better served than by ourselves." If it finds a large part of truth in everyday life, it is not necessarily true when we talk about software.
Build or Buy? What Do We Mean?
The "Build or buy?" question pops up when you want to find a solution to a problem, and potential solutions lead you to a dilemma. Indeed, whether in software or many other areas, you have two options to solve it: buy or build the solution. It is even more true when it comes to software.
A "build" software is designed, developed, and deployed by the company and the team facing the problem. Build software is highly customized and specific to an issue.
As its name suggests, "buy" software is software your company buys from another vendor. Most of the time, it is an off-the-shelf solution, ready to use and to solve an existing and known issue.
➡️ Build or Buy Software: Three Questions to Ask.
Issue: What Is the Problem You Want to Solve?
This big question comes with other ones you need to answer to specify your needs:
- Why do you need a new solution?
- Why do you need it now?
- What is the main issue you want to solve?
- What are your goals and objectives?
It will help you to clarify and understand your context, which is essential in making an informed decision. Everything becomes easier by explaining the issue, the urgency, and what you aim for.
Another important question can help you to make the right decision. Is your problem common or unique?
If you are facing a relatively common problem, chances are there are already solutions. A typical business problem opens a new market, which is not lost on many opportunistic entrepreneurs.
Faced with a common problem, common sense naturally leads you to purchase the software. However, the solution may not have been developed if you face a new and emerging issue.
You may also face a unique problem inherent to your business, technology stack, and operation. In this case, it is unlikely that you can find an off-the-shelf solution. Since a unique problem represents a small market, no company will want to develop a solution that a single company can use.
You will probably have to go through in-house or outsourced development to find a solution that fits your needs.
Resources: What Do You Need to Solve the Issue?
When we talk about time, we are talking about estimating the time it will take you to build functional software versus the time it will take to evaluate and implement existing solutions.
There is no such thing as a perfect answer, so you need to ask yourself the right questions, which can be:
- Can custom software fit into the time frame you've set? - Can you allocate some of your development team's bandwidth to develop this software?
- How much time should we allocate to evaluate all existing alternatives, and how long will it take to integrate and get up and running?
As you know, time is money, and this is a perfect transition for the following resource.
Naturally, the question of the budget is intimately linked with the idea of buying software. Any purchase requires a financial counterpart.
What's forgotten in the equation is that building software also requires a budget. The financial resources necessary to develop software internally are often underestimated, not to say overshadowed. It must be noted that it is a real investment, and the sums involved are significant.
Buying a solution seems more economical, and the inherent costs can be smoothed over time via monthly payments or annual license fees. However, analyzing the costs as a whole and over the long term is necessary to have a relevant basis for comparison.
Overall, it is interesting to know that companies are investing more and more in software. A study by Statista shows that global software investments will reach $672 billion in 2022 and should reach or exceed $750 billion in 2023 (barring any surprises, such as a recession?).
Based on the size, structure, and skills of your team, as well as your future hiring plans, you need to know if you will have a good core team to develop software from scratch. You will need a good mix of profiles, including engineers, designers, and project managers.
Building your software is an actual business project; therefore, you must staff yourself accordingly and create a dedicated team. This team will then have to maintain and develop the solution, so it is not a one-shot deal.
As for purchasing software, you must ensure that the chosen solution corresponds to the internal skills you have. Will your users be able to handle the software and use it to its full potential? Specific training can, however, fill any gap.
Finally, you must be sure that the software you choose matches their needs. To do so, you must integrate the end-users into the decision cycle.
When it comes to tools, it's about taking stock of the tools and solutions you use.
If you are going to build, do your existing tools allow you to develop an effective solution? More importantly, will they integrate well with the new software? After all, the new software fills a hole in the system. The goal is not to change your entire technology stack to make it compatible with your new software.
In the context of a software purchase, the same question comes up. Does the solution you are being provided with integrate with your favorite tools? This is a matter of evaluating the various alternatives and ensuring they are compatible with your technological stack. Can a solution that addresses a single problem but creates new ones be defined as a solution?
Costs: How Much Do You Have? What ROI Are You Expecting?
👉 Total cost and ROI
Finally, let's come to the point that hurts, the price. It must be said that you get nothing for nothing in life. This is equally true for both solutions, in-house development and third-party solutions.
At this point, you need to ask yourself two questions: how much will it cost me overall? And what ROI can I expect?
To correctly estimate the costs of each alternative, you need to list all the elements, issues, resources, and processes that may have a cost.
Finally, calculate the overall sum to get your Total Cost of Ownership (a simple and effective tool to which we will return later).
Once you have this information, you can calculate a Return on Investment by estimating the new solution's positive impact. Calculating the ROI can be more or less straightforward. It all depends on the problem and the data you have about it. Let's take the example of software that reduces the time needed to act. The ROI is easy to calculate if you have the time necessary to complete the action, with and without the software. However, you can only estimate the ROI roughly if you do not have this data.
Beware of hidden costs!
Do you like surprises? If so, we can assure you that hidden costs are the exception that proves the rule.
In your estimates, you need to think broadly, even very broadly, to identify all the potential hidden costs you might encounter in developing your software or using a third-party solution. These could be ongoing maintenance costs, unforeseen problems, extended development/evaluation time, ongoing support costs, integration costs, overheads due to a down service, specific training, etc.
Do your research and gather a multidisciplinary team around you so that everything is noticed from the sys admin, end users, and developers; the broader the skills, the fewer surprises you will have.
Build or Buy Your Software: Some Factors to Take into Account
The configuration level is a consideration. Indeed, this goes back to the idea of the scope of the software, but the latter will have to meet many varied and often specific use cases. Most off-the-shelf software is configurable. Although most use cases can be addressed via the "basic" version, you can customize it to suit your needs.
Configuration is a real advantage for existing solutions. Indeed, as many companies already use the software, almost all the problems encountered are covered unless you are looking for a new product that requires a lot of specific development.
On the other hand, creating in-house software will involve more costs and maintenance in the long run. Hard-coded solutions will take longer to deploy since you are building them from scratch and are going against many use cases that you may have yet to anticipate. Each new need, if relevant, will lead to specific developments. The good thing is that they allow you to customize more specifically.
Whether you buy or create software, it should be effortless to use. In this respect, existing software is easier to evaluate and compare. You can make an objective opinion via a live demo or through a trial period.
This approach does not work for the "build" approach. At best, you can be inspired by existing solutions and rely on UX/UI experts, but you should start from scratch and make choices.
Another essential criterion is the security of the solution and, therefore, of your company. Depending on the nature of your business and the heart of the information processed by the software in question, this point can be vital.
If you want to opt for off-the-shelf software, please pay attention to the vendor's guarantees and cyber security measures. You can also place restrictions on the tools you buy.
To opt for DIY, you must ensure that your technology stack is reliable and thorough. If you do not have a cybersecurity expert on your team, you should be supported in this aspect of the project.
Finally, there is the question of maintenance and the costs involved (because it is always about costs, after all).
An in-house team that maintains your software gives you an advantage in terms of scalability and deployment. Since the same group developed it, they can also design its scalability. However, depending on the scope of the software and its scalability, your team could quickly become overwhelmed. This is often the reason why many companies end up migrating to an existing, managed solution. In addition, if you are using new technology, there will be a learning curve to overcome, and surprises are to be expected.
On the other hand, buying software is much easier for maintenance. An external, dedicated team can handle complex architectures. As a service provider, they will automatically be responsible for supporting, upgrading, and maintaining the software.
However, please pay attention to the service terms and ensure that the software purchase covers these services. Some companies charge for them.
Scalability refers to a company's ability to cope with linear or even exponential growth.
Suppose the size of the company or activity increases significantly. In that case, your tools and, therefore, your software must be able to follow the trend to adapt to the changing needs while maintaining a high level of performance.
This criterion must be taken into account, whatever your approach. You can ask the vendor questions and analyze the different packages for off-the-shelf software. These are generally made to follow the evolution of the companies and are based on their size.
If you are building your software, plan and make sure that it is scalable and that the chosen infrastructure can handle a significant increase in load.
Buy or Build software: Pros & Cons for each solution
There is no perfect solution. Whether you buy software or develop it yourself, there are advantages and disadvantages. Let's see what they are for each of the two options.
Building Software: Pros and Cons
- Custome-built solution: make it as specific as needed.
- Consistency with the tools you use.
- Unique owner of a new technological asset.
- Control over all the operations carried out by the software.
- Independent: no dependence on other people or companies.
- Time and resources consumption: development and maintenance.
- It can be a costly solution and a pain in the neck to maintain.
- Risks related to the development ("it should work, let's see") and additional costs.
- Fast to implement.
- Quick results.
- Try before you buy.
- No development time or coding skills required: Do not be part of the development and maintenance process.
- Smaller costs (relatively).
- No right to the solution; you are just a user.
- No guarantees to solve your problem; you pay to use it.
- No control over the operation of the software.
- Strong dependence on the vendor.
- It can take time to evaluate existing solutions.
Let's summarize and make a decision
With your new knowledge and mindset, it's time for you to make a decision, finally. To help you do so, we offer you a complete summary. It is undoubtedly subjective opinion, but it could help you if you don't have the time or energy to embark on this extensive study.
🦾 Build your software if:
- you need to solve specific and uncovered issues;
- you want to boost your technological valorization;
- your store and process very sensitive data;
- you want to keep total ownership of the software;
- you need to integrate your software with other solutions you already use;
- you want to make it evolve and implement new ideas;
- you have all the resources needed: time and skilful people.
💰 Buy your software if:
- you can solve your issue, which is generic, with existing software;
- you do not have business-specific requirements and constraints;
- you need your solution very fast;
- you can not afford a dedicated team to build and maintain it;
- you have financial means and an allocated budget.