I turned my side project into a unicorn job. It only took about 10 years of hard work...but I did it the hard way.
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.
If you find that you lose motivation or get bored with a side project then I think you really need to ask yourself why you are doing it.
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.
For me, a combination of these three things has proved to be successful:
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.
You will lose steam at some point. Go with the flow; take a break, try something else, come back to what matters. I put del.icio.us down for 6 months very early on.
Is that you Joshua Schachter? Del.icio.us was one of the greatest, and most underrated ideas to come out of the early web. For a while I would use del.icio.us as a search engine because it often gave better results than Google. If you can beat Google in search even in a limited area you are onto something big. (Am I remembering correctly that del.icio.us "static" pages would actually show as top Google hits?) Sadly del.icio.us has languished over the years under various owners. I still use it though and have a few thousand links saved.
I think it might be interesting to note that different people have different motivations for "side projects" (as well as different definitions for side projects!).
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.
Since you mentioned it, me and at least 2 other people have written Tetris in 256 bytes. I used 80286 assembly and you probably can't get away with that these days - even when I did, it was already old. 64 bit code will probably be much bigger. But the main trick besides the right instruction set is to use XOR for drawing, erasing, and collision checks. Have fun!
I agree with you. It's a matter of taste and purpose, and this is dynamic, so you'll probably want to see them all in time.
My motivation has always been focused on deliberate practice (i.e., a fancy way to approach personal and professional development). I have been through the app-based MVP and the personal mind-dump. I recently started a new blog, which intends to be a mixture of the two: personal interest and passion for Artificial Intelligence, and an approach to consulting:
I view my side projects as the main work, and anything else as merely a way of supporting them. Also, I have enough side projects that if I lose interest in one I can switch to another.
Set small goals for yourself that have a visible or measurable impact. Each time you complete one, you'll feel a sense of reward. The important thing is to work with your psychology not fight it.
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.
Don't be afraid to drop a project. I tend to have a handful of projects going at any one time. A good project will stand out and it will pull you through to completion. Pretty much all of my significant jobs were spun out of my side projects. My current job started as a side project that I prototyped in a few weeks. A company was built around it and now our company is part of Google. This. https://www.youtube.com/watch?v=h2OfQdYrHRs
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.
"How do you keep yourself pushing code when life gets busy or you just get bored?"
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.
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.
What do you think a side project is? I have tons of them, but none of them feel like work to me. I get great joy out of them whenever I work on them (which is quite a bit).
I suppose it's a bit of a catch-22. If side projects were like this for everyone, one wouldn't be asking how to motivate oneself.
I enjoy programming, and making things, but my side projects are the only code I write which really lets me be creative. So I keep going because I want to like what I do.
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.
I just finished with a side project. I knew going in that I would lose motivation for reasons left and right, even though it's the right project for me to work on. In order to keep up my motivation, I started "Side Projects Dinner" - I would make dinner for my friends every other week, and they would give me feedback on my project. It worked great, and we've had quite a lot of fun. And of course, my friends are also getting feedback on their own projects and thinking of new project ideas. Highly recommended!
Great idea about sharing the ideas around. I can use this idea, but currently 100% of my local friends are non-technical, still it'd be interesting to show an idea to friends. Friend-development approach?
A super easy way to keep yourself accountable when doing something like this is with the contribution graph on Github. My desire to not break my streak keeps me working on my projects every day.
That works for some, but not others. I have gone weeks and once even months with not doing a thing (intentionally). Distancing myself from it has always worked out well for me.
I get energized about my side project when I get suggestions, comments, or other feedback from users. I can go months without doing anything and then I'll get one person asking for a feature or change and I'll work for a few hours or days to get it done.
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.
Not just bug reports and feature requests. Compliments do a little wonder in fueling motivation, so the more things you give people to comment on, the greater the chances of hearing back will be.
Keep a public work log, publish your progress and encourage feedback. Not just commit history on GitHub, something a bit more humane and substantial. Something to look back and see how much you've accomplished so far.
How? By wanting to work on things that you want to work on, more than you want to watch TV, or play a video game, or do anything else.
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
Perhaps a better (or at least related) question is: how does one find the time to put into side projects on top of staying competitive as a programmer in an environment where 45-55 hour weeks are customary and expected, and also achieve some kind of work/life balance involving significant others and children?
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.
The reason the math doesn't work out is that you're using the wrong math. If my job expected 55 hours/week from me, I'd look for another job. If life balance is really important for you, look for a job that allows you to achieve it.
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.
- Trello, and break it down to the most granular set of tasks that you can.
- Put some real easy ones in a list called "low-hanging fruit"
- When motivation is low, pick one or two off to get going...if motivation doesn't come back that day, just rst. But often the mere act of getting going will move you along
Like others here, if I lose steam on one, I switch to another. The novelty effect is real. To support switching though I have to use a notebook. As I get to the point where a project is feeling more drag than energizing, I write down everything about it that I have in my head at that point into my notebook. Then I find another project I had left in that state, read the page(s) on it, and spin it up.
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.
Anything larger than a small project will need to be put aside for a while from time to time (for whatever reason), and I've found that making it easy to pick it up again is one of the most important things you can do.
My strategy for this (admittedly most suitable for software projects):
1) Write down your large, fantastic vision for the finished, complete project.
2) Write down the smallest possible feature that would bring you some utility. MVP, if you like.
3) Take this requirements and write an automated test at the highest level of abstraction possible. It should almost read like the MVP requirement you just formulated. That doesn't have to mean BDD, just something you can read easily.
4) Implement until the test passes.
5) Go to 2.
What I've found over the years is:
- Quickly reaching milestones of utility are key for keeping motivation while working. This is obvious, of course.
- The written down vision brings the motivation and big picture plan back when picking things up: Get your blood pumping again!
- The automated tests help keep implementation going when your drive falters. What should I do know? You should just make the test pass. Nothing harder than that. No need to think super hard. Just try to make it pass.
- The automated tests help you get hacking again without the immediate fear of breaking things: Get the ball rolling again, quickly and easily!
- The automated tests also serve as your requirement specification so far: You can easily see what already works.
Side projects are so important, and one should make it as easy as possible to sustain and restart them! Good luck!
One thing that works for me is to get lots of external feedback on my project. If at least one other person beside myself has some interest/investment into my project I am a lot more inclined to continue working on it. When I am the only one with interest... Well, I tend to lose motivation pretty quickly.
I've come to strive for what I call the minimum overhead principle. If I have a project going on I make it as easy as possible to continue (editor open, pad and paper at hand etc) and try to do at least a few minutes per day. Sometimes it's only those few minutes and sometimes I can get a few hours in. And those add up.
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.
[+] [-] gavanwoolery|11 years ago|reply
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.
[+] [-] plinkplonk|11 years ago|reply
Sounds fascinating. Could you give more details? What was your sideproject? What did you do to turn it into a unicorn job? Thanks in advance.
[+] [-] rachelandrew|11 years ago|reply
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-...
[+] [-] karlmdavis|11 years ago|reply
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.
[+] [-] joshu|11 years ago|reply
[+] [-] julienchastang|11 years ago|reply
[+] [-] zxcdw|11 years ago|reply
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.
[+] [-] otaviogood|11 years ago|reply
[+] [-] atrilla|11 years ago|reply
My motivation has always been focused on deliberate practice (i.e., a fancy way to approach personal and professional development). I have been through the app-based MVP and the personal mind-dump. I recently started a new blog, which intends to be a mixture of the two: personal interest and passion for Artificial Intelligence, and an approach to consulting:
http://ai-maker.com/
Programmers tend to say: ABC, which stands for Always Be Coding. I apply it to anything I like and that I intend to get better at.
[+] [-] motters|11 years ago|reply
[+] [-] Kiro|11 years ago|reply
[+] [-] zxcdw|11 years ago|reply
[+] [-] deet|11 years ago|reply
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.
[+] [-] otaviogood|11 years ago|reply
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.
[+] [-] Htsthbjig|11 years ago|reply
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.
[+] [-] burntsushi|11 years ago|reply
I suppose it's a bit of a catch-22. If side projects were like this for everyone, one wouldn't be asking how to motivate oneself.
[+] [-] eru|11 years ago|reply
[+] [-] krapp|11 years ago|reply
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.
[+] [-] cgallello|11 years ago|reply
[+] [-] sr3d|11 years ago|reply
[+] [-] lukasm|11 years ago|reply
[+] [-] dwetterau|11 years ago|reply
(https://www.dropbox.com/s/98kngmtwzrsmvjg/Screenshot%202014-...)
[+] [-] Spearchucker|11 years ago|reply
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] Osiris|11 years ago|reply
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.
[+] [-] eps|11 years ago|reply
Keep a public work log, publish your progress and encourage feedback. Not just commit history on GitHub, something a bit more humane and substantial. Something to look back and see how much you've accomplished so far.
[+] [-] alexggordon|11 years ago|reply
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
[+] [-] danbmil99|11 years ago|reply
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.
[+] [-] HeyLaughingBoy|11 years ago|reply
[+] [-] Daishiman|11 years ago|reply
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
[+] [-] jmadsen|11 years ago|reply
[+] [-] ChuckMcM|11 years ago|reply
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.
[+] [-] parley|11 years ago|reply
Anything larger than a small project will need to be put aside for a while from time to time (for whatever reason), and I've found that making it easy to pick it up again is one of the most important things you can do.
My strategy for this (admittedly most suitable for software projects):
1) Write down your large, fantastic vision for the finished, complete project.
2) Write down the smallest possible feature that would bring you some utility. MVP, if you like.
3) Take this requirements and write an automated test at the highest level of abstraction possible. It should almost read like the MVP requirement you just formulated. That doesn't have to mean BDD, just something you can read easily.
4) Implement until the test passes.
5) Go to 2.
What I've found over the years is:
- Quickly reaching milestones of utility are key for keeping motivation while working. This is obvious, of course.
- The written down vision brings the motivation and big picture plan back when picking things up: Get your blood pumping again!
- The automated tests help keep implementation going when your drive falters. What should I do know? You should just make the test pass. Nothing harder than that. No need to think super hard. Just try to make it pass.
- The automated tests help you get hacking again without the immediate fear of breaking things: Get the ball rolling again, quickly and easily!
- The automated tests also serve as your requirement specification so far: You can easily see what already works.
Side projects are so important, and one should make it as easy as possible to sustain and restart them! Good luck!
[+] [-] lholden|11 years ago|reply
[+] [-] fsloth|11 years ago|reply
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.