I’ve read lots of fascinating posts on the web about startups that failed. Maybe the idea was too far ahead of its time, or the cofounders didn’t get along. Usually the startup just ran out of money. Even if you’re lucky and get funding, it won’t last forever. It’s hard to build up enough revenue to get the rocket off the ground.
My story is a little different. I’m quitting before I’ve even really gotten started.
I had a lunch meeting yesterday with a friend regarding possible web development work for his company. The meeting was amicable, but there wasn’t any work available for me. When I came home I was disappointed, naturally, but it got me thinking about what I really want to do with my life.
One thing that’s not going to work is working at a regular company as a regular programmer. The language I’ve fallen in love with, newLISP, isn’t something that I can just go and get a job using. The industry has standardized on VB.NET, C#, PHP, Java, and to a much lesser extent Ruby on Rails. I can code in any of these if I had to, but they won’t make me happy, and if I’m unhappy I’m not likely to be productive and useful. I’d always be thinking about how much faster and more efficiently I could be coding in my own little niche language. I have real-world data to back this up. At my last job I was actually able to keep up in features (my application was better in performance and had fewer bugs) with a development team of five people including one manager who were rewriting my application using C#.
So when I thought about this, and believe me I thought about it a lot, I figured that a better plan would be to start out on my own. After all, if I can keep up with a team of five people, and only have to pay my own way, won’t that be a lot easier? It seemed like a natural fit. I would blaze a trail and develop amazing new applications on my own! Be my own boss!
What I didn’t realize is that being the boss is actually no fun, at least for me. It’s easy to complain about your boss when it’s another person. When your own boss is you, you’re perpetually mad at yourself. Why are you not working harder? Why aren’t you figuring out ways to make money? Why don’t you spend more time coding?
I spent amazingly little time coding. Because I was so efficient, I could get a few days worth of work done in a couple of hours. But then I’d stop. I set up a bunch of websites and got some neat features working on them, and then I’d waste time watching Starcraft or playing games. Why was I doing this?
I was thinking about it yesterday, when I went on my mid-morning run. I enjoy running, but I’m not a good runner. My lung capacity is pretty low, and I don’t push myself hard enough to improve my fitness level that rapidly. Starting a business is kind of like saying you want to run, not just for fun, but as a way to make a living. You need to be absolutely dedicated to it. You need to be a little crazy to run yourself right to the edge, to risk serious injury in pursuit of ever-increasing goals.
I remember running past long swathes of wild blackberry bushes in August and thinking that I should really go out and spend a few days just collecting them to freeze and make blackberry crisp. Instead, I would just grab a few berries as I ran, savoring the sweet taste but watching as thousands of berries just went to waste, picked by no-one, washed away by the rains and the end of summer.
It’s a lot like how I approached starting a business. It was fun to have a little taste of it, but I didn’t want to put in the incredible level of effort it would require to do it properly. And of course, there’s always the fear of failing. If you didn’t put in your best effort, you can’t be too disappointed in yourself, right? I know a few professional Starcraft players who had this approach. It didn’t end well for them. Success takes hard work. You have to slog through it to get what you really want.
But when I thought about it some more, it’s not like I was this lazy slob who didn’t put any effort into anything. I did write a whole web development framework from scratch. I did launch a couple of websites. I learned a lot and gained valuable skills that I can use anywhere that I go in the future. I can’t think of this as a waste of time.
Oh, and there was one other tiny little thing that I did over the last few months. I wrote an entire novel.
The truth is, while I was struggling to find motivation to be a software entrepreneur, I was already running a startup of sorts. Being an author is a lot like starting a business. You have to put in the effort to make a decent product (in this case, books and short stories), you have to spend a ridiculous amount of time on marketing (authors have to relentlessly self-promote on Twitter and blogs and their own website, as well as doing giveaways and appearing on radio shows and podcasts and writing panels) and you have to do all of these things consistently to try and grow a tiny revenue stream into something that (hopefully) becomes profitable.
It turns out that all this time I was doing all of this, and doing it consistently. I wrote 1,000 words every single day, without fail, and every day I would read blogs about marketing and go on Twitter and try to get the word out about my writing. Even though it wasn’t generating much revenue, it was more than my web-based businesses were doing (which was zero!)
At some point, I had to decide what I really wanted to do. Which would I keep as a hobby and which would I take seriously as a profession?
My wife, who knows me better than anyone in the world, including myself, found a way to help me decide.
She held me from behind, and put her hands on my chest, and squeezed gently.
“How do you feel about programming?” she asked.
I had to answer honestly. “I feel like I’m being crushed,” I said.
“Okay, now let’s try this again.” She released me and then grabbed me again in the same way. “Now how do you feel about writing?”
I wasn’t sure. “I don’t feel anything,” I said. But she wouldn’t leave it at that. She did the exercise again. I still felt like I was being crushed when I thought about programming as a career. But the feeling when I thought about writing was different.
“I feel like I’m uncrushable,” I said.
So I had my answer.
Now, I’m not going to stop programming. I’m still planning on developing JetCondo, for example, my RSS reading platform. But I’m going to develop it for myself, as a hobby, and not try and make it my livelihood. I’ll still work on newLISP on Rockets as well, and if any future employer can get some benefit out of my work with these tools, great. But it’s not necessary. Ironically now that I’ve made this decision I feel like working on it more than I did before. Isn’t that weird?
It also doesn’t mean that now I’m going to take on the stress and pressure of making my fiction writing be my sole income. The artist Lynda Barry had a great quote about this: she compared art to a beautiful baby, and how artists are immediately expected to jump on the baby’s back and yell “I’m riding you all the way to the bank!” It doesn’t work that way. You have to care for and nurture the baby, and when it grows up maybe it can take care of you. In the mean time, there are other ways to make a living.
Writing is my baby. It’s time to nurture it and let it grow.
Thanks to my good friend Lois, I found out about the Startup Grind: Vancouver event that went on yesterday. The special guest speaker was Boris Wertz, who cofounded JustBooks, a used book trading site that was acquired by AbeBooks and then later Amazon.
Boris had some great stories about the pre-dotcom boom days of the late 1990s, when Web 1.0 ruled the world for a very brief period of time. Like many a successful entrepreneur, Boris became an angel investor and is now a venture capitalist, helping to fund the next generation of startups.
The most interesting thing Boris said was when someone asked if succeeding as an entrepreneur was easier today or fifteen years ago. He argued that it is harder to be successful today. Ironically, the reason is because it is so much easier to start a company than ever before!
Back in the day, it took $200,000 of venture capital just to purchase the server hardware and software needed to just have a website! Whereas today you can just use Amazon EC2 and start a website for free, using free software tools (like, say, newLISP on Rockets!)
So because it cost more to get off the ground, there were far fewer Internet companies back then. Once you got funded you were off to the races. Now, sure, it’s easy to start a website, but you have to compete with the millions of people who are also starting websites.
I see parallels in this story to the publishing industry. Back in the day you had to get approved by a publisher, but once you did, you were guaranteed sales because you were in the bookstores. Now, anybody can publish, but making money is harder.
It’s just the way the world has gone, however. I think it’s a mistake to try and live life by the scripts that worked for people fifteen years ago. We have to write our own stories.
I met a lot of interesting people at the networking portion of the talk. I was glad to see that it wasn’t twentysomethings-- there were lots of people of all ages, and lots of people trying different paths to entrepreneurship. One interesting fellow is building a company all by himself using just the server in his basement, but he has some great ideas. I’ll be checking that site out when it launches next week.
Overall, it was a great event. It made me realize that there are many different paths to starting a business, and following the techniques that worked for others in the past may not be the best idea. We all just have to muddle through and figure things out ourselves. As Boris said, if he pitched his old team and idea to his venture capital company today, he wouldn’t fund himself!
I’m still figuring out my own path. Like many things in my life, I’m confident I’ll get there eventually.
I know I'm late to the party on this, but I'm really loving Amazon's EC2 cloud computing service. I'm saying this as a guy who loved to build servers with my bare hands, often blessing them with my own blood after touching a sharp corner. I literally bled for these things. Now, I'm not sure I ever need to set up my own server again.
My startup project, JetCondo, runs on a "Micro" instance, which is a paltry little thing by server standards--a whopping 8 GB of storage space and 612 MB of RAM, and whatever amount of CPU they feel fit to dribble out. Still, it's faster than my home server ever was, and it's cheap. At current rates it works out to about $10 a month. My home server ate up about $7 per month just in electricity.
But the value you get out of that extra $3 is immeasurable, especially for a startup. Today I wanted to create a new server instance so that I could start building a web application for my very first consulting client. I had almost resigned myself to going through the half-day dance of installing Ubuntu, configuring Apache, setting up newLISP, etc... and then I realized: hey, wait a moment! I can just copy my existing instance, can't I?
Turns out you can. You have to save an image of your current system first, and by default this shuts off your running server while it makes the copy (it's kind of scary when this happens!) but in a couple of minutes it's back up and running and now you have your own personal image file for your server. Then creating one is a matter of a right click, selecting "Launch More Like This", clicking Next a couple of times, and choosing your own AMI image from the list of "My Images".
In a minute or so you have cloned your server, and it's exactly the same as the one you had. It's like magic. Instead of half a day's work it took a few clicks and a couple of minutes. And of course you can launch as many as you need or even script it so that new instances are launched as needed given incoming traffic, but that's something for the future. Right now it's just cool to report that it works, and it's a great time saver.
Launching a startup on your own can be quite lonely at times.
At this delicate, embryonic stage, you don't even really want to discuss what you're doing with anyone, except maybe your wife. It's too early. None of the stuff is ready yet, it's all existing in your head, and there are a billion and one things to do to get it ready.
I've found a little solace in reading other startup blogs, although you start to realize just how greatly the odds are stacked against you. Most of these startups fail for one reason or another.
So you have to be okay with the idea of failure. Personally, I'm completely fine with it. I've got a set deadline and a set of things I want to accomplish in that time. After that, I'll be going back to more traditional employment, barring the extraordinarily unlikely chance that I'm bringing in enough money from the startup that it's not necessary.
It's more of a personal thing with me, a chance to prove I can do something and create something great on my own.
But it's definitely lonely sometimes.
The final part of my semi-review of The Lean Startup deals with the lesson about Engines of Growth. Startups need to grow or they run out of money and die.
There are basically three engines of growth: Sticky, Viral, and Paid.
The Sticky engine relies on some sort of lock-in to keep customers using the product. For example, people would stay on Facebook because all their friends and family are there. Another example would be a proprietary database or file format that people would stick with because the cost of switching would be too great. You don’t have to have 100% stickiness, because you can still search for new customers, but the rate of gaining new customers has to be higher than the rate you are losing them.
The Viral engine is the trickiest but perhaps the best bang for your buck. Basically, users tell friends and family about your product and you get new customers via word of mouth. Basically you need each customer to bring in more than 1.0 other customers to have steady growth. If customers bring in only one other person each, growth will be steady but slow. Lower than 1.0 and growth will slow down and eventually stop. This number is the viral coefficient.
The Paid engine is the most traditional: you buy advertising, and if the cost of gaining a new customer via advertising is less than the money that customer brings in, you’ll make a profit. Traditionally, companies fed that money into more advertising, in a kind of feedback loop that ended up with national ads in every magazine and on every TV show. This is how big-name brands like Coke and Tide became popular, not because the product was actually that good--in fact, the two are pretty mediocre--but because the advertising was very effective.
The Viral engine is probably better for startups who can’t afford a lot (or any) advertising, but the challenge is that you have to build a compelling product that people will actually like so much that they will evangelize others. Tivo made good use of this method, as do a lot of web-based startups.
The important thing to remember is that no matter which engine you choose, you need to be able to measure whether or not what you are doing is working. So for the Sticky model you need to know your customer retention rate and your new customer acquisition rate. For Viral you need to know the viral coefficient. Finally, for the Paid model, you need to know how much it costs to get a customer and how much each customer brings in.
It sounds simple but a lot of startups don’t bother to analyze all these things and thus end up growing too slowly or not at all.
Speaking of startups, I did a little work today on JetCondo.com, installing the Solr 4.0 database. It’s not much but it’s something. I also made a new comic. Go read it!
I’m in the process of installing Solr 4.0 on my web server. This is a tool I used at my former job to search things really quickly in interesting ways. This is something I want JetCondo.com to be able to do, so it’s a hurdle that must be overcome.
I met with another ex-coworker (an early member of the ever-increasing club of people laid off by my company) yesterday and we had an interesting chat about software and selling apps and the web and how things might be monetized. There are a lot of options, but my primary concern is how to make advertisers happy while not making users unhappy with spammy, intrusive ads. I was reading through an ancient Penny Arcade post (circa 2003!) and Mike Krahulik was talking about how all the advertisers wanted flashy, animated, pop-up ads, but he personally hated them and refused to sell ads like that on his site.
Here’s the kicker, though: the ads on his site got more engagement and more sell-through than the flashy ads on other sites.
Because the ads on his site were for things that people who were on the site already were actually interested in.
There’s a lesson there, somewhere...
It’s much more important to spend your time building your actual product. Logos and color schemes and font choices and stuff are fun, but they shouldn’t take time away from actually, you know, making something.
Still, it’s nice to have an image to focus around. I doodled something that looked like a flying building today when I was writing mockups and design diagrams for JetCondo.com. (Those who know me know that I always HATED planning and writing documents, but it turns out that it wasn’t that bad)
Oh, I also updated the server from Ubuntu 10.04 to 12.04 LTS, which was somewhat harrying (I always worry that the Internet will drop out halfway through and I won’t be able to SSH in again, but everything was fine). This was a big maintenance task that I had been putting off, so it’s nice to have finished it.
Anyway, here’s the logo.
Tomorrow the plan is to put some real rockets on that thing.
This morning I was taking care of more administrative stuff, so I didn’t have time to work on my creative projects. But I’ve committed to doing a new comic strip on Wednesdays and Fridays, so I made one.
Doing comic strips is really outside my area of expertise, but I’m enjoying slowly building up the universe and characters. The drawing part still feels like a chore, but I learned how to use the Line tool in photoshop to make backgrounds that at least have straight lines!
While I was writing the comic I was watching the old BBC show Brideshead Revisited on the TV. It made quite a juxtaposition: aliens and spaceships with British historical costume drama in the background!
I didn’t do any work on Jetcondo.com, but I’m doing a lot of thinking. I might actually have to do some (gasp) planning for this thing. I’m kind of excited about it.
I'll blog again on Monday. Have a great weekend!
The first day is exciting, as you make all your amazing plans for world domination and let imagination fuel your wildest fantasies.
Then the second day comes, and you realize that in order to achieve any of it, you’re going to have to sit down and do work.
A lot of work.
Suddenly all the dreams seem like they are an infinite distance away, and you can’t possibly do everything you need to do to achieve them.
My solution for getting out of this funk was just to do something, even if it wasn’t directly related to world domination. In my case, I did some personal financial administration stuff that I had been putting off for months because I was "too busy". Ha! Can’t use that excuse now! But after completing this task, I felt a bit better.
So I enabled my new Rockets forums (the web development framework I built)
Then I made a post on Google+ about it, just for fun.
So I did something, which was better than nothing. Still a long way to go, but at least I’m moving!
Well, I said that I would be doing daily updates for a while, so here we go. These probably aren't going to be very long.
I registered a new domain today. Jetcondo.com. Don't go there, it doesn't do anything yet (just redirects to jeremyreimer.com). The name doesn't have anything to do with jets or condos, but hey, Amazon doesn't have anything to do with the river or the rainforest either.
It's a working title for a new piece of software I am developing that hopefully will become something interesting. I'll talk more about it as I create it.
I'm also trying to mix in some other projects that I haven't had time to do, so I made a new comic strip for Star Gamer. The art is still pretty bad but hopefully it will get better if I keep at it a bit.
See you tomorrow!
I'm a writer and occasional programmer. I write science fiction stories and novels.
I am the writer for the upcoming documentary series Arcade Dreams.
I also write technology articles for Ars Technica.
I'm the creator of newLISP on Rockets, a web development framework and blog application.