During the software development iterations of every customer, at some point we are likely to find our team in a position to get a big decision: Should we create their own solution, or use a third-party software/service. There is no one single silver bullet solution for every case. All products have their own domain, constraints and tech stack. Additionally, the startups/entrepreneurs may have time, budget and privacy concerns. Even if it seems to be a technical decision but as you see the inputs for the decision are mainly non-technical facts.
Let's start with the definition of the two options.
In-house solution is the option that the core functionality of the solution is built, maintained and managed by your team. If you use open source software/package/library/framework/tool/server, It is still an in-house solution.
Third-party solution is the option that the core functionality is taken as a service from a provider. It can be either a free or a premium service. Your team will implement the integration with the service over the API or any other way provided by the vendor.
In order to make the right decision, it is necessary to evaluate the options using the following variables.
- Time/Effort: The total amount of time and effort spent to realize the options.
- Skillset: The skills and talents needed to understand and implement the options.
- Budget: The up-front costs of implementing the options which can be calculated using the effort spent and the used service costs.
In this post, we will not compare and contrast the options in detail because the discussion totally depends on the project timeline and budget, the development team skills, support and feature set of service provided by the third-party provider. As a general rule, we can say that if you want to reduce the effort to create your MVP, using a third-party service is a faster way.
The Case Study
Widio is one of the startup products with which we are collaborating as the technical partners. Widio offers you to shoot a video for your property and describe real estate and vehicle advertisements in all details.
In the early iterations before MVP, we needed to implement search functionality on the mobile and web applications. The search function should also support spatial search to show the nearest posts. The scope of the feature needed is as follows;
- Every post published should be in the search index as soon as possible
- Most of the user traffic will be on the search feature, so the solution should be scalable.
- Every attribute in the post data should be querible.
- Location data of the post should be used to order the post according to the distance to the user.
After meetings and discussions we made the development team internally and with the customer, we decided to go with using a third-party service which is Algolia. We compared the effort estimation, costs and the timeline on both solutions. Features of Algolia also met our scope and It has stable client libraries for the technologies we used on frontend and backend. The document base was also very helpful to set up and implement the integration.
We have successfully implemented the solution and the customer keeps monitoring the search analytics on the Algolia dashboard. Whenever a new feature or a change that is related to search is requested, we reconsider the solution if the change will also change the decision.
There’s always a lot to consider when you’re trying to decide between building your own tool or using a third-party solution. You may also have project specific concerns. You can always find the correct decision when you involve your customer in the process.
- 1. Blockchain use cases: What was the chicken on my plate fed with?
- 2. How can you implement AI to your startup product?
- 3. Scope Management is the Key to Stay on Track
- 4. Marketing Tips for Startups
- 5. Community Building Tips for Startups
- 6. Define Your Exit Strategy
- 7. Why users don’t want to use your app?
- 8. Define the North Star for Your Product
- 9. Founders' Fear of Money
- 10. Selecting Tech Stack for Your Startup Product