Nice article with interesting thoughts and I appreciate the quotes - but I respectfully disagree that 'finishing a personal project you’re doing just for yourself is impossible'<p>I think it's really important to first reflect on the purpose when doing something: is it to solve a problem, is it to learn something, is it to achieve a target, is it to keep yourself busy to wind down and because you like doing it, or is it to promote yourself.<p>The next step is to define a goal and a scope - not a deadline.<p>When realizing it, it is important to take a pragmatic approach. All activities should lead towards achieving the goal - do not overengineer.<p>This way, projects can actually get finished.<p>From personal experience, I have been successful in software projects, sports competitions, building objects and furniture, and doing musical projects.<p>Success being defined as achieving the set goal and having completed the project.<p>Their purpose was never to selfpromote and the activity rarely involved creating art. So maybe art is a niche that is never finished...<p>Mid next year, I want to pick up writing a blog. The primary purpose is to 'keep myself busy' because I have never delved into this activity and I am curious about the process. The secondary purpose is to improve my literacy: I want to be able to read and write more efficiently, because my new job will require that. And the tertiary goal is to self-promote.<p>Elaborating on the topic of finishing projects would make a perfect first article. Thanks to the author for your inspiration!
"The poet Paul Valéry once said that poems are only abandoned, never finished. I’m realizing that every project has a point where the creator, no matter how unsatisfied, has to stop iterating and decide to put what they’ve made out into the world. And it’s always a compromise, because they know every little flaw about the thing they’re making"<p>So true. At some point you stop working on it and start using it. When you start using it and stop modifying it, you start learning the actual characteristics of the thing. Only then will you find what you like about it and what not. Generally, as user or consumer, you will tend to adapt to the shortcoming and try to maximize the use or enjoyment you get out of it.<p>In addition, whilst working on something, it can be so hard to predict when quality goals will be met, because the incremental progress slows down constantly as the product grows (non-linear). The reliability and quality of a thing are often only known after using or consuming the thing for some time. Only through actually using and consuming, true evaluation is performed. Only in retrospect can one say anything about the quality of something.
4th point about writing stuff down leads to another fun exercise. If you care about an idea but don't want to spend time doing the thing, write up a plan for how to do it. Then consider that to be your work product, and never look at the file again.<p>Good way to get something out of your system, and maybe 3 years later you open it back up and go for it.
Out of curiosity, I checked the git log of my own little personal project, a macOS based Poker tournament clock, like The Tournament Director[1], and the initial commit was in December of 2014. Wow, almost 10 years ago! And yes, it's still not done, even though I've been using it for my own home games for years. I've never released it publicly either--I guess I just don't see this need to get users/be seen by the world. Otherwise, this whole article rang super-true. Thank you for writing it out.<p>1: <a href="https://www.thetournamentdirector.net" rel="nofollow noreferrer">https://www.thetournamentdirector.net</a>
Bjarne Stroustrup once wrote: "Software development is an iterative and incremental process. Each stage of the process is revisited repeatedly during the development, and each visit refines the end product of that stage. In general, the process has no beginning and no end."
This is completely alien to me. I've had various personal projects over time. They are always managed in terms of goals and available resources and never deadlines. Deadlines can happen, but in general they are a terrible way to manage nearly any development. Better to consider goals and resources and work from there. My results have been pretty good and often open up new potential direction for continuation projects afterward.<p>There is a saying that works of art are never done, people just eventually quit working on them. Even that seems somewhat apart from "... finishing a personal project you’re doing just for yourself is impossible" which seems overly broad and very dark.
Good article on the basic nature of software projects, they never seem to end unless you decide them to end. When to do that ? Who the hell knows, it took me about 10 years for my own project to reach a state where I could say "This is done now, I am satisfied with the goals I set to reach 10 years ago".. And even that came through because I was exhausted working on the project, spending so much time on it.<p>I think you have to decide at some point: "This is done."<p>Maybe it requires stripping out some parts, or major parts, of the software you had in mind to reach that, but I feel it has to be done at some point, the feature creep will settle in otherwise and you will never be done.
End of last year I had some time and started building a side project I've been thinking about for quite some time. I bought the domain and promised to myself that this time it will be different, this time I will publish.<p>Months go by, with lots of refactoring, "core" features and no progress at all. Some weeks were most productive than others though and just last month there was something usable.<p>So instead of doing what I always did, building more stuff, I setup a server, nginx, certbot, and released the damn thing. By released I mean it was available on a URL, but nobody knew about it. And that was calming, because it was out there and that was the goal.<p>That helped me mentally to just share it with other people and see what happens. And I did, and it wasn't bad, and it was fine.<p>I still don't have much time to spend on it, but I know it's outhere with people using it, and I can always work on it.
This is how my website came to be. A slow gradual accretion. The longest-in-draft post is currently clocking 4 years and counting. Though no work of art, suffice to say, I relate with the sentiment. This is a favourite quote:<p>_"A Work of Art Is Never Finished, Merely Abandoned"_<p><a href="https://quoteinvestigator.com/2019/03/01/abandon/" rel="nofollow noreferrer">https://quoteinvestigator.com/2019/03/01/abandon/</a>
<i>> Finishing anything is a miracle in and of itself. A huge shoutout to anyone who’s ever done anything to completion at all.</i><p>He is writing about art (creative writing), as opposed to commercial product. Art is fairly inward-focused, and its goals can be a lot “fuzzier” than product. I was an artist, in my Yute. At one time, I wanted to actually make a living from it.<p>But artists finish, all the time. Some, treat their art as a product, and that seems to help, but they also risk commoditization of their creativity.<p>I’ve spent pretty much my entire life, shipping software. That’s been for externally-imposed deadlines, usually as part of an integrated team, with synchronized milestones.<p>As he mentions, that helps a lot.<p>Since working on my own stuff, I’ve had to drastically reduce the scale of my work, and practice self-discipline that, I suspect, many folks here would consider extreme.<p>But I still finish stuff. Finishing stuff is actually part of the personal satisfaction that I get. It’s an art, in itself.
Favorite part of working on my HiFutureSelf app is that there is no finish line. Incremental improvements over 13 years, and no end in sight. Each release feels so wonderful. Barely noticeable but the difference over time is massive.
Ahhh, this speaks to me. I've been doing my pet project for 6 months now. I have just embarked on another new feature this weekend. The project has been "finished" for a number of times on a number of milestones, but but I just needed to get one more feature in. I'm my best and worst product manager. Best in the case that I can control what go in and what to keep out. Worst in that feature creep is way too easy.<p>Ok. I'm going to comment out the pending feature and just release it.
> Unfortunately, writing a compiler creates a living thing.<p>> I didn't realize this going into it. I wasn't asking for a baby.<p>> It was a complete surprise to me, after 20-odd years of industry experience, that even writing a simple interpreter would produce a lifetime of work.<p><a href="https://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html" rel="nofollow noreferrer">https://steve-yegge.blogspot.com/2007/06/rich-programmer-foo...</a>
i'll be honest, i didn't really enjoy this article. i feel like there are people who are idealists and perfectionists and people who actually execute on ideas. i am not saying one can not change. certainly in my life i have been in the first category for many years or decades at a stretch. but i am at a productive period in my life and i write every day, i write music every day, i write code every day, i accomplish many other things through the course of a day. is everything i do perfect? no: not one thing i do is perfect. perfection is just some ideal or mental standard but it is not something that i think can ever be achieved except in very limited contexts, like maybe a game of tetris.<p>i remember some years ago reflecting back on some software project that had gone well. in my head, it was a beautiful finished object that i'd created using the tools and frameworks available to me. it was perfect and flawless.<p>then i went back and read the code and saw so many TODOs and things that i would have accomplished had i only had more time. and i never did get a chance to finish those TODOs, but the project launched successfully and generated a lot of revenue.
> This was an extremely dumb use of my time, and it won’t help me in my career or make me money or get me clout.<p>The things you do for themselves are the only things worth doing - because the value of all other things is merely derived.
Highly recommend <i>The Creative Act: A Way of Being</i> by Rick Rubin.<p>He has at least two beautiful chapters on this subject:<p><i>Completion</i> p191<p><i>The Experimenter and the Finisher</i> p205<p>The last sentence of <i>Completion:</i><p><pre><code> We can't wait to finish,
because there's another idea calling
that lights us up.
</code></pre>
The endnote for <i>Completion:</i><p><pre><code> Is it time for the next project
because the clock or the calendar
says it's time,
or because the work itself
says it's time?
</code></pre>
P.S. All his chapters are beautiful.
I have a side project that I work on in bursts of activity roughly every 10-14 months. I'm currently in a phase of significant forward progress.<p>The reasons it falls by the wayside are varied. The first big gap happened during a whole house renovation, which in retrospect made a lot of sense! Mostly there is just only so much time in the day and lots of ways to spend my time.
It's not only personal projects. I am in a similar stage where I feel kinda the same for a SaaS (Cloud Camping) where I am the sole developer. I have been working on this "MVP" for over 9 months now, we have our first customers (fortunately), but I underestimated the surface area of the domain (PMS - property management system) which seems like a never ending story. If you decide to create a PMS, customers are used to all the features that come with such a software: Third-Party Integrations for Booking Engines, Email Templates, Newsletter, i18n support for DB entities, hardware integrations (Electricity, Barriers, ...). It's difficult to draw a line for MVP or finished product.
I think I semi-successfully restored some sanity to a long running personal project.<p>I had added features nobody wanted(afaik), that were a hassle to maintain, and that <i>I</i> didn't have any use for.<p>I just axed them all. And I stopped adding features without real use cases I actually planned on doing. I was spending hours a week but the project was getting crappier instead of better.<p>With all that gone, I had time to add features I actually wanted, and clean up the architecture to make that possible.
>Because if writing a stupid essay that requires zero research, zero external coordination, and zero dollars, only my time and focus, is this difficult to finish, I’m astounded that anything ever gets done in the world in the first place, and that too well.
>Finishing anything is a miracle in and of itself. A huge shoutout to anyone who’s ever done anything to completion at all.<p>Ha so true!! Perhaps I am just getting old.
This reminds me of a rather wonderful video about getting stuff “done” vs pursuing perfection :- <a href="https://youtu.be/bJQj1uKtnus?si=bdyI83voqRb2B3rY" rel="nofollow noreferrer">https://youtu.be/bJQj1uKtnus?si=bdyI83voqRb2B3rY</a>
My little programming project has been all about the data model, and a ton of fun.<p>But I don't enjoy UX work at all.<p>So if I can get it to a "mud fence" level of usability, I'll need people with a shred of aesthetic sensibility, since I'm done around vi with the UI.
> I should’ve known what I was gonna say, right?<p>It does feel like you should know... but knowing all the parts does not mean you know the whole. The rules of chess do not make you a gramdmaster. The axioms of geometry, of predicate calculus do not make you know all theorems and proofs. Being able to program does not mean you know all programs.
My personal lesson is that stability of frameworks is worth so much more than features, but features are what attracts developers to open source.<p>So you either have stable but dead, congrats you are the framework developer.<p>Or you have constantly changing, api breaking rodeos but you might not become a framework developer.<p>Pick your poison
Remember when Gmail just came to be and was a cool kid on the block? It was a <i>"Perpetual Beta"</i> [1]<p>[1] <a href="https://en.wikipedia.org/wiki/Perpetual_beta" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Perpetual_beta</a>
when you start getting musing on the meta of the project - philosophizing, looking at yourself in third person, maybe figuring a way to optimize projects like this, etc.<p>I don't know if that's where true wisdom starts, or if it's procrastination at work.