Photo by Henry & Co. on Unsplash
As a developer, don't reinvent the wheel. An advice for developers and entrepreneurs
As developers, we earn money, reputation and experience by being builders. We take pride in building unique solutions or solving difficult problems. Recreating common algorithms that already exists makes us understand basic principles and give us a great amount of knowledge.
On the other hand, many problems already have been solved by others and we should take advantage of this fact. We use modules, frameworks and higher-level abstractions built by others to make our lives easier, be able to make more with less time and be free to focus on solving our unique problems.
More code, more problems
I have heard and seen many cases where small and medium businesses, when confronted with a problem that can be solved with technology, choose the path of hiring a developer or a software company and embarking on a journey of building the solution themselves, instead of searching for a service provider or a platform that could provide a ready-made solution.
For a business that is not tech-centric, deciding to build the code themselves, usually means a lot of time and wasted money.
In Science, we stand on the shoulders of giants to take one further step ahead. The first step in scientific research is to search for work that already has been done in a particular field of study, so it is possible to improve or extend the existing knowledge.
Especially in startups, we should take a similar approach to one taken by Science, by searching for solutions that already exist, instead of immediately proceeding to build our solution. This allows us to:
Go to market fast.
Instead of waiting for an application to be planned, created, and tested, use a solution that is ready to be used and was proven both by tests and real-world usage.
Avoid common pitfalls that can eat a lot of time and money
Not many understand how hard is to build something, as it is not only a technical challenge. When creating something new, there should be considerations on the market, its users, usability, and costs, just to cite a few. Even if it is a technical product, a developer will feel overwhelmed, as skills like design, entrepreneurial skills, and user interface are necessary to be successful. It is possible that many iterations are necessary before finally reaching the desired result and those take a lot of time.
As a new business, the initial assumptions can change dramatically. It is easy to unsubscribe from an online platform, but it is painful to throw away months of developer work, as well as time, and resources that were invested in it. This can lead to a situation where a business continues to invest in a failing strategy because it does not want to lose the resources already invested.
You cannot ask for a refund from your developers if your product is not what is needed by your customers.
Delegating maintenance and improvements to someone else.
Not many entrepreneurs realize that a website, platform or tool will need constant improvements and fixes throughout its lifetime. If developers build an e-commerce website, it will have the requested features, but as time passes, an integration to marketplaces will appear to be necessary to increase revenue and analytics will show that a shorter sign-up process will decrease cart abandonment. None of that was considered when building the first version of the website and that is expected as no one can predict the future. When using a platform, for example, these needs have been already addressed, as they listen to the needs of thousands of customers and already have iterated their product thousands of times.
Common problems, such as selling over the Internet, building a business website or storing files are so common that large platforms already exist to solve problems for millions of users. They usually provide customization so they can serve a large number of use cases and it does not make much sense to build a custom solution unless you have a very specific problem that cannot be addressed by these platforms.
A personal example
When I was building my startup, we needed a platform to connect end customers with service providers, a typical marketplace. So we were confronted with two options:
Hire developers to build the platform with everything we thought we needed. It would have taken 5 months to make a functional version and it would eat months of resources that would give more months to our startup to stay afloat.
Use a platform as a service. It did not have all the necessary features that we needed, nor would give the best user experience, but it could work. We would pay only the monthly fee to them and could cancel anytime.
I am glad that we chose the second option, as we discovered a few months after that we needed to pivot our business strategy from B2C (business to consumer) to B2B (business to busines), focusing more on serving business than end-consumers, as serving businesses has lower customer acquisition cost, operational costs were far lower and we generated more revenue. We avoided the difficult decision of throwing away time and money directed toward end users, as I could simply cancel our subscription to the platform when the time came and that was as easy as canceling a Spotify plan.