A blazing forge
The blazing forge of innovation is roaring in most obscure places. If you could see it, you’d notice it as a bright glow shining in the minds and hearts of inconspicuous software engineers hiding in their cubicles. Innovation never sleeps; she is a muse singing a powerful song that keeps innovators awake at night. Software engineers with vision are particularly affected by her music. They hear the melody as a tangible reachable goal, not as an improbable dream. They know that if they invested the time to follow it, they could transform their idea into reality. Sometimes they have the confidence to raise money and assemble a small team of fellow developers to implement it. Those are the people who ignite the humble beginnings of most tech organizations. There is nothing fancy about it: Ideas, passion, sweat, and determination drive the vision forward. Getting a prototype running is the goal, and early optimization the enemy. When you have very little money in the bank, one extra day of development could be one too many.
The code written in those early stages is not meant to be perfect, clean or long-lasting. It is a stream of consciousness, a rendering of a concept into computer-readable instructions, a mean to an end. However, regardless of intention, that code has a way of becoming the unstable foundation for years of incremental improvements. Accept it, embrace it and enjoy it. There is nothing wrong with it. It is a necessary phase of a company’s evolution.
Sleepless in coderhood
That code is designed and written by developers in a chronic state of stupor and flow, dreaming big, and sleeping under desks purchased at a second-hand store. It is the spark that ignites the primordial soup of innovation and gives potential future employees an example to carefully rebuild for scale and longevity.
I was fortunate to see this process many times. I wrote a lot of code that, years later, made me proud of what it represented; not so much for how I wrote it. Today, I still see it popping up now and then, hidden in rarely touched corners of a product that has matured but still maintains proof of its humble beginnings.
I was also fortunate to see the natural evolution of that kind of work. It always lasts longer than you anticipated, and it has a way of reminding you how the code doesn’t age by itself; only the company and context around it ages. It reminds you how choices made in a split-second, during a long stretch of sleepless decisions, affects significant future directions. It affects the work and challenges of developers who inherit it without having lived the context in which it was written. Also, it affects the struggles and rewards of future generation of sales, marketing, and customer support people. People that you didn’t even dream you could afford, until the vision became tangible. It reminds you how split-second decisions and deliberate innovations create the business foundation for products and jobs for many people in the future. People that you don’t know yet, but that you are working for without even knowing it.
Organizations tend to forget the details of the context during those humble beginnings. When you look at old and crusty code, remember that the only companies that start with perfect code are the ones you never heard of. That’s because they went out of business and never served a customer.
You want to be in the 10%
About 10% of software startups are successful. If you are lucky enough to be in one of those, years after a shaky beginning you’ll find yourself reminiscing about it. You’ll laugh at dumb mistakes you made, funny situations you created and naïve predictions you cast. You’ll joke about how quickly you used to move without rules or process, and how good that felt.
If your startup is part of the 90% and closes its doors, the forge that burns inside of you will move to other things. It will leave behind a potentially world-changing idea for future generations to find again; perhaps buried in your old notes, or perhaps forgotten in an old GitHub repository.