Thursday, July 12, 2007

Lessons about startups, Part I

A startup is a different experience altogether from a stable/big company. Its like a benchmarking software. It puts extreme load on your each and every brain cell and stretches your limits. It brings out best and worst in you. Its brutal as it showcases your weaknesses and its rewarding as it highlights your strengths.

A few lessons learned so far,
  1. Its frustrating
    Its like walking on a rope 100 feet above the ground. A slight error of judgment or wind can cause you to wobble. You oscillate between extreme low and extreme high. When everything goes well, the other end seem to so close. When you wobble, one step seems an eternity.
  2. Where can i get some slippers?
    Ever thought about those small, petty things you use in the office. Things like writing pads, pens, slippers, pencils, cups etc etc. Well, prepare yourself for a trip to the local general store. Small things seem too big when you need to address them yourselves. They will bother you, they will take your time.
  3. Blame yourself
    "OKAY...so there is a bug in the code, who wrote this piece of $#!T?".
    Careful when you say this. Chances are that you wrote that code yourself. Happy blaming yourself :). There is no one to blame...i repeat THERE IS NO ONE TO BLAME...
    Because there actually is no one else (except your pet cat maybe). Dont be a whiner, identify the error, accept the consequences, correct it and move on.
  4. If you delay it, it will not be done
    "I ll take issue 'XYZ' later". In a big company this mean "I ll let someone else take care of this". In a startup it means, "It wont happen". Things that are deferred, are not done. In fact, they will never be done.
  5. Anything and everything will go wrong
    Imagine all the things that can go wrong. Then prepare yourself for everything to go wrong. Hardware items will be short, light will trip, your servers will crash, your data will be lost, riots will start, it will rain and you will catch fever
  6. I ll be done in 2 days...
    "Oh yes, this seems like an easy task. We can just slap this in 2 days".
    In each task there are many unknowns. Each unknown requires its on prerequisites, time and effort. Unknowns like new paradigm, learning curve, lack of documentation, network setup etc. In a startup, the unknowns increase exponentially. so a simple rule while establishing time lines is, multiply your first time line with 4 and set it as time line (at leat in the beginning)
  7. Whats cooking...errr its the server
    This part is so important that it deserves a separate section. Memorize this "My servers will be on fire" (inspired by Paul Graham). There is nothing more frustrating than your server crashing at the last minute of release and it WILL. (we actually went through that :D)
Where did my time go?
In a big company you do not need to address any/most of the mentioned issues. So you can sit down and code 8 hrs/day. In a startup, you need to address every issue. Things drain your time and increase the frustration. But remember, these things are not redundant or useless. Each and every thing goes into the contribution to your success.

2 comments:

Unknown said...

Posted by Adil Saleem at 12:27 AM

is it a coincidence that it was posted at 12:27 :p?

Unknown said...

Interesting... ;) i liked the way you Write... All the best!!

Regards,
Suhaib Hasan