Have you ever thought of publishing the code you built for your company? Or even tried to convince your project lead to do so? Assume you created a remarkable and successful product. Maybe an excellent app in the app store. Now go and publish the source code!
It feels dangerous. Maybe even insane!
Other than the obvious that you should only do it for a good reason, I don’t believe anything would happen. Let me tell you why I think your source code is less important than you think.
A puzzle is more than its pieces.
As you might know, we build and provide a SaaS optimization solution for e-commerce search. Lately, we have had several discussions about several algorithms and features. I found it remarkable how much background knowledge everyone in the team has piled up in their brain! If we were to give you all our source code, and none of the context we carry around with us every day, I bet you would have a hard time building a business around it. Not because the code quality is so bad or poorly documented. Even if you know the technology stack and understand what we do, you still would be hard-pressed to wrap your head around it. Why is that?
No pain, no gain
First of all, I think it has to do with you not being part of our journey! If no one explains it to you, you would not understand why we did several things the way we did.
Last week a colleague wanted to reimplement a part of some complicated and faulty algorithm. I encouraged him to use an approach I tried and failed before. “Why will it work this time?” He asked. Good question. “Some of the conditions changed; that’s why it should work this time.”
After some more discussions, we agreed on another approach.
You see: Just having some technology or some fancy algorithm in place won’t make it work. You may end up building strange-looking code just because you imagine the problem in a very unique and specific way. That’s not bad. It’s just important that it works. At the very least, you and your mates must understand it. But for others, on the outside, it might get hard to follow. You will only ever comprehend the code if you grasp the same “mental model” we have.
No passion, just bytes
The problem described is a very particular example. Let’s take a step back. Assuming you understood it all and managed to make it run, what’s missing? Users. Customers. How will you get them? Do you have the same passion for presenting it? Have you understood the actual problem we solve and all the use-cases we see?
A product is just as good as the weakest part of the people providing it. You can have the best source code, but in lack of people representing it, the product will stay what it is: some bytes in oblivion. However, it’s also the other way around. You can have fantastic marketing and excellent sales, but if your product is shit, its documentation hated, and your support team sucks (read more about why you should solve that), you can’t hold the customers for long.
No vision, no mission
Also, while you might be busy wrapping your head around it and making it run, we are already several steps ahead. You can’t imagine how many ideas we have. The more we work on solving this specific problem in e-commerce search, the more potential we see in it. With every change and every tiny new feature, we solve another problem – some of them the users haven’t even seen before. And they like it. It feels like being on the fast track. And the longer we are, the more speed we gain.
Can you get on that track as well? Not just by taking parts of it.
Prove me wrong!
Still not convinced? Last few months, I was working on Open Commerce Search. I had the honor of being part of a great project with it. Guess what: it went live a few weeks ago. I still can’t believe it. It works! 😉
Will you be able to build a successful e-commerce site search solution with it? No? Let me guess – you need more than just source code.
Nevertheless, you should try and experience the potential of how OCSS simplifies and compensates for major flaws of using Elasticsearch for document and product search.
But generally speaking, I hope to have encouraged you to take the plunge into releasing your source code when the time is right. Many projects reap tremendous rewards once made public. And remember, the final product is always more than the sum of its parts.
Want to become a part of our great team and the thrilling products we create? We are hiring!