top | item 38689869

Lessons from a never-ending personal project

275 points| weekendvampire | 2 years ago |siddhesh.substack.com

78 comments

order

adrium|2 years ago

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'

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.

The next step is to define a goal and a scope - not a deadline.

When realizing it, it is important to take a pragmatic approach. All activities should lead towards achieving the goal - do not overengineer.

This way, projects can actually get finished.

From personal experience, I have been successful in software projects, sports competitions, building objects and furniture, and doing musical projects.

Success being defined as achieving the set goal and having completed the project.

Their purpose was never to selfpromote and the activity rarely involved creating art. So maybe art is a niche that is never finished...

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.

Elaborating on the topic of finishing projects would make a perfect first article. Thanks to the author for your inspiration!

dekleinewolf|2 years ago

Completely agree.

I sew clothes. The vast majority of projects I start get finished. Sometimes I'm happy with the result, sometimes I'm not. I wear them regardless. My kids wear them. After a while they grow out of them.

Goal achieved, project finished.

rivo|2 years ago

Completely agree on not setting a deadline, it will likely lead to disappointment as we tend to set unrealistic deadlines anyway, even more so for personal projects which rely on having time off of work and other responsibilities. I would even skip the "define a goal and a scope" part. Just go for it and see where it will take you, it might go into a totally different direction, which is fine.

I started recording songs for a Christmas album in 2007 and just published them this month. I thought I would never release them. And every time Christmas was over, I didn't feel like working on them anymore. So I only had about a month per year to occasionally work on them. There were years when I didn't touch them.

So after 16 years, I could see the home stretch and I decided to make it to the finish line. (I recorded the final music video today, actually.) If you had pushed me to name a deadline back in 2007, I would've said 2008.

I have a whole bunch of "projects" lying around, some of them are just ideas at this point. They will get finished eventually. Or not. No pressure.

musicale|2 years ago

I feel like I've read too many blogs that were started by an author who wanted to develop writing skills, self-promote, etc. - but didn't seem to have many interesting things to say, and those few things were padded by large quantities of unnecessary text.

I greatly prefer the occasional blogger who focuses on quality over quantity.

bayindirh|2 years ago

Yeah, finishing personal projects is not impossible. I'm slowly building a set of tools for myself, and the servers I manage, and they're going well.

One of them can be considered finished, the other one is almost done. The first one may get improved, but that's a later exercise.

weekendvampire|2 years ago

Author here - thanks for the kind words. I mostly agree with your comment, the problem is less of not being able to achieve targets and more of the number of targets increasing as you get more and more ideas to add to something. Do start a blog, it's really fun!

rthkljlkrj|2 years ago

> 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.

Is it because you feel the need to keep yourself busy, but too lazy to plan what you're trying to achieve.

edg5000|2 years ago

"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"

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.

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.

rtpg|2 years ago

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.

Good way to get something out of your system, and maybe 3 years later you open it back up and go for it.

hutzlibu|2 years ago

Oh yes, always document everything!

Thinking is real work and unless you are an extreme exception, after some time you will forget even the greatest ideas!

ryandrake|2 years ago

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.

1: https://www.thetournamentdirector.net

SeenNotHeard|2 years ago

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."

dexwiz|2 years ago

How I long to be a snake eating its own tail.

eviks|2 years ago

The refinement could just as well be "it was done a week ago, revert to that version and stop working"

m0llusk|2 years ago

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.

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.

weekendvampire|2 years ago

(Author here) Yeah, most of my personal projects don't fall in the never-ending category either, this writeup was more about the ones that do because you get so many ideas as you work on them that you keep working on them.

inDigiNeous|2 years ago

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.

I think you have to decide at some point: "This is done."

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.

atoav|2 years ago

It might be even worse — let's try to answer one question: Can software ever be finished?

And if it was finished, what would people think about it? No commits since a year? Dead!

Jokes aside, I think software can be finished in the same way you finish building a house. Sure it built now, but that doesn't mean that maybe in a year or ten something major has to be done because the components that make the house changed, the environment changed, the requirements changed etc.

hobofan|2 years ago

What has helped me (and this may sound like an absurd suggestion as it creates even more work) is to split up all my projects into a public- and a private-facing part, and trying to follow the UNIX principle ("Write programs that do one thing and do it well.").

For all the things I want to share to the world, I'll make it into a small project that from the start has stated goals and non-goals. If there is some divergence from what I need personally from it, I'll have private fork (sometimes also just so I can work on it in a "fast and ugly" manner). By splitting them up consciously, the public and the private part can fulfill their individual goals a lot better ("polished"+finishable public shared part; tailored to my needs perpetual imperfect private part).

That also works surprisingly well for non-code things, like blog posts, where my private versions have a lot more references and detail tidbits sprinkled in, that would overwhelm the target audience of the public version of the post (mostly because it would take too much time to work it into the post in a good way). I guess that's also not a too uncommon phenomenon in the arts, with director's cuts of movies and additional mixes of music existing parallel to the commercially published version.

Tor3|2 years ago

I did a 'git log' of my emulator project.. the first entry is from December 1998, so 25 years by now.. (I used CVS back then, thus the early timestamp. It was converted to Git some years later). I still fiddle with it now and then.

Edit: That's not my oldest project, I may have some older ones still going but there's one with an initial commit from 1994, the last time I updated that one was in 2019 (in 1994 that would be SCCS, later converted to CVS, and after that to git)

Cthulhu_|2 years ago

In my professional experience, software is never finished, it's just that at some point it's decided to rewrite or replace a piece of software and decomission the old.

rudasn|2 years ago

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.

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.

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.

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.

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.

Vetoquinol|2 years ago

Hey, sounds similar to my situation. :)

Just putting my software out there, on my barely visited site, lifted a weight of my shoulders. It's just one thing that I have put off of my mental shelve.

I even know there are some basic features missing, for what I think is needed in a product. However, it was good enough for its intended purpose. It's probably not even used by anyone else, but if it was and one would not be sufficiently pleased with the state of the software, they can contact me. Until then I've got my ease of mind in that regard.

For the curious, here's my website: https://softbit.info/pages/software?language=en-us

@parent poster: because I'm curious, what's your website?

adityaathalye|2 years ago

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:

_"A Work of Art Is Never Finished, Merely Abandoned"_

https://quoteinvestigator.com/2019/03/01/abandon/

ChrisMarshallNY|2 years ago

> Finishing anything is a miracle in and of itself. A huge shoutout to anyone who’s ever done anything to completion at all.

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.

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.

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.

As he mentions, that helps a lot.

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.

But I still finish stuff. Finishing stuff is actually part of the personal satisfaction that I get. It’s an art, in itself.

fmbb|2 years ago

I think people could be more clear in their language here.

Finishing a project is not the same thing as finishing the artifact the project is about.

A project to build a house can be completed so that you can sell the house. But someone buys it and continues to build on the house, so the house was not finished.

This applies not only to art I think. It’s a bit of a semantic discussion though, because I guess completing projects is the important bit. You cannot have too many things as work in progress.

gazsp|2 years ago

> 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.

As a person with never-ending, over-ambitious side projects, I'd be interested in hearing more about this!

zmj|2 years ago

Do you want the thing you're building, or do you want to have built the thing you're building?

DrSiemer|2 years ago

Or do you want to be building the thing. Hobby projects that take forever are usually fun to work on. They would not be hobby projects if they weren't.

dbecks|2 years ago

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.

ww520|2 years ago

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.

Ok. I'm going to comment out the pending feature and just release it.

matheusmoreira|2 years ago

> Unfortunately, writing a compiler creates a living thing.

> I didn't realize this going into it. I wasn't asking for a baby.

> 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.

https://steve-yegge.blogspot.com/2007/06/rich-programmer-foo...

balder1991|2 years ago

This text serves as a wake up call for me. I didn’t take a Compilers class in college but I always wanted to learn how compilers work. Now that I’m done with college I finally have time to start this project. Also the “extending graduation for several years because of working full time” hits home. Thanks for posting this!

avg_dev|2 years ago

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.

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.

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.

anon35|2 years ago

“I love deadlines. I love the whooshing noise they make as they fly by.” - Douglas Adams

hyperthesis|2 years ago

> 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.

The things you do for themselves are the only things worth doing - because the value of all other things is merely derived.

weekendvampire|2 years ago

Very true. (Author here) I think I was just trying to self deprecate to be funny, but deep down I agree with you, even though I have no clue how certain things I spend my time on will ever help me.

Edit: Adding your comment to my favourite quotes list, you put in words something I kinda know but had never seen said articulately before.

mikhailfranco|2 years ago

Highly recommend The Creative Act: A Way of Being by Rick Rubin.

He has at least two beautiful chapters on this subject:

Completion p191

The Experimenter and the Finisher p205

The last sentence of Completion:

  We can't wait to finish, 
  because there's another idea calling 
  that lights us up.
The endnote for Completion:

  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?
P.S. All his chapters are beautiful.

weekendvampire|2 years ago

Author here. The second quote you mentioned really sums up what I was trying to capture. Thanks for the recommendation!

jdblair|2 years ago

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.

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.

rwieruch|2 years ago

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.

eternityforest|2 years ago

I think I semi-successfully restored some sanity to a long running personal project.

I had added features nobody wanted(afaik), that were a hassle to maintain, and that I didn't have any use for.

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.

With all that gone, I had time to add features I actually wanted, and clean up the architecture to make that possible.

matthewfelgate|2 years ago

>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.

Ha so true!! Perhaps I am just getting old.

revskill|2 years ago

Focus, relax, focus, relax,.... is my "failure" formula

lamerose|2 years ago

Focus, hike, relax, focus, hike, relax, focus, hike...

HPMOR|2 years ago

Life is a never ending personal project…

smitty1e|2 years ago

My little programming project has been all about the data model, and a ton of fun.

But I don't enjoy UX work at all.

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.

edg5000|2 years ago

Maybe you are using a terrible technology for your UX work, or you are going at it wrong? As with any kind of engineering: less is more. Think about how simple some of the CLI interfaces are to tools like make or grep. And then there are countless examples of ultra simple graphical UX. If you can pay someone to do it, fine. But if you have to do it yourself, make sure it does not make you misable :)

DrSiemer|2 years ago

There's a couple of 95% functional apps lying around here, that work fine but the UX is a total mess.

The active target audience (me) is fine with it. Other potentially interested parties don't know that they exist anyway. Next!

__jambo|2 years ago

This is a clearly false collection of arbitrary useless and arrogant opinions. See any famous reclusive intellectual or writer for counterexamples.

hyperthesis|2 years ago

> I should’ve known what I was gonna say, right?

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.

Log_out_|2 years ago

My personal lesson is that stability of frameworks is worth so much more than features, but features are what attracts developers to open source.

So you either have stable but dead, congrats you are the framework developer.

Or you have constantly changing, api breaking rodeos but you might not become a framework developer.

Pick your poison

m463|2 years ago

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.

I don't know if that's where true wisdom starts, or if it's procrastination at work.

rramadass|2 years ago

Good point. Anytime you take a step back and reflect on things at a meta-level you are on the path to Wisdom. Procrastination is not bad at this level but merely a technique. Studying the System from a third person pov while being embedded in it is the foundation of Philosophy. The fact that our Society expects us to conform to and obey certain validated Social Mores does not mean that they are right.

simne|2 years ago

I have excellent solution. Do EVERYTHING for money in mind. So, when you will see it is too boring for you - just sell it as business.

DevAbdul|2 years ago

this was such a good read and hearing what other people think and feel about working on personal projects just lifts up my spirit

knubie|2 years ago

> Art is never finished, only abandoned.

hyperluz|2 years ago

A never-ending project is called "program".

hmr|2 years ago

I am still laughing at the title of lesson #2.

hyperthesis|2 years ago

Voltaire: “Perfect is the enemy of good.”