- I had a deck of index cards and a binder clip. Have an idea, write it down.
- I'd sit down and try to do just one thing. Look through the cards, find something easy. Even a little thing. After that it was okay to go to bed.
- Keep the code chunks small. Make it easy to page in all the state for working on that bit of code. Everything but the file that actually rendered a single bookmark fit on a single screen.
- Understand that some days you just won't get anything done. Go with it.
- Get something out there. Feedback is incredibly motivating.
- Relentlessly cut things back. What's the minimal amount you have to do. What can you remove? What can you get rid of? What's the minimal design that has conceptual integrity? If it's not necessary, get rid of it. I find that lopping off chunks of the ideas mean that other parts of the code and interactions with other parts of the system become less and less complicated.
- Don't start working on something until it's reasonably complete in your head. It's ok to doodle in code, but don't spend hours building something that is conceptually fragmentary. Sometimes I think about an idea for months. There are ideas I came up with 5+ years ago that I'm still noodling on.
- Keep an idea log. If you aren't working you aren't generating real ideas.
- Be ready to abandon an idea for another one if you find yourself thinking about it more.
Usually I spend so much time trying to figure wtf I should do that I either end-up micro-managing some code snippet that doesn't matter or day-dreaming about how awesome my hypothetical startup is, which frankly doesn't do anything at all!
How do you guys manage to do work that really matters on your own time without anyone else there to keep you on task, implement a set constraints for you to work within, or tell you what the problem is? i.e. gimme some tips to self-manage my train of thought.
But a list in college is different since the assignment is my constraint thus it is much easier to work within because the assignment or project provides the problem and upstream requirements for me. For some reason reading software requirements, doing a mathematical proof, or looking over case diagrams for pre-existing problems puts me on the right train of thought by forcing me to focus on how I'm doing it not on what I'm doing.
I've often thought it would be awesome to find a personal assistant/drill-sergeant/project-manager to keep me on track. I can't figure out how to pull that off, though...
Instead I remain frustrated with myself (and my 42 minute attention span)
Maybe the next step is to have users? I have an app I'd like to have users for, but it isn't quite ready yet. Maybe once you have actual users that will keep you motivated as well.
My favorite three words are "Automate, outsource, and eliminate". If neither you nor your customers require your personal attention to X, you should ideally not be X-ing, because you and your customers require your personal attention on enough things as it is.
[Incidentally: Telling your parents and friends about your internal deadlines as a motivational tool is pretty useful. Telling your customers is a great way to get unproductively stressed when life gets in the way. Your parents and friends will still be there later if your schedule slips a week because your girlfriend needed more face time. Your customers, on the other hand, tend to be a little more insistent that when you tell them 2.0 is coming out on July 1st that it is actually out on July 1st.]
This is just hacking with a goal to finishing the project. A noble goal, I think. Though in my experience a difficult one.
Well stated. When you are working on your side project and not being paid/accountable to others, its easy to mismanage your resource (yourself).
Does anyone use the free 1-project version of Basecamp for hobby project management?
Trac is pretty nice because it's lightweight and is tied right into my repository (if you use SVN). It seems to fit my workflow better.
A finished project will help in that direction.
I was speaking as someone who is already doing a startup. I've made the mistake of trying to have "serious" side projects at the same time... it's not a good idea.
In my own experience I have often used the excuse that my project is so small that I don't need to write anything down for it, but that always comes back to bite me when I have to "let life intrude" for a week or so - I come back and I'm totally lost as to where to go next. Having lots of little milestones makes things go much more smoothly.
Looking back at side projects that are sitting on a disk somewhere, abandoned, they went that way because no one was using them.
Once you manage to get some people using your side project, it's a lot harder to just shelve it, and a lot easier to iterate and grow.
In my limited experience, you don't invest your time or your money into a startup. You invest yourself. You sacrifice your health, your relationships, and your political capital to make it work. And you don't do that because you have to or you want to. You do that because you only have one goal, and that's getting your company off the ground.
There's nothing that I've ever invested myself in so fully as my company, aside perhaps from my marriage.
btw, I admire those genius who drawing users-guides and promote projects in anime style. =)