centripetal.ca

Preliminary thoughts on bootstrapping

Now that I've reached somewhat of a first milestone with my sideproject-slash-startup Dojominder, I thought I'd jot down some notes on what I've learned about the bootstrapping process thus far. These have mostly been stated first or reiterated elsewhere so this is more of a reminder to myself — I now know from experience that people that have said similar things are both smart and right, and thus are worth listening to in the future.

Fatigue and Motivation

OK, most obvious things first. I am a single founder, working a full time job, with a wife and kids. This is basically the holy trinity of what not to do, and I understand why now.

I settled into a routine of working a full day, coming home to be with family, and then working again after the kids went to sleep. This is actually sustainable, but you have to be careful: (a) you must ensure you don't shirk your other responsibilities — set aside time to do your share of the housework and spend proper time with your family (and when you're doing that your laptop is closed); and (b) it's easy to throw off your sleep schedule, not sleep enough, or get annoyed by the need to sleep when you're on a roll.

Working by yourself, you can also dry up on motivation — cf reason number 1 on Paul Graham's list of mistakes that kill startups. So you need to do something, even if it's small, every day. This seems deceptively doable — after all, you'd break tasks down into small subtasks anyway — but in reality it doesn't seem to work like that. And if you step away from it from a small period (like a few days), it becomes harder to pick it up again, not only because it's not loaded fresh in your head any more but also to summon the motivation to get excited. This also means it's catastrophic if you take a real break. I did this, and I think it was a mistake that might be unrecoverable.

You also need inspiration. It can be envigorating to see the cool stuff that other people are doing, but again you need to be careful not to let that lead you into prioritizing the wrong things, or actually demotivate yourself by being reminded how large your task is and making it look more insurmountable.

Know your reasons

A lot of startups grow out of a need the founders have (the well-known "scratching your own itch") or as a hobby/learning project to play with on the side. When you're merely writing for yourself, you're not necessarily focusing on building a business; you just have a problem you want gone. Which is fine, but you need to understand how it's affecting your decisions, and how they'd change if at some point you do want to start making money. For example, if I want to learn more about frontend work, maybe I write all my own HTML/CSS/JavaScript — but if I want to buld a business, maybe I just spend $35 on some template somewhere and slap it on. It can be tricky to figure out where you are.

Don't rush

With so little time to dedicate, you're obviously going to be moving at a slower pace. Thus you can't gauge your progress based on what you're used to; you're going to work for two months, look at what you end up with, and say to yourself "Pssh, I could build that in about two weeks". Well, you did build it in two weeks, just broken into tiny pieces and spread out a lot.

So it's hard to avoid feeling like you're in a rush. Unfortunately it's important that you do, because being rushed can lead to poor decisions. And nothing is worse, when time is tight, than having to go back and redo something or start over again.

Additionally, work is harder and slower when you're wearing more than one hat at once. It's common to end up thinking about UX and frontend code at the same time, for example, or backend and deployment. Break these into discrete subtasks if possible, so it's always clear what you're working on.

It's not free

A common attraction about bootstrapping is that it appears to basically be free: apart from trivial server and domain registration costs, there's nothing preventing you from starting. And if it doesn't work out, "the only thing lost is time". This is true, but I think it drastically underemphasizes the opportunity costs involved. If you're going to spend most of your spare moments working, you'll have less time to attend meetups, contribute to open source projects, have any other time consuming hobbies, or for that matter do anything that's extra stressful or occupies a lot of brain space, like take a new day job. There's lots you can't do when you're trying to get the ball rolling.

So, why do it?

This all doesn't paint that rosy of a picture, agreed. But I think it's still worth doing. You learn a lot and get to keep your skills sharp. It can be fun and exciting, and it definitely beats 2 hours of TV every night. And let's face it, as dedicated geeks we know we're going to be working on something on the side anyway, so it might as well be something that might have a future. I don't belive the difficulties mentioned above are insurmountable; it's just that they're not necessarily obvious, so you don't know to look out for them. But with experience you do, and you gain the meta-wisdom from putting in the work learning how to work.

Comments