6 ms·
I can't imagine ever shipping a side project. That's not why I build them. If I ever got to the point in my life where I do want my own company, a side project
I can't imagine ever shipping a side project. That's not why I build them. If I ever got to the point in my life where I do want my own company, a side project is not the way I want to go about it. Companies take a lot of work, that work has to be understood, then delegated and shared.
The technology aspect is really only 10% of it. Sure, it's the essential 0-to-1 kicker that gets you going, but once that's done you still have to find product-market fit. That quickly assumes second-job status and can wreck your personal life. I've seen it happen.
A side project means you're taking all that on yourself without any help or real guidance. Not having that help means that when you finally do ship your side project, it's probably not going to achieve the kind of rapid growth you need to make scaling up possible.
And you really need rapid growth in order for working on a startup of your own creation to beat out having a reasonably-decent job. And if you don't have a reasonably-decent job, it's way easier to switch jobs / industries than it is to build out your own company.
What I want out of a side project is the kind of deliberate practice that is often lacking in my real job. Also to chase down random mind hares that seize my interest.
I agree with a lot of this. My one comment is that not all side projects are about a "full startup business". I shipped my 2 mo. side project this summer. Donors Choose Project Finder
https://appsto.re/us/JVmbab.i https://appsto.re/us/JVmbab.i . It was 100% pro bono , and to keep my skills sharp. So far over $20,000 in supported donations. Keep an eye open for the next set of features :)
Very cool! Something to strive for, definitely.
Agreed; many side projects are just for fun, to create a tool that you want & you don't care if others want it (though you may or may not choose to share it having created it), to ship just to show your friends, or see how it does in the wild without caring about whether it generates cash; just hoping that a few people find it & appreciate what you've made.
Personally I'd hate to run my own business, since that means moving away from the code (even if you get another person to take care of the non-code stuff; you still have to go out and find the right person for that / get involved in things that you wouldn't otherwise choose to). That said I'd love to create something, put it out there, and have 5 people come back and say "thanks for this; you've fixed a problem that I was having"; to get 100 people say that would be even better; any more and I'd probably start to get upset as there would become expectations to start implementing things the user base was asking for, rather than just doing my own thing; which for a hobby project is all I'd want.
A lot of my side projects relate to my day job; I use my spare time to create tools which make my work life simpler. Sure the IPO belongs to my employer, but it means I remove frustrations from my working day without having to justify spending company time on the tools which allow that, and I can share these tools with colleagues so that my friends get the benefits too. That makes for a pleasant life.
> And you really need rapid growth in order for working on a startup of your own creation to beat out having a reasonably-decent job
I disagree. You only need to get the income you want with the work you are willing to invest. Depending on what you do and what you need, that can mean that scaling up is not required at all.
Bootstrapping a business out of a side project is a thing.
> Bootstrapping a business out of a side project is a thing.
Sure, but it's not reliable. And that lack of reliability makes it inferior to a good job. If you're really a glutton for punishment and don't mind letting the market be your teacher, then you can make it work eventually.
If you're wired that way, for sure do what you need to do so you can stay sane. That's a big ole' pile of nope for me.
This is a rationalization and you know it.
There are tons of other people who also think side project is a way to learn something new, yet they ship.
Also there are tons of startups that started out as side projects. Facebook did.
You have no excuse. Stop lying to yourself because it's not doing yourself any good. The only reason you're not releasing your side projects to the world is because you are afraid of criticism.
deleted 10y ago
[deleted]
Oh believe me, I did try. Moved in with a business cofounder and started working on an idea. We squabbled over a lot of things before I realized that it was a marriage and not a transaction, and what I wanted was more transactional. So I bailed and got a job.
I still talk with the guy and fill out estimates for his potential clients whenever he wants. We'll eventually hack out a working professional relationship and start a company together.
The fact of the matter is that personal life matters more to me than professional life. I think a lot of people wind up using professional accolades to make up for things they can't get in their personal life. Maybe that's not you, but for me, working on my relationships and my emotional health is 100x more important than a big pile of money and influence ever will.
Maybe your answer to this is to "just work harder." To that I just have to say, 'absolutely not'.
It doesn't sound like you were working on a side project there, and even then, you have one bad experience and throw your hands up?
You can have a rewarding personal life and still learn while building something on the side, and show it to the world. But, I think you have to be prepared to appreciate the process without expectation of payoff. Just my observation, your comments read like there is a preoccupation with the latter.
>That quickly assumes second-job status and can wreck your personal life.
Your what?
I think I've released all my side projects to the world out of laziness: my Github account is not a carefully curated resume, it's just "things which were interesting enough to warrant source control".
There's no point in shipping unless you're gunning for a payoff. Sure, if you want to find meaning in giving total random strangers things that they want you to give them, knock yourself out.
A B C - Always Be Closing! In this case, always be shipping. I see a lot of resentment around here against the fact that you developers are always seen as lowly peons by managers. And here we have the perfect example why: this guy doesn't care about shipping, he only care about going into his little world and doing what he wants. This type of mentality leads to what we managers call 'coder mentality'. Programmers that see themselves as programmers instead of problem solvers. You need to get out of your head and realize that coding is just a tool to solve a problem. It's not something that you do just because. It makes no sense. Coding in of itself is useless.
Problem solving though, is very useful. Some problems require only coding, some problems require some coding and other things, and other problems require no coding at all in order to be solved. You should always seek to solve problems that you and others have. Don't just go into your world and start coding. That will not make you a better programmer.
We managers hate the 'coder' because he just wants to code and not solve business problems. That is why you are treated the way you are treated and will always command less respect than others. By the way, when things are down and we have to let people go, who do you think we let go first: the guy who shows interest in the business and how to make work better and cut costs, or the guy who just puts headphones on and starts coding surrounded by red bulls?
I'll leave you with the now famouse Glengarry Glen Ross Scene: https://www.youtube.com/watch?v=v9XW6P0tiVc https://www.youtube.com/watch?v=v9XW6P0tiVc
Always be shipping! You don't ship, you don't exist. When I hire I always ask about shipped products specifically. The things that didn't ship don't exist. I consider that wasted time. One shipped product means more than 1000 personal projects that didn't ship, no matter how much you think you learnt.
I'm in a similar situation to GP. I've done tons and tons of side projects but I rarely have anything to show for it.
And why should I? I'm doing it mostly for the fun of coding, and striving to "ship" things takes some of the fun away. I most certainly do not want to start a start up from any of my side projects. Perhaps an established open source project at most.
I do "release" my project, ie. push them to GitHub, but they don't really gather any attention or contributions from others. Sometimes I share some snippets in relevant discussions and receive positive feedback but I have no idea what it would take to actually gain any traction.
So I've basically given up on the idea of "finishing" or "shipping" or whatever. I have 3 hours of free time on Saturdays and I get to choose how to use it. I can either do fun stuff (coding, art, etc) or desperately try to "ship" and gain traction but that just isn't fun.
That said, if anyone is interested in open source space simulation (my current "main" side project, 5+ years in), get in touch on HN. There's no way I'll ever ship it alone, but it's nearly impossible to get anyone else to help me with it because I don't have anything cool and shiny to show.
I think you are doing great that you're releasing them into public, but your problem is you are not sharing it enough.
I have many friends who release things like you. I'm not saying you are doing this but these guys just release and make no effort to promote them. They are afraid that they will get hurt if they try hard and no one still wants their thing.
I understand this is totally valid fear and I have it too, but I also know that getting the word out vs not doing it makes a huge difference.
Next time you build a product try to post it online everywhere like Reddit and Show HN. I'm sure you'll gain more confidence and experience from it.
Thanks for the feedback. Yes, I probably do share too little, and I get too discouraged when reddit downvotes my stuff to oblivion.
> Next time you build a product try to post it online everywhere like Reddit and Show HN. I'm sure you'll gain more confidence and experience from it.
Here's the problem, I never "build a product". My free time is not nearly enough to build a proper product that would a) be fun for me to write b) interesting enough for the general public.
Basically the best I can do is show a few screenshots or a few hundred lines of interesting code. In my experience, that's not enough to gain traction on Show HN or Reddit. Sometimes I share screenshots on IRC and do get some interesting follow-up discussions but that doesn't really help me to get these projects any further.
Maybe I should gather up the courage and start posting to reddit /r/gamedev "screenshot saturdays" threads for getting feedback and encouragement. Although I'm not really doing a game here.
But yeah, I mostly try to not think about the idea that I'll never finish these projects and have fun while hacking on them. I've been doing this for 20 years now and never really "shipped" anything, so I might as well stop worrying about finishing and just have fun.
Wow, I was going to write my own story of putzing around with side projects here, but yours matches it perfectly. I've got a local repo with probably dozens of 50-100% completed hobby projects, but I don't really release anything. I used to release stuff but then it becomes a maintenance pain. Users don't get that this is a hobby for you, and don't understand why you don't respond and fix right this minute. This is especially true for free projects.
I currently work full time for a company whose policy forbids releasing anything I work on in my free time, so it's kind of nice--the decision is pretty much made for me.
I guess the advice is learn to _finish_ things but don't get too hung up on releasing them. Unless you're trying to build a business in which case you need to follow a totally different path (release MVP early, get feedback, iterate, market fit, etc.).
Yeah, I stopped working on "infrastructure" utility libraries and similar projects because the maintenance burden is too high. Some people just don't get it - I'm not in it to provide a free service to anyone.
Luckily I live in a country where the law doesn't allow an employer to forbid releasing projects done on free time, so I don't have your issue. I would seriously reconsider my employment if I were given such restrictions. As little as I finish stuff, the ability to share and receive feedback from strangers in the internet is still positive to me.
Out of curiosity, how did they pressured on you and which community was it in (linux/frontend/java/python/etc)? Many project I seen (and used) seem to be abandoned after a while or are maintained slowly, so you not being able to maintain long term seems pretty much standard to me.
They are afraid that they will get hurt if they try hard and no one still wants their thing.
I'm in this kind of release, not because of fear, but because promoting project takes times (a full time job for some people) and I prefer to spend my time programming something else
Yeah, it takes a huge amount of time and effort to make your voice heard and your project promoted.
I have a feeling that naturally extroverted people do not understand that it takes a real push from other to show your work to strangers.
Same thing as the discussion about "demo days" earlier today. Those who are good in promoting are not necessarily those who are good in building projects. This applies to other aspects of life as well as it does to pitching startups.
cough My side projects:
http://jpad.io/ http://jpad.io/ - Java snippet runner that means less boilerplate and automatic display as html tables / charts.
http://www.sqldashboards.com/ http://www.sqldashboards.com/ - Real time chart your database queries
http://www.timestored.com/ http://www.timestored.com/ - Niche database training and tools
cough always be pushing :)
These are all very neat and polished projects. And you have the advantage of doing web sites / apps which is a lot easier to release than a native app. The stuff I do simply isn't viable on the web (or even if it were, it wouldn't be fun) and I'm not particularly interested in working within a browser sandbox.
It's much, much harder to get a project to a state where someone can git clone, build and run it. Depends a lot on the target platform and the nature of the project, some languages and platforms are easier than others.
No need to be arrogant, though. Nice that you have the time and the ability to finish but don't expect everyone else to have the time and the capabilities to do so.
> I have many friends who release things like you. I'm not saying you are doing this but these guys just release and make no effort to promote them. They are afraid that they will get hurt if they try hard and no one still wants their thing.
The thing is, not everyone builds things to have something at the end. A lot of my side projects exist because I enjoy hacking on them, not because I have some particular end result I'm looking for.
Of course, I have other side projects where I want both, and for those, shipping probably has value.
I write a lot of personal userscripts that I upload publicly to Greasyfork just in case they benefit someone else or someone asks me to share with them. I rarely have plans to improve or maintain any of my work beyond my own benefit. I fix bugs only when they are an issue to my personal work flow. Most of them are quick hackjobs I write in 10 minutes to fix some personal pain point on websites I use.
The amount of users that (a) browse the same websites I do and (b) take issue with the same things I take issue with are next-to-zero.
I also don't care to hear how I could refactor huge parts of my code to be more extendable in the future - because I have no plans to extend it to begin with. I know the code is absolute garbage and I can easily improve it if I took 10 minutes to refactor it. But it works and that's all I needed, so that's all that gets done.
People have different motivations for releasing publicly. I know you were probably speaking more to side projects, especially potentially profitable ones, but I felt I'd throw in my $0.02 to accompany all the others.
I dont want everything I do criticized. I dont want every small doodad I make to have to worry about licenses and IP. I dont want to have people yelling at me for not supporting a weekend project.
As a specific example, I wrote a personal set of Minecraft tools.
I read a lot of file format information off the wiki to get compatibility with their map (and other) files. Did I accidentally use protected IP because the wiki wasnt clean information? Maybe. Did I stray in to copyright violation by using their names for blocks, rather than renaming the numeric codes? Possibly.
Then there's the fact version 1 was a hacked together spaghetti ball with magic values all over the place I wrote in an evening. Would I have benefited from having that feedback told to me? Not at all -- that was actually solid engineering to get 'er done as a prototype.
A week later version 2 was out, but it was a complete rewrite that didn't have any compatibility. Maybe feedback would've been helpful here, but even I thought there were still some obvious flaws because I was trying a new style of programming in Python, and it hadn't gelled yet.
Version 3 was a week or two after that, with another breaking rewrite. This time it used a model of automata from a completely different source, changing the storage format, adding a scripting interface, etc. with only a thin definition file for and import/export layer to Minecraft.
And that's where it sits on a drive, 90% finished automata development tools with MC compatibility because I learned what I wanted to from the project and moved on to other things. (I say 90% finished because while it works fine, there are features I thought of but didn't add.)
I don't want to keep working on it, I don't want to share the implementation of the automata engine because it's slightly buggy, and I don't want to support the project if others choose to use it. (And they very well might -- MC development tools suck.)
What would've been gained, at any point, in "shipping" it (beyond using it myself to make a few maps, which I did)?
> Stop lying to yourself because it's not doing yourself any good. The only reason you're not releasing your side projects to the world is because you are afraid of criticism.
I often set the bar so high there is no chance I could ever finish. The only projects that are attractive and shiny enough are those that are too big to finish.
E.g. I could choose between writing, completing and shipping a small indie game. Or I could write an OS from scratch, or the next Unreal Engine because I think it looks shiny.
Obviously I have no chance in hell of compleing a AAA game engine. Or an OS that does any more than say "Hello world" on boot. But I can pretend to be writing a AAA game engine - and I can keep pretending for many nights, until I have 1% of a game engine. At that point, there is probably something shinier that gets my attention.
So releasing it to the world: Obviously: I could put my 1% of a game engine on github for everyone to see, and that would be "releasing it to the world". But most likely no one would see it! I have hundreds of projects sitting around in various stages of completeness. Perhaps 2 or 3 were ever in some kind of usable state - and what they do have in common is that it was horrible to "finish" them in terms of making a proper repo, readmes, deployments, setups etc...
The reason finishing stuff and shipping them is so boring is because even a trivially small project that people actually want to use will have a ton of work required that aren't coding. I have no interest deploying a web app, no interest in drawing (or searching for) graphics for the little indie game etc. I'd rather make a new placeholder game than finishing the first one! I just want to code. I don't mind showing my code. I just normally don't want make a finished product of it. I get enough of that at work.
Edit: noticed someone said pretty much exactly this already and you responded. Oh well.
I find your OS example a little bit misplaced considering a quite complex OS can be completed by one person (obviously more complete than "hello world") but regardless of that, the commercial value of a new OS is quite low but the usefullness of learned (I'd say) is quite high.
Hell, even Terry A. David completed TempleOS, and he's mentally ill.
So yeah you sure could complete and release shit, you just don't want to for some reason or other.
deleted 10y ago
[deleted]
That's like saying even Michael Jordan was able to win an NBA title, and he has freakishly large hands!
Terry is a force of nature.
Yeah, that's a pretty fucking ableist thing to say, so maybe you could just not say it.
Turns out some crazy smart people are...crazy and smart.
> I often set the bar so high there is no chance I could ever finish. The only projects that are attractive and shiny enough are those that are too big to finish.
This reminds of a chapter in "Computer Power and Human Reason" where Joseph Weizenbaum describes the differences between compulsive programmers and professionals.
> His main interest is, in any case, not in small programs, but in very large, very ambitious systems of programs. Usually the systems he undertakes to build, and on which he works feverishly for perhaps a month or two or three, have very grandiose but extremely imprecisely stated goals. [...] It is characteristic of many such projects that the programmer can long continue in the conviction that they demand knowledge about nothing but computers, programming, etc. And that knowledge he, of course, commands in abundance. Indeed, the point at which such work is often abandoned is precisely when it ceases to be purely incestuous, i.e., when programming would have to be interrupted in order that knowledge from outside the computer world may be acquired.
My interest is usually more in some specific problem or algorithm. I'm curious how subsurface scattering works so I write a sloppy pathtracer just to act as a shell for what I really wanted to do - the complex algorithm. Once I get it half working I'm done, because the goal was neither to make a product or to finish even the subsurface scattering part perfectly, the goal was to code and to understand the algorithm.
I'm not really in it to create, and that's perhaps the key. I write programs because that's how I understand problems. If I could understand something by reading a book or Wikipedia page then I'd often just do that and not have to do the coding at all!
Doing this kind of superficial learning-through-coding is fantastically effective I must say.
> Basically the best I can do is show a few screenshots or a few hundred lines of interesting code.
I've got some similar projects: An NES emulator that I play with optimizations in, and a bunch of utilities related to the game Ultima Underworld, which are basically waiting to be plugged into an as-yet-unwritten game engine. There's some interesting code (both mine, and disassembled code from the original game binaries), but the shiny, attractive parts are spread thin.
Plus, if I had external pressure to work on these things, I feel like they'd lose some of their interest. Part of why I like them is that they're impractical projects that I can putter around in occasionally, when the muse strikes.