Danial Kalbasi

Notes on engineering leadership, building products, and figuring out what matters.

Develop from scratch or using third-party software?

Building a feature from scratch or using third-party software isn’t always an easy choice, especially in Startups. It is even more challenging when you have fewer financial and staffing resources. This is when every decision is counted and affects the business as a whole. Let’s see how we can tackle this to some extent.

There are a couple of points that you can consider before deciding on similar scenarios, especially when the stakes are high. These points are the lessons I've learned over the years, and I've selected the top ones to share with you.

Understand the business value. The business here is not only restricted to the economic aspect. To start discovering how to choose a suitable feature development strategy, it all begins with understanding the value of the feature in your business.

To tackle software challenges, it’s always essential to have a clear picture of your organizational priorities. In our case, a simple definition of business value is the impact of the feature on all forms of value that determines the health of the organization. In software companies, it can translate into multiple benefits, such as improved performance, enhanced usability, increased service availability, tighter security, or even better team agility. These are all business values. Some of them are more important in specific organizations, and some are less.

A simple definition of business value in our case is the impact of the feature on all forms of value that determines the health of the organization. In software companies can translate into multiple things such as better performance, better usability, more availability of service, tighter security or even better team agility.

It’s essential to have a clear picture of your organization’s above values and priorities, especially if you are a startup. Small business tolerance of mistakes is usually low, and it can lead to the startup’s failure at some point. There is a higher tolerance for mistakes in larger companies when a wrong decision is taken.

Measure the correlation between business value and your resources. The correlation between the feature’s business value and the time the development team needs to invest is a crucial point to measure before beginning development. The more your feature business values go up and become a need for your revenue funnel, the more your team should invest their resources.

Have a clear understanding of the organization's size and policies. Various factors may limit your decision-making, such as company policies, software licensing, or staffing requirements. Take note of them.

How complete is good enough? In today’s software industry, the term "third-party" means many things. It can be an Open Source Software (OSS) package, managed services provided by various cloud providers like Amazon and Google, a combination of the two, or a mix of the last two, and comes with a more straightforward UI to get the job done, or other combinations. As you can see, we can leverage these options and pick the one that fits our needs.

Sometimes, picking up a ready-made service with zero development is a good choice, as long as your business does not depend on it too much. At some other time, you should consider picking up a managed service, integrating it with your app, and building a simple UI to get started. This at least gives you the power to scale whenever you need to, based on your business needs and many other factors that you might overlook when calculating at the start.