Find a programmer with a few years of experience under their belt and you'll find a million and one ideas ready to take over the world and become the next billion dollar unicorn startup. When I co-founded my first startup, which you can read about here, I took on the role of technical co-founder and CTO. Essentially, I would do what I do best, which is to write code and build infrastructure, while our CEO would handle the business side of things and then 'money' would happen at some point.
Initially, this makes total sense as someone needs to build the product in question, and that takes time, dedication and focus for months on end until an MVP can be tested out. And this here is the first big hurdle. Rules on how we engage in life usually get shaped early on in the development cycle. If you are the 'coder' for the first month, you will want to be the 'coder' for the 6th month, and you will behave and get treated as such. Not a good thing if you are a looking to build an actual money-making business.
And that's just the first big hurdle that you will face. Here are a few more that might slow you down in this intricate and complex process. And maybe if you are aware of them early on, you can bypass a few on your next startup journey.
I can build "anything" mentality
That is a great luxury to have if you are a programmer, but a dangerous mindset to have going into a startup, for a few reasons. Why dangerous? Well, because "anything" is really super subjective. For example:
I can build a dynamic map with real-time loading map markers with built in galleries.
I can build an internal messaging messaging system so that users can submit bugs to that notify the entire time through Slack.
I can build multiple payment gateways so that users have more options and we can make more monies!
You get the idea. You can literally build anything and you probably will try unless someone stops you. Because you don't have the luxury of infinite time (just yet), you will undoubtedly accumulate a fair amount of what is referred to as technical debt in the startup world. It is the amount of code that will eventually need to be updated at some future waypoint in time, but that for the sake of launching an MVP, you can quickly code right now. This is real, and yes it does pile up and can lead to your companies downfall down the line.
Call it a curse, but as programmers we enjoy building new things. The more complex and time-consuming, the better. This is probably why thousands of programmers out there spend countless hours competing in algorithm challenges daily. Knowing what needs to be built and what is fun to build is key to more stable progress. And doing more of the former tends to land on the more boring side for a programmer.
Do you want a business or not?
We don't value our time too well
ROI (Return On Investment) is important in the business and startup world. As a co-founder, you are valued pretty high in the food chain that is your business. Except you probably won't feel that way for a while. Doing small trivial tasks can become the norm and delegating out work effectively takes time and practice because we can probably code what is in our heads faster than having someone else transcribe it.
This is something that I struggled with early on as we were building out our platform. As the company CTO, my time would definitely have been better spent in business meetings or in future-thinking architecture so that we had a clearer roadmap for our company. But instead it was spent sending out automated emails and validating user registration forms. We tend to be very possessive of our code normally, and if someone changes that var to a let, we feel it, and we will figure out why.
It took a few investor meetings before the light-bulb went off in my head and I realized that there was much more to this startup business than what meets the eye. Which brings up my next point.
We love our code
In the startup world, nobody cares about your code really. Except for yourself. You are inventing the future after all, so you'd better care a little. But most investors and even clients, could care less about how you created a cloud-based distributed system where people can instantly book a place to work for an hour. The idea is great, sure. But the novelty of hearing it only lasts for about 2-3 minutes before the next big startup springs up and people shift focus.
Respect your code, but be willing to get rid of it in the blink of an eye. Having to wade through dozens of unused modules months later after launch will lead to slower development cycles. And believe me, once your startup begins to gain traction, time is not something that you have to spare. Once something works, you need to shift resources towards that direction and do so quickly.
You are either gauging your customers wants and needs to validate your business model, or you are building and deploying them. You are definitely not improving the speed on your custom built messaging system that those 2 users used that one time. If we truly love something, then we should be able to let it go when the time arrives.
Making the transition
The biggest hurdle when balancing the programmer/startup life is not giving yourself enough time to make that transition from coder to startup founder. Whether you are going at it alone (solo founder) or have a team in place already, you do need to shift your mentality if you want your business to succeed. You will need to introduce new vocabulary into your day to day use, get comfortable talking about architecture and technical costs with groups of strangers and more importantly, you need to share your "not so perfect" code with people so that they can tell you whether they even want to use it or not.
Becoming a technical co-founder is probably the most challenging shift that I have made in my personal career. Old mentalities had to be let go, but not without a tantrum or two in the process. I still code heavily, but am now able to see the forest for the trees. If the startup life is appealing to you in any way, then I would say the struggle is definitely worth it in the long run.
And finally, a few last words. There is no growth without struggle. Whether you are a programmer, an accountant, a CEO, CMO, CFO, startups are hard and for different reasons for each person. So take your time, and focus on your strengths to help guide you in the process.
Have a specific startup question you need answering? Comment down below and let's discuss it.