Hacker News new | past | comments | ask | show | jobs | submit login
Lessons from a never-ending personal project (siddhesh.substack.com)
275 points by weekendvampire 10 months ago | hide | past | favorite | 78 comments



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!


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.


Nice, congrats to your successful projects :)

Good point about being happy with the results! I think this could be added to the definition of success.

Some results can not be improved, like sewed clothes, but there can be a review to learn something (why are you not happy with the result?) and a feedback loop, for the next project to turn out better.


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.


Good input and compliments for your project!

Sometimes, deadline for private projects are necessary and for some projects they could be completely irrelevant. Also, it is a matter of personal choice and character to set one.

The idea part is very interesting. Basically ideas are the raw, unstructured parts of projects. There is an exploration aspect to it and to realize them may bring a lot of joy - without calling them a project just yet.

So maybe your decision to finish all those ideas, wrap them up, put them together, create the video, is the very incarnation of the project. For that you probably set some purposes and goals and maybe even a deadline.


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.


Glad you mention that, fully agree! One of my primary goals will be quality - I am a perfectionist.


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.


Cool that you are seeing your progress!

Improvements are an important aspect. They are simply changes to goals and the scope.

In terms of finishing projects, it is crucial to define them and possibly define milestones in advance.


Yeah, you need to have a clear target and aim while starting. Milestones start to show themselves once you're experienced enough.

While we're at it, experience is also a must. Everybody starts from the bottom, and needs to work their way up, and I found kaizen is a great way to do it.


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!


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


Not sure what you mean with your comment, but 'keeping yourself busy' should not be confused with procrastinate or simply passing time. Procrastination, passing time, doing nothing, and feeling bored should also deserve time on its own.

However, I would not call them projects.

Anyway, there may be a feeling of burning on, or burning out, when private projects start to feel like a todo list...


> keeping yourself busy' should not be confused with procrastinate or simply passing time

Could you clarify - what's the difference?


I meant this purpose in the sense that an activity brings joy, the purpose is pleasure.

Doing something while procrastinating may be enjoyable. But along with it often comes guilt - sooner or later. I had issues with procrastination and occasionally still do. Even though some outcomes of alternate activities may be good, projects should not have the purpose of procrastination.

Passing time is when you deliberately do not work on any project. I think projects can not have and should not have the sole purpose of passing time. If a project brings you joy, good, if not, the activity should not be called project.


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


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.


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!


great suggestion


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


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


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


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


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.


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


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.


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.


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.


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)


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.


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.


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?


It's https://wirehub.org

Yeah, theres a typo right on the homepage, I know, I'll get to 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:

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

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


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


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.


Yes and no. Milestones get finished, and even continuing stories are composed of chapters.

BTW: Here's a couple of the things I did, back when: https://news.ycombinator.com/item?id=34654770

That second painting is shown in an "unfinished" state. In a later version, I added a woman walking down the path, towards the door. That was the one I sold.


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


Well, it's a long story, but I tend to have a goal for every one of my projects; even if that goal is to provide a reusable library for other projects.

The vast majority of my projects are reusable libraries and SDKs (Swift Packages, for the most part).

I do every one of my projects as if I were delivering to a Fortune 50 corporation.

I write a bit about how I do stuff, here: https://littlegreenviper.com/miscellany/thats-not-what-ships...


Awesome, thanks!


Well said!


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


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.


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.

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


Yes, do it!


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


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!


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.


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


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


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.


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.


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


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.


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.

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.


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


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


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


Life is a never ending personal project…


This reminds me of a rather wonderful video about getting stuff “done” vs pursuing perfection :- https://youtu.be/bJQj1uKtnus?si=bdyI83voqRb2B3rY


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.


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 :)


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!


chat interface is your friend now


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


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


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


Remember when Gmail just came to be and was a cool kid on the block? It was a "Perpetual Beta" [1]

[1] https://en.wikipedia.org/wiki/Perpetual_beta


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.


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.


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.


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


> Art is never finished, only abandoned.


A never-ending project is called "program".


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


Voltaire: “Perfect is the enemy of good.”




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: