Building on top of existing open source projects
Are you an experienced PM/PO/Founder? Then I’d love to chat with you about:
- What experience do you have with using open source software to build an MVP?
I’ve heard this a couple of times already.
A founder has an idea for a new product.
And as it so happens, there’s an open source software that does 80% of the job already.
Let’s just use [project YXZ], modify it and style it in a different color.
Over my 15+ years in software development I’ve seen several of these approaches work.
And some failed.
In this post I describe the lessons I learned working with clients (for 12+ years), and why most assumptions fall short in reality.
This can look attractive but is probably more expensive
Your co-founder / boss found this open-source software, where you can just “Build it on top of it” and thus save time.
And there are some examples where this actually works.
There’s this messaging system based on matrix, which is used in Germany.
Let’s have a look at their cost:
It depends what type of project you build upon
it’s a continuum, between framework and final product.
- Generic: Called “framework”. Made to have projects build on top of it.
- Toolkit: Domain components and prepared. It doesn’t work out of the box, but saves time
- Built-out: A final open-source product that you now have to modify.
Modifying software costs more than writing it new
That’s just a general rule of software development.
The beginning is fast and easy.
Once dependencies and more features come, every change takes more time.
For startups it might work
MVP: probably won’t work.
I have a friend who built on top of an existing software. Yes, he got a lot of functionality out of the box, and the initial demo was great. But then he got stuck in much more development that he previously thought.
I talked to him, this is what he said:
…
Demo stage: maybe! But then you could also use a no-code system or just make up a video like dropbox.
You will be at the mercy of that project (or you fork)
Good cases: as a plugin, which follows a certain interface? Or a theme? Or an extension?
Bad cases: Overwriting existing code.
Punchline: if you do this internally as a toolkit in your company, it can work really well.