I am going to be launching a small web service soon and was wondering if it’s a good idea to upload the code to a public github repo.
The code will not be licensed for commercial use but the public could download the code and hack around with it.
Is this a good idea?
Would it help produce more secure/bug-free code?
Or would it run my startup into the ground?
Thanks,
Ben
6
I would not expect this to harm your startup but I also would not expect you to gain much benefit from the scenario you describe.
Let’s start by considering some of the possible risks (and why I don’t worry about them).
Your published code becomes a part of the product you are marketing. If this work is of poor quality that may do more harm than good. On the other hand it can also be an asset demonstrating both confidence and quality in your work. Developing software in the open may encourage you to produce higher quality work and follow better patterns. That might serve you we’ll in the long run but it might also discourage you from deliberately and appropriately incurring some technical debt even when doing so is in the best interest of your product or company.
Publishing your code might enable imitators. If you have a product other people want to imitate you are already in a fortunate position. Maybe you have some process you want to keep secret but for most web apps the implementation is not significant. Instead most web products derive value from the product/market fit they have found. Finding that is expensive but the result does not depend on your source code. Either anyone can imitate your product from its interface alone or no one can without your understanding of the market which is unlikely to appear in git.
So why do I think this won’t help?
A community of contributors helping improve your code is not something that appears magically or for free just because you made some code publicly readable.
What incentive would anyone have to spend time reading your code much less attempting to understand and improve it? Open source projects at least provide a tool their contributors can use so every participant might derive value from improvements they work on. With a restrictive license no one can use this software so why should they care for its quality? Do you expect that users of the product will be so invested in it that they would be willing (and have the skill to) take on its development?
Some projects award prestige and social currency even if the work done in them is not of immediate use to its author. That does not seem to be the case here.
I think the biggest impact releasing this code would have would be on you directly. What would you do differently knowing some one could read it? Would it make a good portfolio piece to share if the product fails? Would it help you sell the product or recruit if you have this code visible to point to?
1