Last week I went through Five Reasons Why I left the Startup Life; and I received a lot of good feedback on the post. Some of the feedback I received was that that post seemed negative, and looking back, of course it does (after all, it’s about why I left the startup life). But it doesn’t tell the whole story. While there are reasons why startups have more difficulties than other more established businesses, that isn’t to say you shouldn’t join a startup. In fact, I think if you have the risk tolerance, you should join a startup at least once. Here’s why:
You will learn far more in a startup than a corporate job. Since there is generally no support structure in a startup, you learn a lot very quickly. I had never programmed firmware before joining a startup, and my C would be best described as “non-existent” (I don’t consider a college course more than 14 years prior to be useful). Not only did I have to learn C, but I also had to learn how to ship firmware for a hardware product. That would never have happened in a corporate job. No one would have said, “Sure, let’s have this person who’s never shipped firmware before write our firmware.” In a startup, you often don’t have any other choice than to just do it.
You will shake your fear of shipping. There is a vast gulf between developers who can ship software and developers who can not. In a corporate job, it’s really easy to make changes to the software without moving the shipping needle at all. In a startup, if you don’t write software that directly contributes to shipping that software, it just won’t ship. It’s scary at first, but once you start shipping, you’ll be addicted to it and wonder how any software team can ever work any other way.
You will have no process to get in your way of shipping. Once businesses have shipped software, they assume risk for shipping software. If you don’t have any software, you don’t have any risk to shipping software. Your risk is purely the act of shipping. That’s part of the reason why startups don’t have any process around shipping. There’s no risk, because nothing is already shipped! In your corporate job, you know the word “change management”, and it probably makes you shudder. You have meetings upon meetings about change management, and you wish you could just ship software. In a startup, you will.
You control the culture of software and its architecture. While there are other parts of startup culture you can’t control, you will at least have control over the software aspects. Do you want to use AWS? Great. Want to use React? Sure. Want to make sure your software is open source? You can do that.
You will leave work fulfilled, and if you don’t, you only have yourself to blame. In a lot of businesses, there are multiple factors that affect happiness that you don’t control. Too much risk around using your favorite language, too much risk around shipping that neat feature. Every change takes the sign-off of three different people, two of which you don’t interact with when making that change. In a startup, it’s just you. No one can keep you from shipping software that solves your business problem. There’s a study that says people are happier when they exhibit control over their environment. Startups are as close as you’ll get to being in control of your environment (short of owning your own company).
There are lots of reasons to join a startup that I do justice to here, but I really think you should consider it at least once, and when you do, consider it with eyes wide open.