Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How To Build Something Real (In Your Spare Time) (messynotebook.com)
155 points by thomanil on May 29, 2009 | hide | past | favorite | 41 comments


I built delicious while working a fairly grueling day job.

- 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.


I'm so undisciplined sometimes I wish I had my own personal drill-sergeant (akin to that guy from Full Metal Jacket) to kick my ass as soon I start losing my train of thought. . .does anyone else here consider their wandering train of thought a problem?

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.


I live and die by lists personally. I will make a list of things to do before I'm done for the day and I try to knock the list out. But I also have a drop-dead end of the day time. Don't pull an 18 hour day unless you're so deep in the zone you don't realize you've done it!


You sound like my Dad. . .which isn't bad but I've heard it all before. I don't know why I resisted this list making mantra for such a long time, but nevertheless, I gave in a little over a year ago and started making lists my college course work.

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 often suffer from the same day-dreaming and building castles in the air problem you described in your OP.

I have found that just writing down all these ideas allows me to focus on something else. I think the reason I constantly think about them is that I'm attempting to remember everything. The act of putting it on paper allows me to rest easy on that front.

I also prefer legal pads to everything else I have found, even electronic. There is just something about pen and paper and being able to cross out or annotate that helps me organize my thoughts. I sound like a luddite saying that, I know, but it's true.

I also spend some time every so often to go through my lists and consolidate or elaborate on items. Many times I'll find the reason I haven't been able to start on something is because it's too broad and ill-defined. Thinking about it and turning that one item into half a dozen more actionable (is that a word?) items helps get me started.


You're a very ready candidate for GTD. Get the book it'll change your life.


I'd like to hear some advice about this, too. anyone? anyone?!?

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)


hey tricky, I'm interested in what you imagine a drill sergeant would do? How would it work? I'm creating a productivity course which might involve something extra like this. Any ideas? Thanks!


I don't have the answer, but I can assure you that being an inspiration for others to get their work done, whilst trying to be creative yourself, can be pretty exhausting sometimes. :)


The trick to building something real for me is that it has to address a real problem someone has, that is addressable in some way in a relatively short period of time. If its a theoretical problem, or enormous, I will obsess over silly details and get lost on tangents that are most interesting to me but not integral to a solution... whereas if I have a clear vision of my goal, things just kind of flow into line and get done.


Happens to me too. I've found that having a collaborator really helps to get things done, because I don't want to let them down. I'm almost at the point where I won't start projects unless I have a collaborator.

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.


There are life coaches who will do this sort of thing:

http://www.stevepavlina.com/blog/2008/04/life-coaching/


You probably have adult ADD and need ritalin. Every person on this forum probably does too. I have it for one. Get checked.


Earlier today, my friend tried to convince me that the answer to this recurring predicament is to join the Marine Corps.


Since building something is only 10% of the battle (if that) you're going to want to apply the same general techniques to the other things -- web design, marketing, support, etc.

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.]


It depends what your battle is. This guide is more directed to hackers who want to build something cool than someone setting out to start a business.


I agree, I don't think the article had 'making a business out of it' in mind.

This is just hacking with a goal to finishing the project. A noble goal, I think. Though in my experience a difficult one.


Got any good resources for doing marketing in your spare time?


Just think about who you're building the product for and how you can help them.


If the product's built and you have a small happy/excited community, how do you market then?


Advertise. There is a reason that ads pay for most of the stuff we like on the internet -- they work!


> Unfortunately, [basic project management principles] often seem to go straight out the window when programmers sit down to work on their own time.

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?


I tried Basecamp once for a side project, but I quickly found myself not using it. No particular reason. I just didn't feel like I got much value out of it.

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.


I have noticed a bug tracking system works better for a one-man one-project setup. You can pretty much express everything in tickets/bugs. I am using lighthoseapp.com and its working just fine for me.


This sounds like it would turn my hobbies into yet another job. I understand where it's coming from, but sometimes I like working on things that I don't have to finish.


Most of us are trying to create something of value that will allow us to get away from the corporate job frustrations. In the end you might be working longer/harder than that frustrating job, but at least it will a) provide for you and your family b)something you are proud of c) enjoy while doing it

A finished project will help in that direction.


Oh, I can definitely sympathize with that position, having been in it myself, and I didn't mean to belittle the efforts of those currently trying to escape.

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.


It's definitely difficult. As you lose momentum, it quickly diverges into another job and that can quickly lead to burnout or lack of motivation.


At first, some of these items seem to conflict (like "something every day" and "let life intrude"), but these are great rules of thumb. From what I've seen, too many developers just set out on a path without really mapping it out first.

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.


You can do 10 minutes every day. The important thing is to feel progress every day, or else you get depressed. The same advice is given to writers for the same reasons: write something every day, even if it's terrible. It keeps you feeling like you're moving forward, and that helps you break through any mental blocks.


I'd say the number one bit of advice would be "Get people to use it".

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.


... and leave an easy task to pick up when you resume.


I think that's an important point. I tend to have a few recurring ideas that I come back to. The trouble is, I have a bad habit of not keeping each project in a well maintained state. Most times when I come back to something I pretty much start again... ugh.


You know how I motivate myself? I would subscribe to an oversized slice @ slicehost to remind myself everyday, I'd better get this thing out as soon as possible, otherwise I would end up paying those un-utilized resources as everyday passed by. It works magic, I ended up releasing my beta version within 4 months instead of the planned 8-12 months.


For me and my company, my ability to finish things has had a lot more to do with me believing in the project.

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.


First, know when "your spare time" is. After "completing" something (or just calling it quits for the day), go for it. Doesn't matter what gets "built". Just knowing you've done something enjoyable for yourself, whether it's tangible or not, is an accomplishment in itself. Second, if serious about building something others can benefit from, create that list...a plan in action...whatever you want to call it. Then you can measure your progress until it's DONE. Good luck.


I think the golden rule here is: build something that is going to be useful for yourself too, for the next years. If you are not an user of your own programs it's hard to get motivated. For example this is how I abandoned the development of hping. Because I stopped doing security for work I started using hping rarely, and I was no longer motivated to continue the development.


The "something real" that was created in the article is a mind mapping web app. Clearly there is a need for a really good mind mapping and idea tracking software, since so many people are taking a stab at the problem (myself included).


Personally, what I lack the most is that "small amount of external pressure", but I've been trying to fix that, trying to get out of my vacuum and start collaborating with people.


Nice post. Great reminder for those of us who tend to put big, imaginary barriers between ourselves and finishing anything!


It seems like so-called project management is mostly ideas adapted from the the great eastern traditions - yoga, buddhism, zen and eastern way to live in general. You can get almost any old book and you will find something called 'the way' - 'do'. Aikido is a good example, Bushido, and related teachings.

btw, I admire those genius who drawing users-guides and promote projects in anime style. =)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: