Build or Buy Software: Useful Tools and Frameworks to Make the Right Decision
This article is directly linked to ''Build or Buy Software: the Questions to Ask Yourself''. Indeed, you are not all alone in facing this question, you can use techniques to help you choose the right decision. As you can read in our first article, there are many factors to consider and many questions to ask to decide.
However, you are one of many people to face this dilemma. Others have already gone through it. And fortunately, they have left us a legacy in the form of valuable and robust tools.
This framework has no connection with the homonymous city. Its name is simply an acronym derived from the well-known terms: Must Have (M), Should Have (S), Could Have (C), and Won't Have (W).
It is the most popular and common prioritization framework, widely used to prioritize features and evaluate different options because of its childish use.
About buying or building software, you can use MoSCoW Framework in two distinct ways:
You can use it in two ways, again. The first way works if you know exactly what you want and list all the essential features. After that, you can compare each software and ensure they offer them.
The second one is to analyze each solution and classify all the product features in the corresponding columns. Once done, you can compare each solution by looking at the Must Have columns. The option with the most features in this column seems to be the most suitable if these features meet your needs, of course.
In this situation, you can list all the features you need to build and classify them. Once your matrix is stuffed, it will help you to know which skills are required to develop the must-have features of your custom-built solution. Then, you have to check if the engineers in your team can carry out the challenge and if they are available.
Total Cost of Ownership (TCO)
The Total Cost of Ownership is a cost-centric approach. This tool or method helps you decide which option is most affordable by calculating the total cost of ownership.
Buy a software
The estimated costs seem pretty easy to establish when using existing software. However, some grey areas or complexities may arise from the vendor's business model.
Some solutions are made available following the purchase of a license, others via a monthly or annual subscription, and finally, we also find hybrid models requiring a large initial payment to set up and integrate the software and then run with a cost close to the subscription.
- License Cost: The one-time cost of using and maintaining a copy of the software.
- Rent: The monthly, semi-annual, or annual subscription paid to use the software. Some SaaS providers also set the pricing on a per-user basis, which increases with the number of users.
- Integration: the cost of integrating the software into your information system. The integration can be more or less complex, and some ISVs use a network of integrators. The cost is substantial and should not be ignored.
- Training: The cost of training staff to use the software effectively.
- Customization: The cost of customizing the software to meet the company's specific needs.
- Data Migration: The cost of migrating data from the old software to the leased software.
- API Integration: The cost of enabling API integrations can be paid exclusively for each integration.
Build a software
Estimating the Total Cost of Ownership is much more challenging when you take a Build approach. Indeed, the costs are less clear and must often be calculated based on estimates.
It is also necessary to show vision and anticipation since this approach comes with its share of hidden costs, which are difficult to apprehend.
- Software dimension: The more users there are, the higher the cost.
- Staffing: how much will the internal or outsourced team cost?
- Complexity & number of features: the more features, the more complex the software, and the more expensive it is to build.
- API Capability: if you need integration with other software or tools, development costs may increase since you have to connect API.
- Data Migration: move data from the old software to the new software. It takes time, at least.
- Licensing: The cost of owning, using, and accessing tools, software, and other technologies needed to build and run the software.
- MVP to Full development: first, you have to estimate the cost of creating a minimum viable product and then the cost of developing the full software if the MVP is successful. You have to estimate costs for both at the beginning and to know if it is worth it or not.
- Cloud infrastructure: if you need to deploy the software in the cloud for any time, anywhere access, it will not be free.
- Cybersecurity: building firewalls and security systems for the custom software, long and work to plan.
- Maintenance: while using the software, you will find some bugs, need new features, and it will require time and, consequently, money.
The Hierarchy of Purpose Framework
This framework helps you prioritize to help executives make better decisions. The Hierarchy of Purpose takes into consideration the following:
- Purpose: this element is similar to identifying the problem you want to solve with the new software and why you want to solve it. Here you detail the concrete goal of your software project and what strategic and underlying vision it supports.
- Priorities: this dimension is associated with the goal you just explained. You define your company's or your team's current priorities while looking ahead to the medium term, between 2 and 5 years. The idea is to highlight the most perennial priorities and, therefore,, those you can't ignore. This will allow you to think and design the best possible and sustainable software. The one-shot has no place here.
- The people: your objective and your priorities are known and established. It is now necessary to define the project team, the set of people able to carry out the project.
- Results: while it is necessary to consider the scope, time, and budget required to implement a software solution, all of these criteria are only inputs. As explained above, it is essential to look ahead and not be short-sighted. Project yourself and estimate the results and the benefits you will get from your software, whether internally or externally.
In an instantaneous society, where decisions and results are impatiently awaited, this framework has the merit of addressing the issue from a relatively high level. Above all, it helps you project yourself in time. It will help you decide whether to develop custom software or buy an existing solution.
The OODA Loop
The OODA loop is an acronym for the Observe-Oriented-Decide-Act cycle. It was conceived by John Boyd, a military strategist and colonel in the United States Air Force.
This framework is very useful if you have little time. It relies on situational awareness (which you should have) and clear plans and decision-making in unstable scenarios. The OODA loop can be broken down into four steps:
- Observe: understand the context, collect relevant data, and assimilate it.
- Orient: Analyze, evaluate, and interpret the raw data into meaningful information.
- Decide: Make a decision and give a clear direction for the best possible outcome.
- Act: execute the plan based on your decision, and determine if your assumption was correct.
As you might expect, this is not a one-time decision. The whole point of this framework is iteration. Analyze a situation, make informed decisions, and apply them. Then start again. This framework is very relevant for software, where agile methods and short cycles have found their place.
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 skillful 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.