As programmers, why we never finish our projects
programmer-hek.blogspot.com
programmer-hek.blogspot.com
This is why most real entrepreneurs aren't afraid to share their ideas and get it in front of people, while most developers go into "stealth mode" afraid someone will steal their idea. Entrepreneurs know that without execution, your idea is worthless... and execution is equal parts talent, vision and discipline. Take any one of those 3 pieces away and just like the fire triangle, your idea dies.
>Share your idea, it’ll validate (or invalidate it), shape it and most importantly, commit you to it. We don’t want to let people down and we do want to save face, so tell people what you’re working on.
I'm not sure if I agree with this last point. Studies have consistently shown that discussing a goal with others reduces your motivation to actually meet the goal[0]. I've found this to be true in my own experience with side projects. I'll spend a few days excitedly discussing the details of some idea with my friends online, and then never end up finishing the project.
Social pressure does work, but it's likely better for more definite goals. You could tell your friend "You know, I think I'll run that marathon with you next month," and be obligated to prepare for it. However, side projects are mostly self-motivated and there's no use sharing all your excitement with friends instead of working on something tangible to show.
[0]: http://www.newsweek.com/does-announcing-your-goals-help-you-...
I think of it as a delayed gratification problem. There's a bunch of gratification that comes from building something cool, and having people around you appreciate it. If you can get a lot of that based on just the idea of the thing, then you've got much less motivation to actually build it.
If you're going to get 1000 plaudits for finishing, that might keep you going through 10 ergos of work. But if you cash in 800 plaudits right off, now you're faced with 10 ergos of work for only 200 plaudits: and that's an exchange rate it is difficult to justify.
A similar thing happens with releasing little and often, for the same reason. It is massively motivating, until the 4th or 5th release, then you hit the wall of rapidly diminishing returns.
AKA "How to lose friends and annoy everybody"
I've worked with many other programmers on side projects and many times, unless someone is getting paid, they get bored and lose interest when they have to start working on something that's not cool or interesting.
I learned the hard way that these are also the same types of developers I don't want to start a company with.
Regarding your last point, I think also what a lot of developers struggle from (myself included) is project ADD. Having discipline to scope something out, set sane (and near) deadlines and focus only on that is important to seeing it through to completion. Good work on developing that discipline.
I had one open source library that gained some traction, which I lost interest in. Luckily for me, another took over to finish it.
I was actually thinking of launching a platform to help people get the last 10% done. Often, people have the entire thing figured out but lack the confidence or the expertise to go live. Perhaps if an expert was to look over the project when it was about 90% done, you would feel more confident about launching.
Either way, the demands of someone looking for help before launching, vs. someone who wants something built from scratch are very different. I thought a dedicated platform for the former would help.
Even though the 15 lines of code seems simple and you can knock it up in a prototype in 6 minutes... that 6 minutes of your effort then needs to have tests written for each workflow, it needs to go through a Product Owner who needs to assign acceptance criteria, it needs to go through a QA test plan, it needs to get through acceptance testing and hopefully you've got a battery of tests that means it doesn't need to go through regression testing... and then assuming you've got CI/CD in place, it initiates the deployment pipeline and makes it to production without any major headaches. So you see, the optimization even though simple on your own project, and may not appear to "cost" much - certainly not in terms of technology actually has a massive amount of "hidden" costs - which is why it takes large corporations so long to deliver anything.
Once I got past that mental obstacle and started releasing things that were done enough, then I got a bit addicted to it.