by sciguy77 on 12/26/14, 10:47 PM with 139 comments
by gavanwoolery on 12/27/14, 12:53 AM
Find the easiest thing that you are legitimately passionate about. Do not work on a project because it is in a popular space, because you are looking to make a quick buck, or any other reason than you are undeniably interested in the space.
If you are not interested in the project, it will become boring and you will lose steam. Even if you are interested in it, there will be boring tasks to tackle. It might be that the only project you are truly interested in tackling is not an easy one (as is my case). I have a massive graveyard of failed ideas that halted at some point because I lost interest and/or realized they were dumb ideas. The only one that has lived is the one I keep coming back to (and am now working on full time).
These are not factual statements, just a reflection of my experience. Yours may differ.
by rachelandrew on 12/27/14, 6:17 AM
We find the time and energy for those things that we place importance on. If the project isn't important to you then maybe it is time to move on. If it is important and this is just a temporary state - perhaps due to hitting a difficult part or a bit you don't enjoy dealing with - you need a strategy.
Break it down into manageable chunks. Put a date on them. Make sure however that the dates are achievable, there is no better way to become demotivated than to constantly feel you are falling behind.
If your thing hasn't shipped yet, can you get it to a release version sooner? Can you cut stuff out? Getting your project in front of other people can be a real help.
Treat the project as a first class citizen alongside your other work. Meaning that even if you can only devote 4 hours a week to it, those 4 hours are scheduled and used. Don't push them out for other work. Plan what you will do in that time, ahead of time, so you don't start to procrastinate when you sit down.
We turned our side project into our main source of revenue, you can read some of that in the first chapter of the book I wrote based on that story here http://rachelandrew.co.uk/archives/2014/03/21/chapter-1-the-...
by karlmdavis on 12/27/14, 4:53 AM
1) Every day. I've seen this with working out, side projects, or whatever... I can't stick with commitments if I try for an "every other day" or "only weekdays" strategy. Has to be every day. [1]
2) Track it in a visible fashion. GitHub's contribution calendar is fantastic for this. I've got a text file named 'work-log.md' in my side project's folder, and I update and commit that file whenever I spend time on my side project-- even if all that I did that day was research, rather than coding. My current high score/longest streak is 59 days in a row, and wanting to push that higher is incredibly motivating. With workouts, some sort of fitness tracker serves the same purpose.
3) I don't beat myself up too long or hard about screwing up. There are some folks whose "longest streak" on GitHub is 365 days or more. Good for them! I'm always sad when I realize I've missed a day, and I often take a break for a week or two once that happens, but I've never even thought about just quitting. Just motivates me to try and do better next time.
[1] One exception to this was biking to work: I never really biked on the weekends, but it didn't prove to be a problem. Probably because commuting by bike was so hard to forget about.
by joshu on 12/27/14, 4:35 AM
by zxcdw on 12/27/14, 12:13 AM
For someone, a side project might be about solving arbitrary problems such as trying to write a Tetris clone under, say 1024 bytes on x86-64 Linux machine -- something which has absolutely no real world relevance whatsoever, while for someone else that'd make no sense and be waste of time. Probably they'd much rather build something much more concrete, say a real product (say a web app) actual people can, and hopefully will use.
Perhaps it is a meaningless and arbitrary attempt at making distinctions, but I find it relevant for myself as I certainly fall under the first example, while many here in HN fall under the second. I feel this definitely plays a role in what we consider "side projects" and how we deal with them.
by motters on 12/26/14, 11:47 PM
by deet on 12/27/14, 1:21 AM
What I've found to be effective is to have a list of goals roughly by week, for the next few months, and then each week to assign myself a small list of tasks for each day. I also try to mix up the type of tasks over each day -- some are fun and I'm excited to do them, some are more tedious but have to be done. So when I do some tedious work I reward myself with the fun tasks.
When I fail to meet my goals I allow myself to get angry with myself -- almost a disappointed self-hatred. But only for a few minutes, and then I move on. Perhaps some people will disagree with this technique, and might suggest only positive self-reenforcement, but if you're not totally honest with yourself it's going to be tough to keep yourself on track.
Whatever you do, you should definitely start by examining your goals and motivations for working on your project, since everything entirely depends on these.
by otaviogood on 12/27/14, 5:19 AM
Take note of things that inspire you. For me, books or other people's projects. Show your work to your friends and try to convince your friends to work on projects with you.
Find programming languages / environments that make it easy to spin up a simple project without too much overhead. Start small. Last I counted, I have about 140 folders in my dev directory. Each one has a small project I started up. One turned into a successful company. Another won a DARPA challenge. A few others were released in various forms. But most got dropped because they just weren't as cool as something else. And I think dropping projects isn't just ok, it's great fun and will help you find that project that's worth completing.
by Htsthbjig on 12/27/14, 12:28 PM
I don't. When life gets busy with other I am busy and the other people are my priority. If you are with your family and you are not really there, you will feel guilty later on work and not be there either.
Steve Pavlina explains it better than I do: http://www.stevepavlina.com/blog/2014/12/130-days-off-per-ye...
What Steve could do after years of training(and reading thousands of books and learning from others) is probably not what a normal person could do. But they can apply some of the ideas.
In my experience, people from the US tend to work to much, but not really work. e.g When a German person works, he works, do not distract him because he will get upset.
I had never ever got bored in my entire life. I have always done whatever I wanted to do. Life has been tough to me at some times, but always in the sense of the Lion on the wild, that if he does not hunt, he just dies.
It is just so easy today to choose safety, but also living on a cage.
Go to the zoo and look at the animals there. Have you ever seen an animal(lions, leopards, elephants) in the wild? It is completely different. It is the same with people.
by krapp on 12/27/14, 3:41 AM
Also,sometimes the only thing keeping me going is the sunk cost fallacy. I don't want to just give up on something I spent months or years on.
But one think that did help me out was learning to recognize the difference between moving forward and moving in circles. Not wasting a lot of time refactoring stuff - especially if a lot of time has passed - because your tastes or mood has changed. I have one project (a web project, nothing anyone would care about) that I literally rebuilt from the ground up at least three times already, just because I got sick of the current framework I was using. I wasted a lot of time moving in circles because I didn't actually want to finish the project, but I did want to keep working on it.
by cgallello on 12/27/14, 6:33 AM
by lukasm on 12/26/14, 11:22 PM
by Osiris on 12/27/14, 6:20 AM
My advice is to make is easy for customers / users to give you feedback. Use a support ticket system and provide email links on your homepage.
by alexggordon on 12/27/14, 2:22 AM
The thing it came down to for me is understanding how incredibly rewarding it is to create cool things that I use. For example, the digital situation of Chess really sucks in the work right now, so for the last few months I've devoted about 10 to 15 hours a week to created a catch all solution to playing chess online and on your phone. It's gotten to the point where I can now use it to play with my brother, dad, sister and friends. As a person that lives a fair ways away from my family, it's really rewarding to be able to do something like that. I love getting input from them, and just being able to bond with them over something simple.
As far as the motivation, and not just the desire, it also came down to understanding how I work. I burn out quickly if I work on something a ton, and so I have an incredibly strict schedule during the week, and then completely leave the weekends open. Essentially, I kind of made a compromise with my personality so that I ended up happier, and my professional life came out ahead.
In addition to that, I educated myself. I realized what I wanted to be in 40 years, and I found out how other really smart people did it. The books below really had a major influence on me in motivating myself to work harder at everything, and to motivate me to work on side projects.
Lastly, and for myself this is huge, I surrounded myself by people I wanted to become. It's really really really hard to do stuff on your own, so I worked hard to become friends with smarter people than me, that challenged me at life, for lack of a better way to put it. I know stuff that like may sound a little cliché, but it really is one of the most rewarding things I've been able to do in my life.
Book List: 1. Without their permission. Alexis Ohanian 2. Outliers. Malcolm Gladwell 3. How to Win Friends and Influence People. Dale Carnegie 4. Hackers and Painters. Paul Graham
by danbmil99 on 12/27/14, 8:55 AM
I challenge anyone to show that the math for this works out. Everyone I know who has put effective effort into so-called 'side projects' is either living off saved wealth, working 20-30 hours/week on lucrative consulting contracts, and/or has an SO that works their ass off in some all-consuming, soul-crushing, high-paying career.
by Daishiman on 12/26/14, 11:33 PM
If you're spending all day in the office or with your clients you're going to be burned out and you won't have the energy to get down and dirty into the denser parts of your own project.
Be religious about setting aside your own time
by jmadsen on 12/27/14, 7:24 AM
by ChuckMcM on 12/27/14, 5:27 AM
Still, my biggest problem isn't losing steam its simply too many choices. I need to get better at deciding I'm not going to do a project and putting it down for good.
by lholden on 12/26/14, 11:12 PM
by fsloth on 12/27/14, 8:23 AM
For personal software projects I've discarded all engineering principles and do what I would call structured hacking. Everything is neat and tidy but only up to a point that it lets me progress swiftly.
by philip1209 on 12/27/14, 3:18 AM
If you choose to work solo, bring in a friend - preferably who is working on their own side project - to mentor you. Try scheduling work time together or swapping expertise (e.g. design feedback or code review). I worked on a project in parallel with a friend's project, and we did IDoneThis updates to each other every day. That accountability helped to motivate both of us, and rather than give up when we got stuck, we had somebody to talk through issues with.
An organizatoinal tip is to set up a personal kanban and break everything that you are doing into tasks. Jumping into a large project that takes months can seem like a neverending tunnel, but being able to see incremental progress in terms of completed cards every day can be motivating. When you start to lose focus, look back at the cards and see what you are supposed to be working on or pick another card.
Finally, don't lose sight of the end user - build something that people love, and keep dialogue with your customers before you launch the product. Get feedback, shadow them, identify pain points, grab coffee - a project become a lot more real when you humanize the end user.
Good luck!
by richardw on 12/27/14, 7:00 AM
1) http://thinklegend.com/commit/ - I have "do 30 min X project per day", which isn't much but usually the hard part is starting. It's easy to kick out 30 minutes work, feel good and add a link to the chain.
2) Yesterday I itemised a bunch of push and pull factors about my current job and my side project. We regularly build amazing things for customers but forget to do what's important to us. We get caught up in "urgent" and forget about "important".
3) Startup podcasts. In the absence of a mastermind (Anyone else in Johannesburg?) they keep me in the mindset of building. They're like a small daily escape into a world of possibility. I listen while driving, so after the work-day drudgery I'm reminded of what I'm working towards.
by aaronbrethorst on 12/27/14, 4:28 AM
[1] Which may mean that the MVP takes a day to build, or the project is something that will be sufficiently useful for you that you can work on it for six months without getting bored.
by jseliger on 12/26/14, 10:54 PM
Figure out how / when / where you're going to release them, and work towards that moment.
by rwallace on 12/27/14, 12:40 AM
by noobermin on 12/26/14, 10:59 PM
It's hard, especially when a particular feature needs days/weeks of effort. For that sort of thing, you just need to persistent, I guess.
by mrmondo on 12/27/14, 9:17 AM
It's hard to see value in something until you add it, this is why your greatest achievements will be hard to see moving forward.
by xasos on 12/27/14, 5:09 PM
[2] http://lifehacker.com/281626/jerry-seinfelds-productivity-se...
by justinzollars on 12/27/14, 12:22 AM
by sideproject on 12/27/14, 9:40 AM
(disclaimer - I maintain the site)
Based on my experience of running the site over a year now, there is nothing wrong with side projects that do not become "success" (whatever the definition of your success may be). The most important part is the building it and shipping that v1.0 (or v0.1.. whatever).
by kchoi on 12/27/14, 6:15 AM
What I mean by this is that you need to rationalize why doing something is important to you in terms of its meaningfulness and impactfulness.
For example, let's say I'm a web developer with zero knowledge of building a mobile app. And I want to build a mobile game in ios that doesn't exist in the world yet. When it comes to pushing myself to work on such an app, I remind myself that I want to become a programmer with versatile skill sets desired by many employers. That will be your high level goal.
However, this goal might be too general and isn't convincing enough for you to keep working on the project. So, let's make your goal more specific. So, in this case, it can be that you are super interested in learning about technical details behind implementing the game whether it is about designing the db relations, software architecture and etc. That will be your middle level goal.
Finally, if none of them made you want to work on the project, let's dig deeper and make a goal really personal to you. It can be something like you want to build it because you want to play this game but you cannot find anything like it from anywhere else. That will be your low level goal.
by Spearchucker on 12/27/14, 12:32 AM
- The first is that while I've been using it (or a version of it) for about 5 years, there are a lot of features I want that are still missing.
- Second is wanting to see it through. There are loads (over 20) of unfinished apps in my \Dev folder. I think some of them are epic ideas, but decided to focus on one and see it through.
- Third is to make some cash. That's a nice to have, and I'm ok with it not making anything, because of reason 4 -
- I love working on it. It's rewarding like nothing else is. I once told a friend (quite seriously) that solving some hard problem in it was better than sex. He told me I was doing sex wrong. Maybe... but I can stare at a piece of code for ages after writing it, if I think it's good. Narcissistic, I suppose, and probably deluded, too. But there it is.
- Fifth, and last, I've learnt more from it than any other (single) project I've ever done - privately or professionally. Not just code, the cloud, document v. relational v. graph dbs, but also the not-so-great value of TDD, the value of DevOps, and arguably the most important, the value of just not accruing technical debt, ever, at all. If you gave me another minute I'll think of a million other things it taught me.
by chvid on 12/27/14, 1:28 AM
Not finishing projects is a really bad habit, even for side-projects. Try to set a goal of at least publishing your project in some meaningful form - maybe it is just a blog or a forum posting.
Also be careful of vetting your ideas before you start. Make notes, paper prototypes, drawings or something that allows you to better reflect on and filter your ideas.
by Jonovono on 12/27/14, 12:28 AM
by jlarocco on 12/27/14, 6:21 AM
For me, side projects are things I do because I'm interested in them and have free time to invest. If I don't, I don't work on the project, and it's no big deal. Yeah, sometimes I'd love to have more time, but oh well.
It'd be different if I made money off of them, but I don't. To me, that would make it a job, and not a side project.
by briandear on 12/27/14, 9:22 AM
by vayarajesh on 12/27/14, 4:27 AM
I get motivated even more seeing the github streak (github.com/rajeshvaya) and it a very small measure which helps me going as well.. everyday for past 64 days I have made sure I spend my first 3 hours of my morning time (even on weekends.. I make sure I get up early)
after you get this initial start it is kind of self-motivating which will keep you moving forward.
What i think is just 2 important things to get this:
1. Work on the projects which interest you and not because other people think its cool or just to make little amount of money
2. Try to spend first few hours of morning on your side project rather than ad-hoc amount of time and different time-span of day. Keep it regular, same time just like gym
by xanderstrike on 12/27/14, 2:20 AM
For things that are fun to make but nobody would want to use, beats me. Those things I usually play with until I run out of steam, at which point I figure I've learned what I'm going to learn from them and move on.
by robot on 12/27/14, 12:52 AM
You should think about what you will achieve in the end. Especially if the side project is one that you can make use of yourself, the effect is even bigger since you will have immediate benefits from the outcome.
by gcz92 on 12/26/14, 11:29 PM
by zeeshanm on 12/26/14, 10:59 PM
by DennisP on 12/27/14, 2:25 AM
by balloob on 12/27/14, 6:25 AM
Use your side project as your playground to learn new things by doing mini projects within your side project:
- Want to learn about testing? Add test coverage. - Want to learn about webcomponents? Find a way to integrate it.
You don't have to finish all the mini projects. Dropping something is fine, you still have the experience and knowledge!
What really helped for me in keeping steam is publishing the source of my side projects on GitHub. The idea that someone else uses your code is very satisfying. Once some traction comes, the pull requests and issues start coming in and it gets even more fun.
And when you get bored? No problem, just switch to a different side project or think of a new mini project.
by tfb on 12/27/14, 8:06 AM
I love to code and I love to build things, and I would lose my sanity if there was only one thing I ever worked on. Plus, one of the best things about side projects is that there's usually no pressure to really get it done, so when I load my workspace for a side project, I'm always excited to get started, because I know nothing really important depends on it. And unsurprisingly, I've learned so much from random fun stuff on the side that I would never have learned otherwise.
by chipsy on 12/27/14, 3:19 AM
Once that is done, you always have the whole portfolio of unfinished-yet-related things sitting there. If you can't work on any of them, you start a new one, but eventually you hit the point where you can see that you're just redoing an old one. You don't get stuck on overengineering it because the context of it is already as a small part of a whole. If one of them proves to be a really good idea and more deserving of attention, you chop it out of the original context.
by Mz on 12/26/14, 11:54 PM
My projects don't involve writing much code, but there are always different things I can be working on. I can be working on the visual look of the website. I can be working on firming up my definition of what the project is about. I can be working on talking to people and recruiting prospective audience members. Etc.
If pushing code is turning stale, what other thing can you do to further the project? Those other parts matter and you may be more able to address some other piece of it at some point where "pushing code" is the last thing you feel like doing.
by kevinold on 12/27/14, 4:36 PM
http://www.amazon.com/Mini-Habits-Smaller-Bigger-Results-ebo...
by lholden on 12/26/14, 11:26 PM
by ryanmk on 12/27/14, 7:20 AM
by swayvil on 12/27/14, 6:34 AM
I do it right. I take my time. Spend much time thinking about the next step. Draw and stuff. Spent like 12 years experimenting with different geometry games. Looking for the one that feels right.
I have this stack of project sketchbooks. Sometimes I look at the stack and think "I'm nuts".
The final climax seems close.
Sometimes I wish a bunch of enthusiastic highschool kids would take my project over, but not quite yet.
Also there's bucks in it. It's got material worth.
by aberrant on 12/26/14, 11:55 PM
by jbrooksuk on 12/27/14, 12:09 AM
Unfortunately I don't always have enough time to push code every day, but that doesn't mean I can't answer emails, add items to Trello and be active in the Gitter chatroom etc.
For those interested, I'm currently working on Cachet, an open source replacement for StatusPage.io (https://github.com/cachethq/cachet)
Today I created a CrowdIn project for translating the language files into other languages :)
by alexknowshtml on 12/27/14, 12:06 AM
by yamalight on 12/26/14, 11:32 PM
by poseid on 12/28/14, 12:05 PM
by reboog711 on 12/27/14, 5:01 AM
I have yet to have one of 'side' projects make me rich enough to fund my next side project, though... Really the side projects just keep me fresh and expose me to new technologies concepts in a way that I would not get from client work.
by jmtame on 12/27/14, 1:50 AM
by dsl on 12/27/14, 12:42 AM
It also helps me to work on things that I think really matter. For some people that is building an easier to use templating engine. For me, it's building security and reliability.
by sgold515 on 12/27/14, 5:17 AM
Also I have a physical calendar in my room. I want to go to the gym 70% of days in the year so cross a day off each time I do cardio/lift. I stole this technique from Jerry Seinfeld who used it for writing jokes :)
by joelrunyon on 12/26/14, 11:28 PM
by imkevinxu on 12/27/14, 12:49 AM
by ThomPete on 12/27/14, 2:39 AM
It doesn't matter if it's two our daily or two days a month. If you are working on something you like you will prioritize it.
So don't be afraid to kill a project that you don't want to prioritize.
by yarrel on 12/27/14, 3:39 AM
2. I structure them in sprints.
3. I have a clear life cycle for them (plan, implement, promote, evaluate) that feeds into 1 and 2 .
This means that it always feels possible and rewarding to work on projects. Hack your limbic system! ;-)
by itake on 12/26/14, 11:58 PM
by cheng1 on 12/27/14, 3:33 AM
I have nothing else to do nor I'm likely to achieve anything else.
by andersonmvd on 12/27/14, 12:29 AM
by gabemart on 12/27/14, 9:17 AM
by weka on 12/27/14, 1:12 AM
by aakilfernandes on 12/26/14, 11:34 PM
by neaanopri on 12/27/14, 2:05 AM
If i'm willing to endure major pain, it's no longer a side project.
by Bahamut on 12/27/14, 4:29 AM
by ratsimihah on 12/27/14, 2:56 PM
by dkopi on 12/26/14, 11:35 PM
by benhamner on 12/27/14, 2:45 PM
by j_lev on 12/26/14, 11:54 PM
by jokoon on 12/27/14, 11:17 AM
by pepon on 12/27/14, 3:59 PM
by bbody on 12/27/14, 12:44 AM
by fak3r on 12/27/14, 2:24 AM
by kelukelugames on 12/27/14, 12:27 AM
Not over working at day job.
by sagivo on 12/27/14, 6:23 AM
by jonmrodriguez on 12/27/14, 8:51 AM
by lotusko on 12/27/14, 6:52 AM
by gchokov on 12/27/14, 4:48 PM
1) Money 2) Fun
As simple as that :)
by bra-ket on 12/27/14, 11:50 AM
by Kenji on 12/27/14, 1:09 AM