I have spent over 10 years obsessively thinking about the same project/vision, and I have not executed a single thing.
I spent hundreds of hours agonizing about every detail (name, domain, programming language, framework, database, text editor, operating system, computer). For weeks at a time, I'll seriously consider (without actually doing anything) designing and implementing my own programming language/operating system/IDE/database, because none of the existing ones are "good enough". I regularly come back to the old Vim vs Emacs debate. When I need some challenge, I look at the Millenium Prize Problems and take a stab at P-versus-NP. Rinse and repeat, ad infinitum.
Every time I buy a new computer, switch to a new Linux distribution, setup a new IDE, go through a new programming language tutorial, I think that's the last step. I think that I'll finally be able to be productive. This is never the case.
I think we use procrastination as a defense mechanism to avoid facing a reality in which we might fail. I think that's a problem with our ego. What if we're not good enough?
I don't know what the solution is. I'm still struggling with this.
I think people who actually build stuff just make arbitrary decisions and don't care if things aren't perfect. They'll stack a bunch of hacks and anti-patterns, and look at the output rather than at the process.
Let computers be the tool you use. You don't profit from imaginary "elegance" in parts of the computer that you don't need for your daily work. Be a regular user. Develop only what you're good at.
Think about return on (time) investment. If you take weeks to configure your editor and learn how it works, it's most likely not worth it.
It's okay for software to be intuitive and easy. It's a tool, after all. If there is no proper onboarding and the software doesn't explain itself, the developers didn't get the UX right. You shouldn't rely on them for your work.
yup, i dread setting up a new computer. had to do that just this month. it was a relief to finally get on with work and be done with setup and configuration.
for the same reason i like to use programs at their defaults and not spend hours tweaking them.
instead i'll do that very slowly over time whenever something bugs me enough that i feel the need to change it.
I get a lot more joy from setting things up or the first few hours of a new project than the ongoing grunt work required to get something finished.
I think this is because setting stuff up is cool, like playing with a new toy, whereas finishing something is more like work, like shoveling a massive pile of snow.
I agree with this. I also did this for years. Then a couple of years ago I buckled down, built an MVP (mininamal viable product) in the most brain dead way possible, and put it out there. And... nothing, my idea received zero interest.
So the really cruel thing here is, all the dithering and indecisiveness really do amount to nothing, none of the decisions you mentioned matter; language, framework, db, etc. If something you build does gain users, then worry about it!
this reminds me of another fear that i have run into: the worry that what i am doing is to big to complete.
i'll definitely not create a new programming language if my goal is not the creation of the language itself. (i do have some ideas for a language, but they are not the project in my vision.)
i too have a project that i have been working on for more than a decade. i am still working on it, but instead of directly aiming for the big vision, i have been searching for smaller side goals that i could reach with that project.
so instead of starting with a road-trip across the country, i look for a reason to get to the next block. once there i find another and another, until i worked enough on it that i could work up the courage to aim for the next city. i am still far away from the actual goal, but in the meantime i crossed a state line, and i have at least achieved something.
I spent hundreds of hours agonizing about every detail (name, domain, programming language, framework, database, text editor, operating system, computer). For weeks at a time, I'll seriously consider (without actually doing anything) designing and implementing my own programming language/operating system/IDE/database, because none of the existing ones are "good enough". I regularly come back to the old Vim vs Emacs debate. When I need some challenge, I look at the Millenium Prize Problems and take a stab at P-versus-NP. Rinse and repeat, ad infinitum.
Every time I buy a new computer, switch to a new Linux distribution, setup a new IDE, go through a new programming language tutorial, I think that's the last step. I think that I'll finally be able to be productive. This is never the case.
I think we use procrastination as a defense mechanism to avoid facing a reality in which we might fail. I think that's a problem with our ego. What if we're not good enough?
I don't know what the solution is. I'm still struggling with this.
I think people who actually build stuff just make arbitrary decisions and don't care if things aren't perfect. They'll stack a bunch of hacks and anti-patterns, and look at the output rather than at the process.
Maybe I'll try that.