20 ms·
How to never complete anything
- mdpopescu 10y agoI disagree. Experimentation is an important part of learning and yes, initially there's a lot of "wooo, shiny!" going on. It doesn't matter - you are STILL learning. It also helps to remember that software projects are never finished - only abandoned.
- daemonk 10y agoI think the author of the post was trying to say that he has disproportionally allocated his time from finishing projects to just learning new things. There needs to be a good balance between keeping up to date with technology and producing something from the technology.
- asimjalis 10y agoI feel you’ve been on the right track all along. Instead of doing the opposite on the programming side you might need to do the opposite on the product and selling side. Instead of building something you have no passion for look for ways to sell what you have already created. In other words see if you can productize your "auto-scaling, multi-zone, cloud infrastructure". There’s definitely other people who would like to use that. Or teach people how to use the new shiny thing. Or help them decide the pros and cons of new technologies by talking about the subtle distinctions you have noticed between them through your experimentation.
- ploggingdev 10y ago> In other words see if you can productize your "auto-scaling, multi-zone, cloud infrastructure". There’s definitely other people who would like to use that. While working to build out the "auto-scaling, multi-zone, cloud infrastructure" product, OP (or anyone for that matter) will get caught up building his own front end JS framework that will address some shortcomings of AngularJS or reactjs. If I understand correctly, the point of the article is that it's incredibly easy to lose focus of what you set out to do and get distracted by something that is not very important to your project/startup.
- pfortuny 10y agoSuperstructure is only useful if you have something to support. Otherwise, it just scaffolding without building. I guess all of us learn something similar to this at some point in our lives.
- wruza 10y agoYou simply watch how js-required blog shows you neverending progress, instead of working on it. That's how.
- drchiu 10y agoIt depends on your goal. Is your side project aiming to become a side business or an experimentation to learn new things? If it's a business, it's important to get things done. If it's for fun and to experiment, sometimes the end goal is not to actually complete it. The endeavour itself will be reward enough, perhaps. It's true that a lot of programmers do jump from shiny new tech to the next shiny new tech. If it's to start a business, it's probably best to stick with boring stacks.
- deleted 10y ago[deleted]
- doc_holliday 10y agoThe number one thing to remember is almost no one cares what tech you used. Just get it shipped. People have built million dollar business that had it's first iteration in MS Excel, if it is useful to someone and kind of serves the purpose then that is enough for a start.
- yitchelle 10y agoTotally agreed. It is all about your solution for removing the customer's pain. The sooner you can do that, the better it will be for you and your customer.
- ronreiter 10y agoThe real motivation behind acquiring technical debt is that 80 percent of your development work will be dumped eventually. Remember this.
- thehardsphere 10y agoI'm on the verge of completing one of my side projects. The most useful thing that I've found that helps me stay focused is to already have users who you know will want it. By staying focused on you users and what they want, you can stop a lot of this shiny chasing before it starts.
- onli 10y agoThat's where "eat your own dogfood" comes in. It does not replace having real users, their feedback is invaluable. But if you yourself really use the functionality of the project, the production version the others see as well, then you can become yourself the user that pushes you as a developer to get things done and online. Well, you probably know that. But for me that was important, so I'll mention it anyway.
- deleted 10y ago[deleted]
- fazkan 10y agoYou are one of the 2/3rd kids who were part of the marshmallow experiment. You cant control your desire for immediate gratification. I feel that with the level that you are in, you need a bigger problem to solve, rather than start a new startup(whatever that is). I know your type, I was like you, most of my friends are like you. Also did I mention that you are an introvert by nature (read susain cain). You are easily distracted by shiny things. P.S. I am no expert, those are just the things that I realized about myself.... P.P.S Shit. I think I am still like you, because otherwise I would have worked on the code review that I was supposed to do....
- beaconstudios 10y agothe marshmallow test actually isn't quite as straightforward as predicting willpower or delayed gratification, as the original researcher points out in this article: https://www.theatlantic.com/health/archive/2014/09/what-the-marshmallow-test-really-teaches-about-self-control/380673/ https://www.theatlantic.com/health/archive/2014/09/what-the-...
- scandox 10y agoOfftopic: I got quite a NSFW Ad when I clicked through to this. Well depending on the workplace. But yeah not something I'd love a colleague to see over my shoulder.
- Arnt 10y agoHere are links to some images: http://i.imgur.com/yz6eVNk.jpg http://i.imgur.com/yz6eVNk.jpg http://i.imgur.com/KqaFVFc.gif http://i.imgur.com/KqaFVFc.gif http://i.imgur.com/WczRkHy.mp4 http://i.imgur.com/WczRkHy.mp4 http://i.imgur.com/EyEJStB.jpg http://i.imgur.com/EyEJStB.jpg http://i.imgur.com/RnvkYXJ.png http://i.imgur.com/RnvkYXJ.png http://i.imgur.com/6IqwNtn.jpg http://i.imgur.com/6IqwNtn.jpg Zero or more feature nudity, ditto sports, one's a flowchart, but they have one thing in common: Nude or not, none of them have anything to do with your work. So what makes any of them NSFW? (The subject of this discussion is "getting things done".)
- wukerplank 10y agoMy side projects usually aren't meant to get completed. I specifically use them to try new things. If it works out, I might use the new stuff in my job. If not, I gained some knowledge. Some of my stuff is good enough to use (as in early alpha), but doing the final 20% won't pay off anyway.
- tomseldon 10y agoInfrastructure wise, I'm absolutely guilty of this as well. I have found that there's a middle ground... You (probably) don't need the microservices and the complexity that comes with it, upfront. A monolith (and the simplicity in terms of deployment, logging, monitoring, etc. etc.) will probably do early on. However, you don't want to shoot yourself in the foot for when it turns out you do need those things. I try to write code in self-contained modules, with well defined boundaries, and glue it together in a monolith. If/when it needs to be split out into separate services, it becomes much easier. So, application/business logic code: keep the standards high, do shit properly. Glue code to keep it all together? Less important. You can rip that out later and move to different infrastructure with the same code. That's very generic advice, and I seem to always break my own rule on this at some point... but I find it's a better mentality for when shit just needs to get done. Doesn't help with tech choice in general though (and I'm often guilty of this as well...).
- vinceguidry 10y agoI can't imagine ever shipping a side project. That's not why I build them. If I ever got to the point in my life where I do want my own company, a side project is not the way I want to go about it. Companies take a lot of work, that work has to be understood, then delegated and shared. The technology aspect is really only 10% of it. Sure, it's the essential 0-to-1 kicker that gets you going, but once that's done you still have to find product-market fit. That quickly assumes second-job status and can wreck your personal life. I've seen it happen. A side project means you're taking all that on yourself without any help or real guidance. Not having that help means that when you finally do ship your side project, it's probably not going to achieve the kind of rapid growth you need to make scaling up possible. And you really need rapid growth in order for working on a startup of your own creation to beat out having a reasonably-decent job. And if you don't have a reasonably-decent job, it's way easier to switch jobs / industries than it is to build out your own company. What I want out of a side project is the kind of deliberate practice that is often lacking in my real job. Also to chase down random mind hares that seize my interest.
- mattschmulen 10y agoI agree with a lot of this. My one comment is that not all side projects are about a "full startup business". I shipped my 2 mo. side project this summer. Donors Choose Project Finder https://appsto.re/us/JVmbab.i https://appsto.re/us/JVmbab.i . It was 100% pro bono , and to keep my skills sharp. So far over $20,000 in supported donations. Keep an eye open for the next set of features :)
- vinceguidry 10y agoVery cool! Something to strive for, definitely.
- johnlbevan2 10y agoAgreed; many side projects are just for fun, to create a tool that you want & you don't care if others want it (though you may or may not choose to share it having created it), to ship just to show your friends, or see how it does in the wild without caring about whether it generates cash; just hoping that a few people find it & appreciate what you've made. Personally I'd hate to run my own business, since that means moving away from the code (even if you get another person to take care of the non-code stuff; you still have to go out and find the right person for that / get involved in things that you wouldn't otherwise choose to). That said I'd love to create something, put it out there, and have 5 people come back and say "thanks for this; you've fixed a problem that I was having"; to get 100 people say that would be even better; any more and I'd probably start to get upset as there would become expectations to start implementing things the user base was asking for, rather than just doing my own thing; which for a hobby project is all I'd want. A lot of my side projects relate to my day job; I use my spare time to create tools which make my work life simpler. Sure the IPO belongs to my employer, but it means I remove frustrations from my working day without having to justify spending company time on the tools which allow that, and I can share these tools with colleagues so that my friends get the benefits too. That makes for a pleasant life.
- marban 10y agoBonus reminder: If you're reading this, you'd better go work on your side-project like totally now.
- SNBasti 10y agoWell, learning is the fun part for me. As long as I do not have to finish I probably would not.
- krylon 10y agoI feel the same way. ;-) Most of the projects I work on in my free time I start because I want to learn about something (new language, new UI framework, whatever), and once I feel I have achieved that, my motivation drops dramatically. Also, not having to deal with deadlines, strange and ever-shifting requirements, or angry users is part of the fun. Walking away from a half-finished program is not something I could get away with at work, so it is kind of a relief to be able to do that sometimes.
- dustingetz 10y agoDo what makes you happy
- nathan_f77 10y agoThis is pretty familiar! I've been going through this now with a little game I'm working on. It's been a way to learn React Native. I thought I would be done in a week, but I'm still working on it 6 weeks later, and I keep having to add new features. It's crazy how the little things add up, like sounds, icons, animations, hosting, advertising, analytics, websites, landing pages, facebook pages, codepush, in-app purchases, etc. etc. Hopefully I'll launch soon though, and be able to share it on HN.
- deleted 10y ago[deleted]
- quirkot 10y agoYOU NEVER ACTUALLY TOLD HOW
- GoToRO 10y ago"No more big re-writes because there's some hot new JS library. No more microservices for the sakes of it, no more overly ambitious build pipe-lines. NO MORE TRYING TO REWRITE THINGS IN HASKELL. JUST. GET. SHIT. DONE."
- chatmasta 10y agoYour problem is you have no momentum. You need to build momentum and get over your fear of shipping. My advice: pick three "side projects": one that you can build in a day, one that you can build in a week, and one that you can build in a month. Build the first one in a day and ship it. This will motivate you and build your confidence in your shipping abilities. Then build the second one in a week and ship it. Then build the third one in a month and ship it. You've now shipped three projects, good going! That said, I want to echo what @vinceguidry said. Side project != business. If you want to build a business, the same logic applies... just get something out the door. But you need to be serious about ongoing support and maintenance. Whereas a side project could be anything, like a fun open source project, a personal website, experimenting with new frameworks, etc. p.s. Don't be so hard on yourself. You just shipped a blog post to the top of HN. And you've got a long history of blog posts on there. Maybe you should ask yourself why you can ship blog posts but not side projects?
- gerlv 10y agoShip daily This is the advice I can give to anyone who has a side project. Get to the point where you can show something to the users and just start adding stuff. Even if it's just two lines of code or changing the favicon - still worth it. In practice, it's harder to do than it sounds, but I've been doing it for some time and it's been going great. In reality, you won't have millions of users on day 1 no matter how great your product is. If you start small and keep adding stuff you will have more success. In fact, the biggest challenge for side projects is marketing and not the tech or infrastructure. However, it also depends on the goal - if you want to build the project that makes money it's completely different story to experimenting with tech. In the end, you get the experience. For example, a few years ago I managed to build an overengineered CDN product that compressed images on the fly (almost on the fly). I shipped the project and it even worked great for testers, but I didn't get to the point where it makes money, so I shut it down as with half unfinished features as it was taking too much time. While building it I managed to learn Go, improve my AWS skills, plus some other tricks. Now it sounds like a great investment even though I feel that I haven't completed the project.
- poorman 10y agoShip daily is the best advice.
- janklimo 10y agoExcellent advice, 100% agree
- borplk 10y ago100% agreed. I used to think that I "understood" this. But as you said it's much harder to do in practice. To anyone else who thinks "oh yeah I know all about that" without having actually done it, don't get so self-confident until you pull it off.
- majewsky 10y ago"Ship daily" only works with web applications. If I were to ship my applications daily (or rather: each day where there occur changes), I would just be compiling packages all the time. (Before you ask: This cannot be automated further. I will not give my GPG key to some automation to sign the packages with.)
- igorgue 10y agoHere's the thing, there's a lot of social pressure in our industry to start a startup. I wonder if OP has ever question why he wants to create these startups. I found a while ago, that I like kids, I like playing with them, I would never have one though, I see Startups as the same way, it's something you'd be stuck forever, like my JQuery Mobile based product of my own startup, I can tell you now that I get to fuck around in my free time, now I'm happier. You need to question yourself more, are you a programmer or an entrepreneur?
- verroq 10y agoI often find that when I'm working on a really good side project I severely underestimate the time to finish. Of the few times I've forced myself to actually finish it ended up completing in the wee hours of the morning. So I've became more picky about the side projects and if I'm unwilling to commit to finishing it in the wee hours of the morning then it probably isn't worth doing at all.
- a_imho 10y agoThe real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.
- smonff 10y agoIt sounds like an alcoholic after a major hangover saying "never again".
- smonff 10y agoMore seriously, it reminds me the time when I was working on a major side project (I was unemployed, so it should maybe called a "main project") and at some point, I started to work on a very nicely crafted library that was necessary for the main project: I lost all interest in the main project and abandoned it for bad reasons.
- mattbgates 10y agoI pretty much go to work and code. Then I come home and code until I cannot code anymore and pass out from exhaustion. Good article. Started off with me thinking I actually wrote it. But I think you lack motivation to finish because you are content with the way your life is. I first started creating a project or two that were completely free. These projects helped me learn what people like and if people were even interested in using anything I created. Turns out.. I've got good ideas that people actually find useful. I'm not after creating the next Facebook, Twitter, or LinkedIn. Rather, I'm after creating things on a much smaller scale that help with everyday life. Once I got that concept down and accepted that I would not be creating something huge like a social media network, but other useful things on a much smaller scale, more specialized and to the point -- many programs start off great -- then the developers add too many things to it and it becomes bloated and no longer focused on what it was originally meant to do. So whenever I start a project: I write out all the things it should do; its function and purpose. I do my best never to deter from what I had intended it to do. This keeps me focused and helps me complete projects much faster. I did more research in how to charge for the things I made. I would love to give away everything for free, but I need to eat and pay my mortgage too. I'm certainly not looking to charge anyone an arm and a leg, but if I charge a fair price for the products I create, taking the time and consideration, and how some of it does actually make life easier, than why not ask my users to pay a small fee to use the product that helps them in their everyday life? If everyone pays a small fee to me, than I can continue supporting my products and creating more. I've certainly lost motivation and interest too many times to count, but money is certainly a motivating factor. To help stay motivated, I originally calculated how much potential income I could make from X amount of people signing up and paying the monthly or yearly recurring fee from any project I start. Anytime I lose motivation, I look at those numbers as the potential revenue that I could be making and it instantly puts me back in the mood to continue my side projects. I was so serious about my side projects that I registered an LLC in my state, opened a business bank account in order to collect money via Stripe, and I talk about and act like I am already a business owner creating products for my business. I have a few "solid products" out there, but the ones I'm charging for are still in beta and testing phases. My journey into understanding how to design products for people began at the end of 2015 and it is now the beginning of 2017. So I'm about a year in so far. I will eventually get to where I want to be. The other thing that keeps me motivated: I'm tired of working for someone. I've done it for almost 20 years... I have dealt with my fair share of arrogant asshole bosses, backstabbing co-workers, or just being under-appreciated or under-paid. It is exhausting to have to show up to a place for 8 to 9 hours a day, only to be treated like you are just a means to an end for a company. I get it: they need to make their money too, but to treat you as a human being and show respect and help you to keep your dignity and sanity goes a long way. I get to watch other departments who are all eligible for things like "CEO's Club" or "Honored Vacations" or "Gold Member Status" while my department is "not eligible" and completely ignored and treated as if we don't matter, despite the fact that we bring in millions of dollars every year for our company. We design the products for the entire business and control how things are distributed and what they look like. We literally influence how web design looks on the Internet. I'm tired of watching my co-workers make mistakes and not get in trouble for it, while I make a single mistake, far less worse than theirs, and I am singled out, and a whole meeting is called to address the issue. Sure, I'm probably held to a higher stand because I have been there much longer than my co-workers, but everyone should be held to that high standard. I've worked on projects that have brought the company in tens of thousands of dollars in a single shift. I'm also tired of being the developer who can complete 4 or 5 projects in a single shift, while my co-workers can hardly complete one or two projects, yet there is no bonus to me for doing that, yet it is expected that I am the one to be the sort of "sweeper" who ensures that all projects meet their deadlines, no matter what, while it is okay for my co-workers to leave me those projects to do because they know I will do them -- and I have no choice. I'm certainly not complaining about my job or the money. I love both! I love web developing. I love web designing. My paycheck isn't the greatest (because most of us.. could always stand to make a little bit more -- and more never seems to be enough), but it allows me to pay my mortgage and other bills and feed myself and my family and enjoy life a bit. I also live about 10 minutes from my job which is awesome. Imagine all that money saved in gas and car repairs. On the warmer days, I ride my bike to work. It is such a relief to be so close to work! But giving 8 or 9 hours of your life every single day, 5 days a week, 52 weeks out of the year... it is very draining. It is like I am paying for my house to sit there all day and be empty. So this is why when I go home.. and I am working on my side projects, I feel I am working for a better life: Designing products for others to use, hopefully products that don't have too many bugs in them, and my hope is to create that recurring income, so that I can work 20 hours a week and not 40 or 50 hours a week. Sure, this is totally "first world problems" -- I'm happy that I'm not working in fast food. I'm happy I'm not in construction or that my job is not backbreaking work or intensive labor. I'm happy I'm not working for minimum wage. I probably have a better life than most people do. Again: I am not complaining about my job or the money. I'm not even really complaining about my company. The issue lies in not being treated with more dignity and respect and appreciation, which I think is completely lost in much larger corporations, where you are just one among thousands of employees. So to never complete a side project means you are content with your life as it is. The only way to get ahead in life is to create things that other people like, want to use, enjoy using, and would actually pay you for it (or win the lottery or manage to successfully sue some corporation or whatever). You could try to create something like Facebook, though Google Plus showed us it is not possible to even contend with that type of influence and stronghold. To not charge any money at all, you have to basically get to the point where you are receiving so many visitors that advertisers love you. Therefore, your only option is to charge a small fee for the usage of your product. You may not become the next Mark Zuckerberg, and that is okay. But if you can generate enough income to actually quit your day job, than I'd say that is success right there.. at least, it is success for me and certainly keeps me motivated to complete those side projects!
- JonoBB 10y agoMany side projects are not shipped because writing code is only a small fraction of actually launching a side project. There are a myriad of other things that need to happen to launch, most of which have little or no relation to writing code.
- EdSharkey 10y agoWhat's the scope of your side project(s)? Do you have a business plan? Who are your target users? Is your code quality all over the map, why and in which modules? In the quiet times, I ask myself these questions and get sheepish, embarrassed answers. When you can give reasoned, confident answers on hard, painful questions about your future business rather than current tech demo, then your project has a shot at life. I have an amazeballs tech demo for my side project. It is scoped way too huge. Heroics and not knowing what I was signing up for got it to where it is today. Honestly, if I were to do it again, my first features would have been user management and payment processing. I wish I could take users and have them pay me as soon as they saw value in my growing hobby project. But I can't because I didn't prioritize getting users and using their subscriptions to fund my work. I have a ton of neat features and no users, argh!!
- garysieling 10y agoI built a search engine for lectures (https://www.findlectures.com https://www.findlectures.com), partly so I have something I can show people (e.g. my family otherwise has no idea what I do). Trying to build something in your free time forces you to think about dividing work up into very small pieces (what can I do with a free hour, etc). I've found this very beneficial in a work environment. If you get to the point where you can show people, showing people changes how you think about the project - some invisible social pressure to do better, similar to code reviews. You also have to think through the structure of the entire project on your own - often in a work environment, you're joining something in progress. This is also a great way to research new tools. Instead of thinking how cool they are, you evaluate how they fit into a "real" project, but without the pressure to actually make it work.
- DizzyDoo 10y agoI finished my side project a couple of years ago, released it, and then found I was able to quit my Python webdev job and go full time making video games. The key difference is that my project was a video game (this one: https://www.youtube.com/watch?v=YwXl8lDrxn8 https://www.youtube.com/watch?v=YwXl8lDrxn8) and that takes a lot of temptation to do what the OP is writing about, rewriting stuff in Haskell for example. The interesting bit when it comes to side projects (and now my full time projects) for me isn't actually the tools or the methodology or anything like that, but the end result. I spent my teenage years building games that I never finished, and it made me quite miserable, because I so just wanted to finish something. Anything. I remember the first game I ever finished was a clone of Snake. There was nothing remotely interesting in the implementation or in the design, but I was so flipping pleased with myself, I had finished something! And that let me slowly build my projects up to more interesting endeavours, and eventually to one that could be sold. Starting small was the key for me, as I learned two things: 1 - what was 'too much' for me to try and tackle at the time and 2 - self-discipline, not chucking the project the moment I got bored, or had a 'better idea'.
- lubonay 10y agoThanks for the inspiring story. One question - how hard is it to actually deal with the administrative, non-code tasks of turning your side project into your main business? I'm talking about incorporation, supporting clients, basically all the stuff that goes on outside the source code repository.
- DizzyDoo 10y agoHonestly, not very much. I'm incorporated in the UK, which involves a 15 minute filling in of a web form to accomplish. I have an accountant who really helped me in the early days walk through some things I needed to know (normal stuff like save my receipts) and handles the VAT filings. The biggest time killer for me is the quarterly MOSS filings (registering European VAT) but that's a couple of hours of work four times a year. Supporting my customers ought to be the biggest time sink, but actually, I never needed to patch the game. Organising discounts and Steam sales and things like that takes thought, but I actually really love that side of my business. For my current project, marketing is going to be a big deal for me, but I learned a lot doing that for The Cat Machine, and for me it's as important as anything that goes on inside my Git repository.
- OliverJones 10y agoMethinks our author is too hard on himself. Tinkering is a slow process that can seem undirected, for decades even. Tinkering with stuff to figure out how it fits together is good. When the right project presents itself, the persistent tinkerer will be ready. She or he will have the advantage of knowing how to do the project.
- superasn 10y agoI struggled through the same thing once I started with TDD. I've never had problems completing and shipping new products (a solo founder i launched 20 saas sites last year) but after reading dozens of documents about why TDD is an absolute must for any serious programmer my hubris got the best of me and I decided that I too will join the bandwagon. Boy, was i wrong.. Maybe for big teams it is a must but for solopreneurs and 2 people teams I wasted nearly 8 months before i realized that not only my productivity had rock bottomed but I started hating something that I once passionately loved. Since that day I went back to php and angular js. I do get occasional this feature not working mails but at least I'm creating new sites again and making more money. If there is anything you want to take from this rant is don't waste your time doing things that other people are telling you to (how ironic). Do what you love and you will get shit done.
- ozim 10y agoI am feeling the same. I also bought illusion of superiority for doing it "right". Turns out for small team, SaaS application it is a lot better to "move fast and break things" of course there is "fix bugs even faster" that is missing. But anyway if you prioritise bugs before moving fast all goes well, if not then all TDD in the world with Uncle Bob and Martin Fowler will not help you.
- lubonay 10y agoThat's an interesting take on TDD. It's supposed to be a tool that boosts your productivity, have you thought about why it decreased yours?
- superasn 10y agoI think it's because I keep changing features, and specs on the fly. The site I plan and the site I actually launch have a difference of day and night and TDD adds a sort of rigidity to that. Creating mocks for API calls, mock Models, etc is just too much overhead. Also the rewards haven't been that significant as people claim, at least for me. My focus right now is to spend most of the time on SEO / marketing / generating leads.
- deleted 10y ago
- bachmeier 10y agoMy side projects are tools I use for work. I don't necessarily finish them, but I use them all the time.
- rglover 10y agoObligatory, but important: Do the Work - https://www.amazon.com/Do-Work-Overcome-Resistance-Your/dp/1936891379 https://www.amazon.com/Do-Work-Overcome-Resistance-Your/dp/1... The War of Art - https://www.amazon.com/War-Art-Through-Creative-Battles/dp/1936891026 https://www.amazon.com/War-Art-Through-Creative-Battles/dp/1... You have to build a muscle for this stuff. It's hard.
- jondubois 10y agoI've finished at least 3 major multi-year side projects. One of my open source projects was pretty successful but none of my side projects went anywhere business-wise. Usually some well-funded competitor comes up later with the same idea and takes all the market. My advice: Don't bother starting a side project unless it's really niche, easy to implement and you just want to make enough money to replace your own income (the market has to be small). Unless you personally know people who have tons of money to invest in your side project, then it's a complete waste of time. It has to be people first. 9 out of 10 businesses fail and it has nothing to do with abilities, drive or persistence; it's only about luck. I've met a 17 year old who built a wordpress website that generated $10K per month after just 6 months (though it already had tons of traffic in the first month) and couldn't write a single line of code. I've heard of hundreds of similar stories. Some random person somewhere on planet earth randomly puts together an app because they think it's cool without any thought whatsoever; it blows up in popularity out of nowhere; then some smart engineers/people who actually understand the potential find out about it early enough and join up in exchange for a stake in the project; that's how actual smart people do business.
- J-dawg 10y ago>I've met a 17 year old who built a wordpress website that generated $10K per month after just 6 months (though it already had tons of traffic in the first month) and couldn't write a single line of code. I've heard of hundreds of similar stories. As developers, we tend to think the technical stuff matters way more than it really does. I think non-technical people almost have an advantage here - they'll choose the minimum technology to get the job done. I've seen some really nice websites created by friends using nothing more than Squarespace or similar. I fear that if I'd been given the job I'd have procrastinated for ages over all the different options and ended up wasting a lot of time and ultimately creating something less impressive.
- js8 10y agoReminds me of this comics that I just sent to coworker: http://www.commitstrip.com/en/2014/11/25/west-side-project-story/ http://www.commitstrip.com/en/2014/11/25/west-side-project-s...
- kilon 10y agoSuffering with dysthymia taught me many things. One of the things is that I may be fine working under pressure but my brain is not. Side projects tend to be small , fast and enjoyable. This is the way the human brain works and is actually much more efficient than taking big steps. Also make sure that your main goal is fun, if it is not, it will only get worse. Fun is the fuel of the brain. You cannot fight fun, because you cannot fight the brain. The brain always win. Make your brain your ally and success will come. You are not your brain , your brain is a lot more than you. Let me say once more , brain. Brain Oh and if you think your code will never sell , remember that fortunes have been built selling rubber bands for hair. There is always a way. " use the brain Luke "
- NicoJuicy 10y agoWeird, I developed so many side projects. But my most successfull one is a webshop which I configured in woocommerce with 1 product in it
- mezod 10y agoI keep finishing things. I do MVPs, but they are so simple that noone really cares, and after all the effort I put into them. motivation is gone. So while I'd completely agree with this, every day that goes by I disagree more.
- derwildemomo 10y agoJust my two cents, but I just looked at http://everydaycheck.com http://everydaycheck.com and I think it's both a great idea and (from what I can judge) well executed. Also one piece of advice: Do Shown HNs more often. For me, they are regularly an great source for feedback.
- mezod 10y agoThanks :) I don't really want to spam HN but I might give it another try and see if I can get some feedback :p
- duke360 10y agosame problem here but slightly different solution i impose myself to not start another thing until the previous is done. doesn't matter how long it takes but i cannot do another thing until the previous is not ready i know this will bring me to 10-year-long side projects...
- gressquel 10y agoOnly thing you need is https://www.youtube.com/watch?v=1n9ykP5NJ2s https://www.youtube.com/watch?v=1n9ykP5NJ2s (if its a bad joke, dont vote me down :) )
- nemacol 10y agoAs someone who is trying to learn to code on their own, I feel like I understand this. The first question of "which language/stack/etc should I learn first?" has haunted me for the years I have been trying and getting nowhere. Not EXACTLY the same problem as the author, because I am not building out scalable infrastructure. I just spent a ton of time learning the fundamentals of angular and node, then try to understand express, then grunt, and mocha and bower and... now I have weeks into this pile of stuff... nothing working and I am frustrated, disappointed, and oh look Overwatch patch notes.. time to try out the new hero.
- flxsrbr 10y agoBeing in the same position (trying to teach myself some web development in my spare time) I recently decided to focus on the absolute basics and work my way up from there. This was after I quit a beginner's course which started with bootstrap, jquery, meteor.js and mongoDB. This may be fine for others, but to me it felt frustrating because all the interesting stuff beneath was kept hidden from me. I just used some tools in a predefined way without really understanding what was happening. You are probably way past this level, but I really enjoyed the interneting is hard tutorial (https://internetingishard.com/html-and-css/ https://internetingishard.com/html-and-css/) and playing around with flexbox and media queries. At the moment I am looking into Free Code Camps JavaScript chapters. Seems like a very long road, but understanding the basics concepts first, learning a little more every day and just playing around with what I already know is what keeps me motivated. But of course YMMV and this may not be the best way if you are aiming for a quick change in career etc.
- nemacol 10y agoThis is my experience as well. Started with a boot camp that made me feel like I could actually get stuff done only to struggle with core concepts, debugging, and actually doing things on my own. I recently enrolled in FreeCodeCamp (2 weeks ago) and have been working through from the beginning. Thank you for you comment. Best of luck to you, fellow newbie. :D
- l_t 10y agoUnless you want to focus exclusively on Web development, I wouldn't recommend picking Javascript as your first programming language. The ecosystem is fragmented, and the language itself is probably not the best for teaching. Have you considered learning Python or Ruby first? On the other hand, if you're committed to Javascript, I think you should start at the most basic level. Angular is good, but it's a complicated system that takes time for even experienced Javascript coders to get used to. Same with Express, Mocha, Grunt, etc. These tools incorporate complexity to hide it from the programmer. But as a novice programmer, you DO NOT want that complexity hidden right off the bat. Assuming you've gotten past the very basics (syntax of programming language, executing Javascript in the browser, reasoning about simple scripts), I would recommend the following as an exercise for learning: Pick a fairly simple website and try to re-implement it, without looking at the original code. Don't start with angular, bower, or anything else. Just Javascript, HTML, and CSS. This is the fundamental language all browsers speak, and you have to be able to understand it for everything else to make sense. As you work on the project, you might start to find things annoying. Like, dynamically changing page content with Javascript requires a lot of code. How could you make it easier? Think about, and possibly even implement, a solution that makes sense to you. Then, once you don't need it, you can reach for a pre-baked solution (like Angular, Vue, or React in this case).
- rev_null 10y agoWhat's with the cheap shot at haskell at the end? I've shipped a couple of side projects in haskell.
- perrygeo 10y agoI interpreted that not as a cheap shot against Haskell but a warning to avoid constantly chasing the perfect technological solution. (IOW just ship what you've got instead of constantly tinkering)
- drsopp 10y agoThe brilliant lecture by John Cleese on Creativity is apt: https://www.youtube.com/watch?v=9EMj_CFPHYc https://www.youtube.com/watch?v=9EMj_CFPHYc
- Touche 10y agoKeeping things simple is so key. For anyone working on a SaaS startup I would strongly encourage you to do the boring CRUD method using Ruby on Rails or Django or whatever the default framework is in your preferred backend language. Don't get into the JS SPA world, that's a rabbit hole of decision making you'll never escape from. You can put that off until you have a successful startup and I bet by then you'll realize you don't need it anyways. Personally, my problem is that I just have too many side-projects. I have one startup side project, but I probably have a half dozen of other OS side projects that I'm either working on here-and-there or I'm at least thinking about when I should be thinking about my startup. I think this is one of the disadvantages of doing a startup as a side project while still working full time. Even though I allocate 1 hour and a 1/2 to 2 hours a day to work on my startup I still find myself working on other hobby stuff nearly half the time :( A lot of those hobby OS projects come out of some problem I'm experiencing at my day job but don't have the time to solve in the elegant OS way I would prefer to. I'm super happy to have read this article and plan to take the advise. No more side-projects, just get my startup shipped. ️
- bobbington 10y agoGreat article. Facebook was built in "dumb" php and MySQL! Maybe recruiters care if u know the next big framework, but clients certainly don't!
- zMiller 10y ago"I'm challenging myself now to do the opposite, keep things extremely simple, unglamorous, dumb, sometimes ugly. But done." Here here my friend.
- ideonexus 10y agoThere's a Garrison Keillor quote I love that I think relates to programming as well, "A written work is never finished, it's simply taken away from you at some point." I think the author's intent is a good one and it overcomes the "perfect is the enemy of the good" trap we can all fall into at times. As the technical lead on a multi-team project last year, I had to beg my developers to just check in anything at one meeting because they were terrified of having the other teams see their imperfect code. When I assured them their code couldn't be any worse than mine, which I had checked it several times and actually had rejected by the version manager, that they were able to laugh and agree to start committing their work to the repository. Your code is going to get criticized no matter how much you polish and engineer it. If you can accept that, then I think you will find yourself free to be more productive.
- robbfitzsimmons 10y ago> If you're using AdBlocker, fair play, I don't blame you. But please consider chucking me a couple of quid: https://monzo.me/ewanvalentine https://monzo.me/ewanvalentine Am I missing something? It's a nice set of thoughts, but I can't imagine paying to have read somebody's personal blog, and would have been vaguely weirded-out at him having ads on it.
- nikon 10y agoAgreed... Such a strange thing to close with. I had to scroll up to see what he'd given me for free?
- dahart 10y agoYou could think of building a scalable back end you don't actually need as a form of premature optimization, and I think the way around that is to evaluate & measure what you actually need - problems you have now, not problems you might have later (no matter how sure you are). @gerlv's suggestion to "Ship daily" is great because it not only forces you to ship often, so you feel like you're getting something done, it also forces to you evaluate what you need, and forces you to quickly get feedback from users that should be the true driver of what you need. (Assuming you want users, rather than a finished side project just for you.) Michael Abrash has some books on optimizing code in assembly language, and he takes special care to talk about why & when to optimize that would also apply here. The point he makes repeatedly is to optimize from the user's point of view - don't do something the user won't notice. http://www.phatcode.net/res/224/files/html/ch01/01-01.html#Heading2 http://www.phatcode.net/res/224/files/html/ch01/01-01.html#H... We all do it though, this is a human trait, but we programmers and computer scientists often amplify the problem. We love obsessing over what's "best", without regard to whether we actually need the best. We are taught during our Computer Science degrees to generalize and abstract at every opportunity, to plan for future problems we might have, and for future problems others have had that we might never have. We discuss incessantly how important it is for software to be scalable, and how to use the "best" everything, best language, best database, best algorithm, etc. Strive to solve only the problems you're already personally experiencing, wait to solve problems until you are already experiencing pain, and ignore the problems that only "might" happen, then it will be easier to finish things.
- chriswarbo 10y ago> You could think of building a scalable back end you don't actually need as a form of premature optimization I've heard this described as "solving the problem you wish you had". A globally-distributed, scalable cloud infrastructure of microservices is good for the likes of Google, Facebook, Amazon, Baidu, etc. because it solves problems they face: handling millions of hits in a timely manner; avoiding downtime, every second of which is user-visible, loses them money and damages users' confidence in their service; etc. It's very unlikely that a side-project will ever face these problems; an off-the-shelf Web server on an off-the-shelf host (say, Apache running on EC2) is probably fine. A side-project which isn't shipped will never face these problems, because it doesn't have any users, any uptime, any revenue, etc.
- trentnix 10y agoAnd I haven't learned to start what I can finish. Maybe one of these days...
- rafinha 10y agoGuess I'm so far gone couldn't even finish the article...
- overcast 10y agoGet to the point where you have something that barely functions, and put it on the web, then constantly iterate it. This is how you "finish" what you've started. I'm totally addicted to learning, and seeing how people use my stuff, so that's what motivates me to get the concept out there as quickly as possible. My only real issue now is having the time to be able to put ALL of my ideas out there. I must have a hundred domains of "ideas" that I want to get shipped.
- spython 10y agoThe same thing happens in many other creative endeavors, such as photography. If you don't have a client that needs pictures soon, you can spend months and years reading on the best lenses and techniques and buying new gear. Acquiring all that knowledge leads to a feeling that you _potentially_ can do more. You are _potentially_ more powerful. It is a good feeling. You can never be disappointed in yourself if you don't finish anything.
- aratno 10y agoAt least in tech, the equipment is free.
- yakshaving_jgt 10y agoFWIW, the only side projects I have actually shipped were written in Haskell.
- avenoir 10y agoI share the pain. I'm incredibly productive at my day job architecting and tying together a plethora of microservices to deliver a platform of unified products. Outside of work i am absolutely freaking worthless. My problem is largely perfectionism. I've started working on seemingly great ideas and then took a turn to build a tool that would make task A less hack-ish. A few weeks later I'd open-source the tool/library and jump back on to the project only to find yet another thing to bothers me. My thinking here is that while I'm working on something in my spare time I should enjoy doing things the right way instead of cutting corners to meet deadlines. If i don't do this I cannot help but feel unbelievably dissatisfied and usually quit within a few days. Still don't know how to get over the hump. I'm almost thinking i have some kind of psychological disorder. On a side note, this same behavior helps me a lot in other areas, like working on a project car where attention to detail and just taking time makes the end result much better.
- deleted 10y ago[deleted]
- claar 10y agoConsider the psychological angle. ADHD, stress, depression and the like can contribute to these feelings of underachievement and frustration, and a professional can help explore these possibilities. Perhaps you simply "haven't learned to finish what [you've] started", but sometimes there are deeper issues at play.
- alexandersingh 10y agoOne technique that has helped me is what I call "atomic actions". What is the smallest action you can undertake, that you can build upon, which will help you realize your goal? I've wanted to write for years but thought I had to pen esoteric essays composed of thousands of words. Recently I just started writing short, simple posts that are helping me establish a habit, develop fluency and enjoy the process of writing. My first post was on this idea of atomic actions: https://alexsingh.svbtle.com/atomic-actions https://alexsingh.svbtle.com/atomic-actions Maybe it'll be of help to someone else :)
- closed 10y agoThanks for this advice. I love that the simplicity of your post demonstrates the concept it's teaching.
- stuaxo 10y agoAn update after 3 months of this might be good, to see if it worked ?
- nanospeck 10y agoRecently, I found some things that works for me and put it out as a book. Interestingly, I finished the book also using the same techniques. A key trick to keep you motivated is to reward yourself handsomely and IMMEDIATELY if you achieve the goal on the PLANNED DATE. For eg. I rewarded myself an iPhone 7 plus ( which is currently the hottest phone in the market) for finishing the book in 30 days. This helps you overcome the fear of loss that, what if no one buys your product and your effort goes in vain. However I still find marketing is harder! (My book here:http://amzn.to/2iUYaOH http://amzn.to/2iUYaOH )
- _audakel 10y agoIf you have poor self discipline in the first place what stops you from just buying the iPhone in the first place regardless of goal completion haha?
- stuaxo 10y agoThe downside to taking "get shit done" is incurring technical debt. This can be a good thing, if it helps you move forward, as long as you pay it off + don't let too much build up.
- fourseventy 10y agoHave a grandson, name him Kylo, he will finish what you started.
- twfarland 10y agoWrite meta blog posts
- tmsldd 10y agoMake smaller projects, divide things in manageable pieces and define a clear end.. before starting it. A project never gets finished just because we never stop adding to it..
- liquidise 10y agoAt the highest level, the trick is to actively do things to increase momentum while avoiding things that reduce momentum. Pick a stack you know, build a way to collect money, release before you've even written code, etc. I wrote a post titled Side Projects: Avoiding Failures to Launch[1] a few months ago that touches on these same ideas in more detail. 1: https://blog.benroux.me/avoiding-failures-to-launch/ https://blog.benroux.me/avoiding-failures-to-launch/
- samirillian 10y agoMaybe part of it is coming up with a project that you consider too inherently important/interesting to experiment on. I feel like there are projects that are essentially excuses to learn a new skill, and then there are projects where you perceive a real need and simply want that product to exist.
- srvlsct 10y agoI can relate to this. I created several products that I never launched. Now that I look back, I wish I hadn't been so reluctant to publishing them. Granted, I learned a lot but I wish I launched early and often to get over the psychological hurdle. Most people don't really care about your project anyway. I finally bit the bullet and launched http://www.survivalscout.com http://www.survivalscout.com in January. It's a definitely whole new set of challenges going from coding to trying to market and sell your project.
- reledi 10y agoIt's okay not to ship personal projects. No one's really holding you accountable for that. Look at it this way, unfinished personal projects still give you value because you might still be using it in its incomplete state, and you learned something when making it. As you become a more experienced engineer, it's common to have more unfinished personal projects because you have difficulty approaching it with a hacker mindset where you throw all best practices out the window and get it working as quickly as possible. Accept it and try not to lose sleep over it. The problem is when this behaviour crosses over into your professional life, because you're not delivering value to your customers quickly enough and as a result you'll either get sacked or the company can go bust. Having someone else to keep you in line works great, it doesn't even need to be a Product Manager or Product Owner. And if you don't have someone else to keep you disciplined, then you better work hard on improving this area where you're lacking. Write down ideas on paper for example and ruthlessly prioritise and prune them every morning. Sayings like "work on what's highest priority", "do the least amount of effort that results in the greatest value", "keep it simple", "reduce scope", "you aren't gonna need it", "defer nice to haves", and so on are things we hear so often because it really is good advice that you should follow.
- wkoszek 10y agoYou get depressed if you have an idea in your head all the time, but you can't finish it. Or you boggle down your head with details and never end up having something you can show to your second half. That's the problem with shipping personal pet project. You are your own manager unhappy with yourself as an employee.
- curun1r 10y agoI have this same problem. My finish rate is abysmal, but I've actually finished a few. I've realized that finishing a project is roughly 10% exploration another 20% getting to working and at least 70% polish. The exploration phase is very enjoyable and it's what keeps me hopping from project to project. Occasionally, the enjoyment will phase will encourage me to keep plugging away at it until I get to working. This is the minority of my projects, but it happens naturally to some extent. But I rarely put in the time and work to do that other, much larger bit to get to a done state. Because that part is actually work and it's not fun. But what I've discovered in looking at my projects that actually got to done is that there's one thing that, for me, leads me to finish...having a social pressure. The projects that I've discussed with friends and gotten them excited about are the ones that I finish. My attention will wane and I'll drop it for a bit, but then I'll have a conversation where someone asks what what the status is and I'll pick it up and work more. And if that repeats enough, I finish. The best case scenario is getting someone excited enough to actually code with me on a project. In those cases, we usually get to done pretty quickly. I think this is why being a solo founder is so difficult. You're going to run into difficult stretches and you'll want to focus on something else. It's a very rare person that can continually return their focus to a single problem, even in the face of adversity. But if you've got someone else to steer your focus back, you can keep working long enough to succeed. So here's my advice to a coder who's never finished. For your next side project, when you get the inspiration, instead of immediately sitting down at a keyboard, contact a friend, go out for drinks and tell them about your project. Better yet, get a group of friends and discuss it. Get them excited about it and let them know that you're excited about it. Only after that step should you start coding.
- snarf21 10y agoRight, it is like going to the gym. Doing it with a buddy means that each of you can take a turn at motivating when the other is tapped out.
- feyn 10y agoI wrote a blog post in reply: https://neilonsoftware.com/2017/03/10/my-response-to-how-to-never-complete-anything/ https://neilonsoftware.com/2017/03/10/my-response-to-how-to-...
- ernsheong 10y agoI've frequently been defeated myself because the project size was too large and too ambitious. Being a perfectionist also really doesn't help, but it's my nature. So I've learnt to instead focus on a wayyy smaller project, and I'm making more progress than ever because well, the finishing line is much nearer. Also, using Pivotal Tracker or some agile tool to track stories gives me a kick to doing things. Commit to a small number stories per defined sprint period and get it done.
- brazzledazzle 10y agoThis hurt to read because it's something I've recognized in myself and I've been thinking about how to solve it for a while now. Looking back it was a habit I started long before I ever touched a line of code–I used to sketch and paint a lot but would never finish a piece. Analyzing that I realized I was chasing a "high" that you get from exploring new ideas and even when I wanted to finish something I made it incredibly difficult by not having even a loose idea of what "done" looked like. I think having the "finished" figured out (even if it changes) might help a lot because anything that makes things harder once you're past the fun part is a multiplier for demotivation. It does make me feel a little better knowing I'm not alone in my shame though. And hearing about other's solutions is really helpful too.
- startupdiscuss 10y agoOkay, I am going to share my secret for finishing. I discovered this late, but am glad I did. Are you ready for it? The secret is this: don't start something till you finish the last thing, no matter how poorly. This goes even at a "micro" level, so don't start distributing the load on servers till you finish the last thing (interface), no matter how poorly you finish the last thing. Now you have the secret. Go forth and complete.
- kris-s 10y agoTotally agree, my mantra is "The enemy of my main project is all the other projects." Starting is fun and seductive, finishing is a grind, but boy does it feel good when you do. It's how I finished a novel, a massive YouTube project, an iPhone game, etc.
- startupdiscuss 10y agoWell put. I first "discovered" this trick with writing myself.
- stewbrew 10y agoI beg to differ. Sometimes things need to settle down or you have to gain some distance. This can take months or even years. If you don't have an external deadline, you can afford finishing things when you are actually ready for it.
- startupdiscuss 10y agoThis is actually a good insight and I agree with it. However, I don't think it contradicts the essential statement. The wiggle room is in "however poorly." So you might want to edit it, but finish the first draft. You might need to tweak it, but finish the first version that actually works.
- freehunter 10y agoMy wife gets frustrated when I set aside a side project or a hobby for a while and pick up a new one or return to an old one. She says she finds it difficult to support my new hobby knowing that my old one is languishing. But the way I see it, the day I have to work on a hobby, the day I need to put hours into a side project, that's the day it stops being a hobby. That's the day it stops being a side project. On that day, it officially becomes a second job, one that likely isn't paying me anything. I have two half-finished Rails projects, a half-finished Arduino robot, and a guitar that hasn't been played in a couple of weeks. And you know what? They've all given me some joy, and have been set aside temporarily when that joy started to feel like work. That's the reason I switched majors away from computer science. I like programming. I don't like being forced to program. I don't like making software for someone else. It's a hobby for me. Not a job.
- Kequc 10y agoI've become vastly more productive, productive in the sense that I actually finish things by scoping way way down. I used to dream up grand plans, start building, and before I got to the end I'd have thought up three more things I wanted to build. That isn't any way to finish anything, it's a good way to learn about limitations and develop new skills. By scope way down, have a few ideas and consider what they share between them. What single feature will I need. I build that. But, that feature in and of itself has a lot of parts so I pick one and I build that. If it has smaller parts, I build one of those. Instead of building some grand machine, I build gears. It's far more satisfying.
- lukewrites 10y agoTwo things have made a huge different in my ability to finish/ship: 1. External Deadlines. I'm a career teacher, mostly self-taught Python/Django developer, and am applying for dev jobs. The school year's over in June, and I want to be able to step into a new jr position in July/August. I'm planning to resign my position this spring, and cannot be out of work. My benefits and salary will stop in September. I'm f'ed if I'm not working by then. The need to ship projects (if only into my portfolio) is high. 2. "Deep Work" for time management. Ideas from Cal Newport's book "Deep Work" have been foundational in my getting more done. It's hard to find the energy to build my side projects/portfolio after wrangling eight year olds all day, so I started getting up at 5 am solely to work on my projects. I make coffee and toast then get to my desk. I close all applications except Atom, Dash, and Firefox; turn on Do Not Disturb; look at my to-do list in my notebook; then get to work. Having 75 un-interrupted minutes before my wife gets up allows me to get a huge amount done, and it's become gratifying to watch the 6 am commits pile up on my github punch card. I've also found that exerting discipline in this facet of my life has had a positive knock-on effect in other areas.
- rickdg 10y agoSo your recommendation is to sacrifice sleep time?
- lukewrites 10y agoI edited that bit out of my post above. I guess it's about prioritization. I had to make tradeoffs to maintain the schedule and not be worn out at work. I decided to start going to bed a bit earlier so I could get up earlier. To facilitate this, I changed my workout schedule (I'm doing HIIT for cardio rather than time-based workouts) and cut some other activities that didn't seem as important as my other goals. Worth it.
- splintercell 10y agoI came here to mention 'Deep work' (which I found a very effective way to do and talked about on HN previously [1]) AND another tactic which is giving me good results. The trick I found to complete things is: Do not switch ladders of abstractions. When working on a modern web application (with backend, frontend, css, testing etc) if you start with writing backend API calls, then just write all of them first. Starting with the API call for /user', /signup, /login, /compose, /rate, /play. Don't worry about it working. If you do TDD then fine, but if you don't tests before you write the code, then avoid writing tests until you're done writing the basic code for your API. Then you write tests for it and make sure that each endpoint at least works. Then write E2E testing for it(for the backend). E2E tests are a great way to build your app with it's core functionality full working and validated. In other words, write unit tests which first call /signup, then /login, then /compose then /play (which is I presume one full flow of a user). This will help you figure out issues with your API and it kinda feels like writing a full app. Once you're done with testing, then write the frontend, just simple HTML, don't worry about CSS. Don't try to grab React + ES6 + Redux boilerplate or things like that. Just go with the simplest thing. Even if after every action user has to refresh to page, so be it. Oh you heard about CycleJS and think that you should be using that instead? Well guess what, you purposefully chose a really terrible technology to build this app, so once you're done making your app in that crappy tech, then you can rewrite it in CycleJs or anything else you want. This way, even if you abandon your CycleJS rewrite effort halfway, you'd still have a completed project(and trust me, you will never let your app be stuck at static HTML with no CSS). Chances are that you'd abandon it, when you've already written your app in CycleJS but made a new rewrite effort to write it in Vue.JS. Basically idea is, you think in terms of one layer at a time, and you defer all desires to refactor things until you are done finishing that layer. 1. https://news.ycombinator.com/item?id=13813173 https://news.ycombinator.com/item?id=13813173
- dominotw 10y ago>no more overly ambitious build pipe-lines. What exactly are build pipe-lines ? is it javascript webpack kind of stuff?
- joantune 10y agoRight on the money this one: https://neilonsoftware.com/2017/03/10/my-response-to-how-to-never-complete-anything/ https://neilonsoftware.com/2017/03/10/my-response-to-how-to-... I have been developing professionally for 7 years now and had similar experiences. It's important to allow yourself to stand still, if vacations aren't possible, exercise and meditation might help you a lot too.
- andrewstuart 10y agoI always complete my projects but each project takes a long time - months or years. I'm highly motivated to find something that people want and the only way to do that is complete things.
- axlprose 10y ago> NO MORE TRYING TO REWRITE THINGS IN HASKELL. JUST. GET. SHIT. DONE. I chuckled at that, because while it makes for a good joke, I've learned from experience that writing stuff in less mainstream languages like Haskell is probably the best way to avoid getting distracted by trendy new frameworks all the time, since they tend to have smaller, more niche focused communities that don't produce new frameworks every week that would even be relevant to you.
- d1ffuz0r 10y agoRecently I wrote a blog post about how I finish side-projects http://d1ffuz0r.com/how-to-finish-side-projects.html http://d1ffuz0r.com/how-to-finish-side-projects.html