I love to build pet projects because it is where I can use anything I want in various ways that I cannot try in my main job. Most of the time, I want to publish them as open source projects, but I haven't published any of them. There are too many reasons that make me unconfident to publish them: a lack of documentation because I used all my time on coding, worries about whether my approach is the best practice, concerns about performance because I have not done stress tests, and so on.<p>So, I want to collect statistics on how long it takes for you to release an open-source project from the time you have an idea to the time you announce it on the internet. Then maybe I can plan for myself better.
Thank you so much, guys.
<a href="https://concise-encoding.org/" rel="nofollow">https://concise-encoding.org/</a> will be released this year and has been in development for 5 years. This one has been slow because of all the support projects such as <a href="https://github.com/kstenerud/compact-float">https://github.com/kstenerud/compact-float</a> and <a href="https://github.com/kstenerud/compact-time">https://github.com/kstenerud/compact-time</a> and <a href="https://github.com/kstenerud/enctool">https://github.com/kstenerud/enctool</a><p><a href="https://github.com/kstenerud/dogma">https://github.com/kstenerud/dogma</a> has been in development for 4 months and will be released in about a month. This is yet another support project for Concise Encoding (hopefully the last!).<p><a href="https://github.com/kstenerud/kscrash">https://github.com/kstenerud/kscrash</a> was in development for about a year and a half before being released.<p><a href="https://github.com/kstenerud/Musashi">https://github.com/kstenerud/Musashi</a> took just under a year before its first release as a MAME core (after a TON of testing - I spent 4x more time testing it than I did writing it).<p>But other smaller things that don't require so much precision I just write up in a couple of weeks and release, such as <a href="https://github.com/kstenerud/virtual-builders">https://github.com/kstenerud/virtual-builders</a><p>The key is to build empathy with your potential users. What will their motivations be that lead them to try out your project? What will they be looking for when they use it? What would someone who has never seen the project before struggle with? (that last one is the hardest because you're so close to the project that it's hard to see what it's like to know nothing about it). These tell you what kind of UX you'll need, what kind of documents you'll need, what kind of tutorials you'll need, how to structure your project for your target audience, etc ("it's for everybody" is never a good idea).<p>Building a project is a lot like building a startup. You need to figure out your target market. That means lots of tests, lots of talking, lots of listening, market research, competitor analysis, even some pivots.<p>A lot of times it comes down to recruiting people to just try it and do a brain dump of everything that goes wrong or frustrates or confuses them. I've done show-HN posts for things that are unreleased (e.g. <a href="https://news.ycombinator.com/item?id=34720488" rel="nofollow">https://news.ycombinator.com/item?id=34720488</a> ), just to get the valuable criticism. It's nearly impossible to develop good projects in a vacuum.<p>If you're not posting out of worry for doing it wrong, THAT IS doing it wrong. The point is to find out where you're doing it wrong so that you can correct it! And that's where the crowd is a HUGE help. You can't build something great without looking foolish first.