To start over or continue

The Philosopher Developer

June 15, 2012

When I was a kid I played a lot of video games. And there was this funny thing about the way I played them: sometimes, even if the game was going well, I had this impulse to restart. Maybe because I hadn't played the level perfectly—I had lost some health, or hadn't collected all the coins, or missed the secret passageway. Or maybe it was just because I liked the beginning of the game so much I wanted to play it again. In any case, it's an impulse I remember quite clearly, and one which carries over into real life now that I'm an adult.

An interesting byproduct of this tendency of mine to replay levels in video games is that it made me very good at the early stages. If I played level X over and over in order to collect all the coins, eventually I would get to a point where I could basically breeze through most of the level. This isn't altogether too surprising, of course, given the existence of the phrase "practice makes perfect." But there is a flip side to that coin as well. The more I repeated the early levels of a game, the longer I postponed actually getting to the end of the game; and when I did I was relatively unprepared for it. The final stages always seemed really hard compared to the earlier parts that I repeated so often.

I see a tie-in to this childhood dilemma—fundamentally, to restart or keep going—in the world of software, particularly here in Silicon Valley. In an industry where everyone's dream seems to be founding a start-up and either bringing it to IPO or getting acquired by some larger company, where a litany of 1-year engagements at VC-funded and possibly failed start-ups is an asset on your résumé, I believe we are, as a community, basically following the same pattern that I did as a child sitting cross-legged on my basement floor with a Nintendo controller in my hand.

I wonder how many of this area's successful entrepreneurs, all craving "the exit" and a few fortunate enough to actually make it happen, could be as successful steering a company for 10 or 20 years. My suspicion is that as a whole your average start-up founder is very good at establishing an MVP, recruiting talent, securing funding, generating buzz, and all the other 1st-year and 2nd-year challenges that any young company must face. But I also suspect that quite a few such founders, even those who have gone on to enjoy great success, would be ill-equipped to face the new set of challenges that must befall a company that enters its second or third decade of existence.

On a more personal level, I still find myself struggling with the choice of starting over or continuing on a fairly regular basis. On my own software projects, for instance, I am ridiculously guilty of starting lots of projects and never really "finishing" any of them. (And don't misunderstand; I am fully aware that no software project is ever really "finished." But I mean even relative to other software projects—I basically never get past the honeymoon stage. I throw something together, make a big to-do list of features I want to add and bugs I want to fix; and then I move on.)

It seems to me this is something we all approach differently, but I don't think anyone can answer the question completely. When do you restart, and when do you keep going? On any project—not just software projects, any project—there is the inevitable temptation to start over. We can learn from our mistakes; the time we spent heading in the wrong direction is not lost if we put our hard-earned knowledge to work making better choices the second time around. I am fairly certain most successful entrepreneurs and investors would put Know when to start over somewhere on their things-every-business-owner-should-know list. But I think this is perhaps too suggestive. It is equally important to know when not to start over.

So there are these two competing urges. One is to chronically start over, as with the serial start-up founder who is obsessed with forming companies and getting them acquired, and cares little about what happens next. And the other is to avoid it fanatically, as one might (perhaps unfairly) take Joel Spolsky to be recommending in a famous post 12 years ago, in which he advised never to rewrite software from scratch.

As with just about everything else in this world, something tells me the truth lies somewhere between the two. The tricky part is identifying that point. Maybe that's part of the wisdom that only experience can bring. I, for one, hope not to rob myself of this wisdom by getting caught up in an endless pursuit of the successful start, without ever figuring out how to swing a successful continuation.