10 ms·
On finishing projects
- PaulHoule 2y agoSee https://en.wikipedia.org/wiki/Kanban https://en.wikipedia.org/wiki/Kanban
- gopher2000 2y agoHow does this help here?
- galleywest200 2y ago>I think there are two strategies that would help a lot: 1) writing a spec (i.e. a plan) upfront, and 2) timeboxing the project by giving myself a deadline. I would like to add another possible strategy: watching a number go up. Recently I have started tracking the books I am reading. I track the page number I am currently on via a dashboard I made in Obsidian, which displays a %-read for each book. I have found that "number goes up" gives me just enough of a dopeamine hit to encourage me to pick the books up more frequently than I had before.
- reichertjalex 2y agoOoh I like that! I definitely feel that in some sense when I have a good streak of commits per day, where I don't want to break the streak. Or for workouts, it's suuuper motivating to see the number continue to go up. But oftentimes when a project or essay is incomplete, it's hard for me to think of a good "number" to track that would be a good motivator (since i.e. lines of code, or the number of words in a draft, don't necessarily feel like a good proxy for progress all the time). I'm curious if there's a metric that would work better?
- ChrisMarshallNY 2y agoI had a teacher once, at a training seminar, that kept repeating the phrase "We need to know what 'done' looks like." "Done" is often a compromise. There's more that can be added, there's still burrs and "rough spots," but we need to declare it ready to go out the door, and be prepared to fully support our release. I've been shipping software for my entire adult life, and have had to embrace this philosophy. Just the other day, I stopped working on a "play" project that I was working on, because it was a rabbithole, and not worth the agita of fixing the fundamental design issues that I was encountering (an unfortunate by-product of my "Evolutionary Design" process, is that it's quite easy to fall into Wonderland, and I need to learn to understand that I should just let the rabbit go).
- reichertjalex 2y ago> "We need to know what 'done' looks like." Ugh, yes... I wish I had internalized this sooner!
- daelon 2y ago> agita Interesting word, thank you!
- ChrisMarshallNY 2y agoLots of folks of Italian ancestry, around here. I hear the word used, often.
- mandeepj 2y ago> "We need to know what 'done' looks like." As much hate as Agile gets here at HN because of its wrong usage by many people, one thing that Agile recommends is setting up a 'Definition of Done' within your team before even starting your very first sprint.
- ChrisMarshallNY 2y agoIt’s much older than Agile. The Japanese company I worked for, did that. They would start at the end, and work backwards. They hated Agile.
- mandeepj 2y ago> It’s much older than Agile. The Japanese company I worked for, did that. How old? The origin of Agile goes back to the 1950s in Japan
- ChrisMarshallNY 2y agoYeah, the Toyota JiT stuff, but the company I worked for is a 100+-year-old engineering corporation, and didn't do stuff in no new-fangled, 1950s-kid-playground way. But the term "Agile," is a lot more recent (and US-based). I rapidly learned never to use that word within earshot of my managers. Sort of like saying "California Roll" in a traditional Tokyo sushi joint.
- cloverich 2y agoI resonate strongly with this. I found something pretty simple thats been helping me lately though. I uhh, i just force myself to keep working on it until its done. Grind it out. Work on it especially when i dont want to. Ditch those little relaxing moments for it. Wake up early to find time for it. Its torture. And also therapeutic. I see the incompleteness of my original idea, or plan. I see that the things i declare important feel less so when i have to keep working on it. I start to permanently discard essays, apps, ideas, as i appreciate what it would really take to do them. I say no to myself far more often. I become more disciplined in my work. And more disciplined in my play. I start making more realistic plans and exit points because im not a masochist. Ultimately i let it change me. I obviously wont grind like this forever. But the grind teaches me, and changes me, into the kind of person that finishes things. Which is mostly about learning to be more selective and less impulsive, and knowing when to play and when to put things down and truly let them go.
- reichertjalex 2y agoYeah, definitely. I know this is a somewhat controversial opinion, but I do think there's value in developing the muscle around "grinding it out". I think the tricky part (depending on your personality type) is knowing when it makes sense to give up and move on to something else.
- turtledragonfly 2y ago> I start making more realistic plans and exit points because im not a masochist. Or, you start to enjoy the pain, because you enjoy the result. But then your mind does its illogical associative thing and you start to just enjoy the pain on its own. Now you're a masochist! I jest, but only some. Ask me how I know ...
- FrankyHollywood 2y agoHow do you know? :)
- turtledragonfly 2y ago
- haswell 2y agoOver the years I’ve noticed that I’m often operating in various “modes”. Some of this is related to depressive episodes, but often it’s just a more neutral ebb and flow. I’ll have a week where ideas are flowing and connections form easily. I’ll have a week where it feels like I can’t engage so deeply - like my system is cooling off after exertion. And this is one of the reasons writing things down has been such a useful tool, and starting with a spec is something I now do religiously after spending the first half of my life just diving in haphazardly (and often not getting very far). Those ultra productive days are often enough to get a pretty decent spec written; something I can flesh out in far greater detail than I could with a productive coding day. Those down days are now bolstered by the thinking of a version of myself that was firing on all cylinders, and solved many of the problems I probably don’t have the brain power to tackle on the fly when I’m tired and stressed for life reasons. I feel like I’ve squandered really good trains of thought by telling myself “I’ll remember this and write it down later”. So I always start with writing. Future me always appreciates it.
- j_bum 2y agoYour comment resonates with me. I totally agree about writing things down being useful. I also like the author’s timebox plan as well. I’m great at writing specs to define what I want to build, but my hobby project timelines are nonexistent. I think I’ll give this a try!
- TrainedMonkey 2y agoDo you keep a journal? Things like sunlight, diet, schedule, socialization, can have a big effect.
- haswell 2y agoI do. These days, I'm all in on Obsidian. It's been a great tool for thought that ebbs and flows with me, and helps me see how things have been going. Without peeling the whole onion, I've been dealing with a series of autoimmune issues in combination with complex PTSD. I'm working with some really great people to address these issues on all fronts and I'm much better these days than I've been in the past, but it's a work in progress that I'll have to manage for awhile. A huge +1 to the importance of core habits. Focusing on this has been a key aspect of recovery.
- jmbwell 2y agoI sometimes battle perfectionism for various reasons. Someone pointed out that it can’t be perfect if it isn’t even finished, so why not add “done” to what it means to be “perfect.” Somehow that tweaked my perspective in a helpful way. Edit: on reflection, possibly because it doesn’t imply a compromise of my standards, but actually strengthens them, so I don’t have the feeling of giving up or giving less. Also very much believe in doing some kind of planning, any kind being better than none at all. Otherwise you put yourself in a tunnel but you don’t give yourself a light at the end. The plan can change and it will, but if you have none, you might end up digging forever
- codr7 2y agoI don't plan much, first I set a goal and then break it down into manageable steps. Designs without goals rarely turn out well from my experience.
- daliusd 2y agoI don’t remember which book I got idea from but idea is to work in different modes. When you work as programmer then there are no deadlines and etc. So sometimes you have to put different hat, e.g. CEO hat. It took several months to work out but overall result is reasonably good.
- docandrew 2y agoI needed this. I have so many half-finished projects, it’s nice to think that there’s still a way to make them valuable in some way.
- turtledragonfly 2y agoAlways glad to see articles discussing an emotional side of software development (: I do disagree with this claim (though later points temper it a bit): Why is it important to share your work with the world? First, because there's practically no downside, and very, very high potential upside. There is a big downside: as the author states, finishing/releasing is hard and time-consuming. You only get one life. Every hour spent doing that stuff you won't get back. So, not a direct cost, but an opportunity cost. Personally, I find it important to acknowledge this and face it head-on, rather than waving one's hands and saying "oh, there's basically no downside." Though I admit that the latter can be a useful self-mind-hack to get the ball rolling. But first you decide what you want to do, and why you want to do it, and then you tell yourself whatever lies you need to help it get done (: The "why is it important..." question is really critical to motivation, at least for me. A person should give that question honest thought and an answer that rings true to them. I agree about the therapeutic aspect of putting things out into the public. Though I don't plan to publicly share all of these proactively, just knowing that they're publicly viewable helps give me a stronger sense of accountability. I'm curious if it will make a difference. Just getting things out of one's mind, and into the world (even if nobody sees them), can be important (helps my sanity, at least). Even just the "rubber duck" sense of imagining someone might see it, can catalyze thoughts in a way that wouldn't otherwise happen, too. Then, having people actually see them is another layer, and can be humbling and educational. Also, apropos of nothing, this article made me think of the (mis-)quote: We do these things not because they are easy, but because we thought they would be easy! Good article (:
- jauntywundrkind 2y agoYou cite this part of the article, > Why is it important to share your work with the world? First, because there's practically no downside, and very, very high potential upside. And say, > There is a big downside: as the author states, finishing/releasing is hard and time-consuming. You only get one life. Every hour spent doing that stuff you won't get back Working in public (or working at least from the assumption it will soon be made public), is something folks should try really hard to get into. It should be a default expectation for yourself. The cost is mostly mindshift! Once you can change your default position, it no longer feels like a cost to work in public. Every action brings release.
- andrewstuart 2y agoThere was a post on HN recently about building software for yourself - forget the possible audience of millions. If you focus on yourself as the end user then the whole thing becomes easier. I couldn't find it after a brief search. Maybe someone else remembers it.
- mannylopez 2y agoMaybe “An App Can Be a Home-Cooked Meal”? https://www.robinsloan.com/notes/home-cooked-app/ https://www.robinsloan.com/notes/home-cooked-app/
- andrewstuart 2y agoThat's it!
- g4zj 2y agoI genuinely consider two of my greatest accomplishments to be building a game and composing a song. Neither are very impressive, but in both cases, I ended up having to simply decide I was done and stop working on them. I could continue making changes indefinitely, adding little improvements and such every day, but they were also complete as they were. Once I learned to be okay with that and move on, I learned what finishing a project really meant (or at least one form of it).
- tkubacki 2y agoCan you post game link ?
- maroonblazer 2y ago‘Art is never finished, only abandoned’ - Leonardo Da Vinci
- jappgar 2y agoI've composed and released several albums and it's still exactly as you describe. With any art, a certain amount of polish is desirable but too much will destroy the essence of the work. I will find myself actively making a song worse... and then go back a few versions to find the peak.
- codr7 2y agoI already have a job, my side projects are all about having fun and learning new tricks.
- ryandrake 2y agoI really disagree that releasing a project publicly is a necessary step to deem something done. I have so many projects in my src/ directory that are (in my mind) finished, but that I will never release to the public. I wrote them for my own education and entertainment, not as things that I think the rest of the world would benefit from. And certainly not as a way to build some kind of (ick) -personal brand- among the open source community, or to give me some sense of accountability (to whom?). I don't need GitHub stars or social media thumbs up or hacker news upvotes to measure the worth of something I made.
- shepherdjerred 2y agoI just put these in a big GitHub repo so that I consider them shared and therefore finished. https://github.com/shepherdjerred/practice https://github.com/shepherdjerred/practice https://github.com/shepherdjerred/archive https://github.com/shepherdjerred/archive
- munificent 2y agoReposting an old Reddit comment of mine that I think agrees with much of this article: I'm in my 40s and for most of my life I had an unending series of unfinished projects that I felt guilty about. Today, I am able to finish some stuff, including some pretty large, hard projects. Better, I don't feel guilty about the stuff I don't finish. The trick for me is to be deliberate and mindful about why I'm embarking on a particular project. If it's because I want to feel good by: * Sharing something with others. * Accomplishing a difficult, challenging task. * Proving to myself that I can do something. * Getting the social cachet of being a creative, productive person. (Maybe this is shallow, but who doesn't like to feel impressive in the eyes of their peers?) Then the goal of the project is the product it and I focus my attention and discipline on it. I try to have as few of these as possible—like only one at a time—so that my willpower is not diluted. If it's because I want to feel good by: * Improving a skill. * Exploring an unfamiliar domain or learning something new. * Relaxing by tinkering on something I like. Then the goal of the project is the process and I don't feel bad about not finishing. The real treasure is all the stuff I learned and did along the way and there is no real destination. I can have as many of these as I want because there's no real failure mode here. They're all recreation. Once I got more honest and clear with myself about my goals for each project, I started to be able to finish the ones where that mattered and stopped feeling bad about the ones where it doesn't.
- turtledragonfly 2y ago> Better, I don't feel guilty about the stuff I don't finish. I think this is key, and demonstrates the real personal growth, which is more valuable than being able to finish things per-se. It's the old saw: "what's the hardest thing? To know oneself." There's a lot of eagerness to jump on bandwagons and do whatever the motivational speakers recommend, but you're not going to find the answers specific to you until you look inside yourself. Anyway, in short: I agree (: I'd also add: the reasons and mindset can change not just from project to project, but from day to day as well. Very context-dependent (at least in my experience).
- thehappyfellow 2y agoSo you’re saying in order to finish projects I just need to learn how to be honest and clear with myself? Seems like a reduction to a harder problem :) Joking aside, I came to believe that various form of procrastination are a response to pursuing wrong or unclear goals - even when I don’t state them clearly, my brain still somehow knows that I’m not aligned with what my goals should be. Good job, brain!
- mxstbr 2y agoI recently saw this related article[0] on the HN frontpage and I've already been applying it. TL;DR: To build more quickly, do "outline speedrunning": Recursively outline an MVP, speedrun filling it in, and only then go back and perfect. [0]: with me: https://learnhowtolearn.org/how-to-build-extremely-quickly/ https://learnhowtolearn.org/how-to-build-extremely-quickly/
- Abismith 2y ago[dead]
- j7ake 2y agoI found it takes the same amount of time to go from 0 to 50% completion as it is to go from 50% to 80%, and similarly from 80 to 90%. This means when you are at 50% completion, you need to spend more than two times more effort to hit >90% completion. 99 to 100% takes an infinite amount of time.
- jaydeegee 2y agoI hadn't realised people finished projects.
- anon291 2y agoThere's no such thing as finishing a project. My most successful open source projects requires ongoing maintenance work to this day and the various dependency updates require constant refactoring. To me something is done when it reaches a state where you don't feel you need to tend to it. But it's never actually done. The only things that are truly done are things that will never be used again.
- bbor 2y agoGreat stream-of-consciousness style article, I relate and appreciated the practical advice! This isn't enough on its own obviously, but just in case anyone's been noticing something of a trend: inability to finish projects is verbatim one of the DSM-V entries for Inattentive-presenting ADHD: https://www.cdc.gov/adhd/diagnosis/index.html https://www.cdc.gov/adhd/diagnosis/index.html
- maninblackv2 2y agoIm on the same sitatuation, i had an idea month ago that i thought it might be useful,started building, but when i finished the main parts i gave up, i just had the "what if" question, what if nobody actually want this and i've never touched since then the code is still in github tho
- nilirl 2y agoMy biggest tip: Have a system you can rely on even when you're struggling. Take the magic out of progress. Use curiosity and excitement when you can but don't let them be the only way you can work on something. Some practical strategies I've written about: - How to prevent stagnation while building products alone [0] - Multi-Perspective Note-Taking: Mastering focus as a solo-developer [1] [0] https://www.idiotlamborghini.com/articles/how_to_prevent_stagnation_while_building_products_alone https://www.idiotlamborghini.com/articles/how_to_prevent_sta... [1] https://www.idiotlamborghini.com/articles/mastering_focus_as_a_solo_developer https://www.idiotlamborghini.com/articles/mastering_focus_as...
- vaylian 2y agoVery philosophical texts. These are good reads. Thanks for sharing!
- Aleksdev 2y agoI don’t want to come off as mean and spoil the article but the author writes he can’t get anything done and the strategies that might help him with finishing things is.. “1) writing a spec (i.e. a plan) upfront, and 2) timeboxing the project by giving myself a deadline.” Isn’t this just agile? I’m pretty sure every developer already does this, it’s kind of the whole strategy for completing any project. Not sure what the point of this article was. He could have wrote “make a sprint and stick to it”
- pcblues 2y agoHere's just a little silly story from my own life of unfinished projects. I wanted to make a sort of shazam where I could hum the tune of a classical piece of music and find out what it was. I hacked together an enormous midi database of classical music with a couple of libraries to take a hum and turn it into midi notes in order to find the pattern in the database based on the difference between each note in a melody of a classical piece as an identifying key (pun intended). As a really bad singer, I couldn't hold a note, but you can imagine the work required to get this to actually work. The amusing part was that I told a prospective software development employer about the project because it was consuming a fair part of my life at the time and showed an interest in software development in my spare time. They asked, "Did it work?" I said, "Nope" I didn't get the job but we both had a laugh about it during the interview.
- max_ 2y agoI heard that finnished software is dead software
- vouaobrasil 2y agoI consider myself very productive. But I don't care about finished projects. The key is that some get finished. I naturally let projects languish as soon as they lose interest for me. If I lose interest I feel that it's not worth expending effort against the current to finish it. That's perhaps why I'm terrible in a corporate setting but great as an independent. I hate routine.
- NicoJuicy 2y agoThe hard thing is staying focused on finishing things. New projects are always nice and "productive", because it's fine. It's meeting the end goal that is harder.
- vouaobrasil 2y agoPersonally, I find that meeting the end goal is easy if the project suits my personality and tastes. So my point was to discard the projects if I eventually discover that some part of the work doesn't satisfy that criteria.
- NicoJuicy 2y agoI think that mostly means, for a lot of people, working on your own projects instead of customer projects
- roshankhan28 2y agoi feel like we only lose interest in a project when we get extra perfectionist. i tried this thing a week back where i had to finish doing my task at work (Marketing). instead of making it perfect i just tried to do. just finish it. if it marked all the checks then it was good to go.
- vouaobrasil 2y agoNah, I lose interest for many reasons, more than perfectionism -- and I am very far from a perfectionist. Rather, I lose interest because: 1. Not the right format (essay versus video versus book) 2. My overall philosophy on the topic has changed and I need to restart with something new
- vborovikov 2y agoI keep reminding myself when working on my projects - don't wait until you feel like doing something and - half-ass it
- sph 2y ago"A thing worth doing is worth doing badly" [rather than not at all, and expecting to do it perfectly is a sure way to never get started] This is a fantastic rule-of-thumb no one ever talks about. We focus too much on learning, honing our skills, becoming experts, and we never find the time to start.
- brainzap 2y agoI wonder how many people are missing out because there is no friend or SO that really push and supports. In the comment section we probably have a lot of “me” stories, but should we not think “we”?
- ziofill 2y agoI have an endless streak of unfinished projects, at various stages of completion. All the ones that I finished had something in common: they served a purpose I cared about. If you don’t really care about what a project can do for you it’s nearly impossible to muster the mental energy to carry it out to completion. At least, I can’t.
- seigel 2y agoHey great to see another mud slinger! Share some pictures sometime!
- shreyshnaccount 2y agomaking a (smol) platform to share and find incomplete projects (on github?) devs can pick up and contribute to in a short duration. any interest?
- pablomendes 2y agoOne thing that works well for me is going working-to-working. Get a simple, de-scoped, incomplete, probably crappy version done end-to-end. Now it's not about finishing, it's about improving. And if it was worth building in the first place, it will beg for improvement. And then it's easier to just keep turning the crank, working-to-working.
- SCUSKU 2y agoIn Pragmatic Programmer, this is called the "tracer bullet" approach. Basically just another word for end-to-end, but with the emphasis that by completing a slice end-to-end you'll get feedback much faster (as in the feedback tracer bullets provide when shooting a target).
- breakingcups 2y agoSo... MVP?
- mncharity 2y agoHmm, how about... End-to-end: "can really implement?". Tracer-bullet: "can adjust aim?". MVP: "can make user happy?". Though there's more to each. So then market fit exploration benefits from tracer-bullet, but you might do iterative reimplementation instead. And it might be overkill for a one-shot market test. MVP is largely orthogonal to end-to-end - "Submit button emails founder who does the thing by hand over breakfast" is fine MVP but isn't very end-to-end. And a non-MVP non-product end-to-end can be tracer-bullet or not. A soundly architected low-debt end-to-end yes, a hackathon high-debut "to adjust, rewrite", or a throwaway end-to-end exploratory spike, no.
- lurn_mor 2y agoNot to nitpick, but in this blog post, mostly every first sentence after a heading doesn't add anything, but simply repeats the heading in a longer, more rambling format. Are you bumping your word count to achieve some imagined length goal/page count? Brevity and Ruthless Editing should be incorporated into your final cycles of 'finishing' working on projects.
- shepherdjerred 2y agoThis is so very unhelpful and completely against the spirit of the post. The author knows their work isn't perfect, but they're sharing it anyway. This is covered in the first paragraph. Regardless, I found this post to be perfect. There are good takeaways, it was easy to read, and it wasn't too long. I'd imagine that the author would happily consider your opinion if you posed it in a more constructive manner.
- lurn_mor 2y agoThe author actually asked for feedback on this platform (in the spirit of the post...). Constructive criticism is not part of your process, huh? Poor writing turns off readers, who won't come back and visit again, and it diminishes your effort and message. Pretty basic.
- jschulenklopper 2y agoMy approach for finishing projects: team up with a Finisher. I found one at work, and we became good friends along the way. I'm a typical Starter, and all of the side projects we've been working on together were my idea. All of the projects that we completed and released were solely because of his endurance, discipline and focus. And his constant reminders to not start a new project before the current one was done.
- mxuribe 2y agoYou really lucked out, and ended up with a great partner there! If i am honest with myself, on most things i would say i'm 75% the starter and 25% finisher...but at current $dayJob, oof, i'm surrounded by all starters (and not that great at starting either), but not a single finisher. Congrats to you! :-)
- jschulenklopper 2y agoHere's another approach not mentioned: have an accountability partner. Promise that person something specific to be done, with a delivery date. My observation: a promise I made to someone else is harder to break than a promise I made to myself.
- breakingcups 2y agoUntil you figure out the first excuse that works.
- kazinator 2y agoThis is more about launching. Launching is not finishing. We are using recent versions of things that launched decades ago. When you're working on software that has no obvious finish (development could go on indefinitely) you have to set up small milestones. Okay, in this release we're going to get this and that and other thing working, with documentation and test cases. That is in a concrete target. When we have those three things with documentation and test cases we've hit the target and nothing blocks that release anymore.
- bitbasher 2y agoThis is something I struggled with personally for a long time. I had a list of projects I wanted to complete ranging from SaaS products to video games. I tried working on multiple projects but my mind always focused on one at the detriment of the others (before ultimately working on something else). After some time and deep introspecting, I realized working on multiple projects was some complex form of procrastination (avoiding doing hard or boring things on other projects). I also realized working on other projects may have been some sorta coping mechanism to avoid possible failure (if I never finish projects I can never fail). After the introspection I hit a turning point with two words, "what if". Instead of bouncing around, trying and learning new things, what if I focused all of my attention on one stack/product/project/industry/thing? I haven't solved what "done" means yet, but I have come to terms with the shortness of life and my own capabilities. I know who I am and what I can do. It's a start.