7 ms·
Lessons from a never-ending personal project
- alentred 3y agoRemember 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 https://en.wikipedia.org/wiki/Perpetual_beta
- hyperluz 3y agoA never-ending project is called "program".
- SeenNotHeard 3y agoBjarne 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."
- revskill 3y agoFocus, relax, focus, relax,.... is my "failure" formula
- lamerose 3y agoFocus, hike, relax, focus, hike, relax, focus, hike...
- dbecks 3y agoFavorite 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.
- deleted 3y ago[deleted]
- ww520 3y agoAhhh, 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.
- weekendvampire 3y agoYes, do it!
- m0llusk 3y agoThis 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 3y 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.
- zmj 3y agoDo you want the thing you're building, or do you want to have built the thing you're building?
- DrSiemer 3y agoOr 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.
- smitty1e 3y agoMy 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.
- danielmarkbruce 3y agochat interface is your friend now
- DrSiemer 3y agoThere'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!
- edg5000 3y agoMaybe 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 :)
- anon35 3y ago“I love deadlines. I love the whooshing noise they make as they fly by.” - Douglas Adams
- matheusmoreira 3y 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-food.html https://steve-yegge.blogspot.com/2007/06/rich-programmer-foo...
- balder1991 3y agoThis 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!
- knubie 3y ago> Art is never finished, only abandoned.
- ryandrake 3y agoOut 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 https://www.thetournamentdirector.net
- hyperthesis 3y agoVoltaire: “Perfect is the enemy of good.”
- hyperthesis 3y 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 3y agoVery 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.
- rudasn 3y agoEnd 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 3y agoHey, 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 https://softbit.info/pages/software?language=en-us @parent poster: because I'm curious, what's your website?
- rudasn 3y agoIt's https://wirehub.org https://wirehub.org Yeah, theres a typo right on the homepage, I know, I'll get to it.. :)
- hyperthesis 3y 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.
- m463 3y agowhen 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 3y agoGood 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.
- adityaathalye 3y agoThis 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/ https://quoteinvestigator.com/2019/03/01/abandon/
- jdblair 3y agoI 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.
- inDigiNeous 3y agoGood 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 3y agoIt 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.
- Tor3 3y agoI 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)
- hobofan 3y agoWhat 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.
- rtpg 3y ago4th 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.
- globalnode 3y agogreat suggestion
- hutzlibu 3y agoOh 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!
- adrium 3y agoNice 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!
- weekendvampire 3y agoAuthor 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 3y 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.
- adrium 3y ago
- eternityforest 3y agoI 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.
- HPMOR 3y agoLife is a never ending personal project…
- DevAbdul 3y agothis was such a good read and hearing what other people think and feel about working on personal projects just lifts up my spirit
- ChrisMarshallNY 3y 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 3y agoI 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.
- ChrisMarshallNY 3y agoYes 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 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.
- gazsp 3y 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!
- edg5000 3y 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.
- avg_dev 3y agoi'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.
- __jambo 3y agoThis is a clearly false collection of arbitrary useless and arrogant opinions. See any famous reclusive intellectual or writer for counterexamples.
- matthewfelgate 3y 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.
- rwieruch 3y agoIt'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.
- posed 3y agoThis reminds me of a rather wonderful video about getting stuff “done” vs pursuing perfection :- https://youtu.be/bJQj1uKtnus?si=bdyI83voqRb2B3rY https://youtu.be/bJQj1uKtnus?si=bdyI83voqRb2B3rY
- mikhailfranco 3y agoHighly 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 3y agoAuthor here. The second quote you mentioned really sums up what I was trying to capture. Thanks for the recommendation!
- hmr 3y agoI am still laughing at the title of lesson #2.
- simne 3y agoI 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.
- Log_out_ 3y agoMy 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