Monday, March 16, 2009

5 Advantages and Disadvantages a Developer has when running his/her own Startup

And before I begin the usual disclaimer : This post is for the developers who have a startup idea for a click and mortar business ( meaning an online portal or a software product ) and not the traditional brick and mortar types.

Hi there my developer friends and those developers who are contemplating a career as an entrepreneur and running their own startup. My recommendation - take the plunge - we have an unfair advantage already :)

In the world out side of World of warcraft I chose my career as a developer - not a cook, not an artisan, not an F1 driver, not a manager - but a developer. And now in my current role as an entrepreneur I am patting myself for the decisions I took on all the career forks that were put in front of me - and kept choosing the paths so I remained a developer.

Here is why being a developer/architect is perfect for an entrepreneurial stint.


1. You will save a ton of money on developing your product.Currently my expenses are hosting, printing, hardware, internet charges, business cards, logo and stylesheet design. I don't pay myself yet - so it has been light on my pocket so far. If you had to hire developers it will cost a lot in building the prototype, the first release, maintaining it, enhancing it - software as you know very well is not static and development costs will keep growing.

2. If you are not a developer and employ a team, then you are at their mercy on the quality, deadlines, technological choices, performance etc. But being a developer you know first hand how to ensure your product is kick-ass on all fronts.

3. Intuition - over a period of time you gain these gut feelings for various scenarios. From a simple login page, to a complex account reconciliation screen. You know what will work and what will not work - it saves lot of headaches and rewrites down the line because you can do it right the first time itself.

4. Database design - if you are a developer who also can do good database design then you will do really well. You can do complex stuff easily without taking performance hits. Did I hear ORM - you cannot marry a dog and a cat - accept it. OO and relational tables are different species. ORM will be attractive initially but in the long run it will create lot of issues and you will be writing queries in your mapping files.

5. Process - Next to database design is the process. You can be a BA, QA or PM and as long as you are clear about the process you can release a bug free product on time. Developers have a huge edge here because we are the process ! And if you are an Agile devleoper - you will rock as an entrepreneur. Will be writing a post on how Agile process for an entrepreneur is like mock object for an unit test :)

Disadvantages / Short Comings

1. As a developer I am not hard wired to do Business Analysis. I once did a showcase when my BA and PM were held up on something and I learnt an important lesson. Even though we solve and implement complex business problems - when it comes to analysis and presenting our solution - we don't do a great job. At times there might be a feature that excites you as a developer but its not a big deal for customers and the reverse applies too. When you try to sell your product you should identify these things and let go off your turn ons ( ajaxy sortable tables..but customers wont even notice it ) and developer humility ( like SSL is no big deal but still you have to talk about it - it is important for customers ).

2. Being a developer I get carried away in trying to solve a non existent problem because it excites me. Since there is no hawky PM or a BA to convince that this cool thing is really needed - I just go ahead and do it and waste my time. I had to discipline myself in not going into these tangential excursions because time and effort is limited and I have to use it effectively.

3. Verbal communication - developers talk less and let the code / product do the talking. But as an entrepreneur you have to talk to lot of people about your product, your business. It is a new skill that you will be forced to acquire - and I feel this is an important addition to your skillset. Imagine a developer who can make a pitch - nothing can be better than that !

4. Written communication - Developers hate documentation. But now you have to write the FAQ, the sales pitch, the What and the Why, email broadcast on new features and the 1001 things. I am still learning the art of writing about my product so it has the right tone and there are no ambiguities.

5. Wearing a quality hat - This is the biggest challenge I have had so far while developing Apartment Adda. There are so many edge cases that as developers we do not think - we always try to make the product work and do not try to break it. You will have to do some serious rewiring of your brain :)

In the end - as a developer you have a huge advantage and a few disadvantages - but you can overcome these if you put your mind to it.

So if you have an idea you wanted to work on - go ahead and start working on it. Being a developer you are well equipped and have enough ammunition with you already.