Monday, August 12, 2013

Sole Technical Founder

For the past few weeks I've been working on a SaaS application. For the first time, I'm on my ambitious journey to the sole creator of a product. I wanted to share my experience, as little as it may be, it may yet teach something. I am nowhere near finished, and I expect to learn much more, however I would like to document my feelings during this part of the journey.

I used to look at similar projects of others. In retrospect, I judged them very harshly. If they did not use advanced and top-notch technology, if they did not do something new or mind-blowing, I wouldn't think much of them. It is amazing how my perspective has changed as a result of going through the process myself.

Overwhelming

Being a sole technical founder is an immense and incredibly overwhelming task. The great variety of skills required and things to do make it very difficult to keep track of, and indeed, my largest problem thus far is not getting bogged down by my own thoughts. They are everywhere: marketing, programming, back-end, front-end, shiny new feature, strategy, terms of service, icons, logo, application palette, version control. It is required that I become a jack of all trades, the renaissance man, at least to sufficient extent.

The more I learn, the more it seems, there is to learn. The more I do, the more I see left to do.

Perhaps you do not believe me, like I have never believed. So I will tell you just a little:

On the front-end, there is the simple trio, HTML, CSS, and Javascript. On top of that, there are the abstraction layers, libraries, and frameworks, CoffeScript, Sass, Bootstrap, Skeleton, JQuery, D3.js. I avoided AngularJS/Backbone.js like the plague. I will learn them in my next projects. There is design work to be done, logos to be created, colors to be picked. On the back-end, I've dived into Ruby, Rails, and various gems. Rails alone can take years to master. There should be knowledge of databases, MySql, AJAX, REST/SOAP and MVC architecture, and up to some point, even deeper programming experience such as patterns and anti-patterns. Security, Encryption, Money dealings, Payment Gateways. Not to mention deployment, Stack choice, Scaling, getting things to work together. There is an aspect of law: limits of collecting user data, required logs, fair Terms of Service, and perhaps even patent infringement. There are skills like marketing, managing a business, strategy, product placement, advertisement, pricing, financials, networking, pitching. I cannot even imagine what I've forgotten. These are the things I see from my current point of view, but I know that there will be more to come.

It is impossible to become an expert in all these fields, but I deem it possible to learn enough about them to make informed decisions and to create something of worth. I do not have evidence of this yet. I do however have an immense respect for people who have went through this experience, and I hope to join them at one point in time. All I can do is go step by step. I know once I've learned something, it will go very quickly the next time it comes around. It is a great way to acquire skills; To Do.

Alone

It is lonely work. There is no real-life interaction of similar people for me. I cannot talk about specifics, they are not understood. I try to learn and interact with online communities, it helps, but it does not relieve the need. Sometimes it is beautiful to listen to experts in other fields, and apply it to your own. Sometimes a person inexperienced in this can help, sometimes they discover something "obvious". There is never a real feeling of "sameness" with others in this respect, however.

The worst for me is that I cannot show a large proportion of my work to others. Not because I believe my idea to be so valuable as to be stolen, but because databases don't paint pretty pictures. A successful asynchronous manipulation of a server-side database from within the browser may look like a grey check-box. It is not impressive. There is a long stretch of work which simply cannot be admired. This is common to most programming, however I find that in this, it seems to be more pronounced, and a heavier load. It requires perseverance and belief. There will be no chance of success until you are finished, it is not a steep continuous road to glory, it is a cliff  you may jump off after hiking up a forest path, hoping your wings can carry you. You will never find out unless you put in a lot of effort to climb the mountain, and you will climb it alone, in the shadow.

Bottom Line

These are two problems I haven't even considered before. I was not able to notice them until I took some time out to think. They are not glaringly obvious, yet they are very important. As I try dealing with them, I will share whatever proves successful to me.

Please do not misunderstand this post, it was not written to evoke glory or pity. It was written to share.

As for now, I will read 37Signals' book "Rework". It seems to encourage a more simple sight which may help me focus on the important things. Hopefully literature can provide me with a wider perspective and more things to try out once again.

No comments: