15 2 / 2013

I am a coder. I love to code. I think coding is like writing poetry. There is so much rhyme and rhythm one can put into a small piece of code that it just takes your breath away. I love to create such poetic masterpieces. Or, at least I would like to think of them as masterpieces.

Masterpiece or not, there is always a greater, more resolved poet who can make my poetry even more beautiful.

Anyways, code is like poetry and as with some poems, there are life lessons to be learned. There is a great deal of philosophy involved that directly draws parallels to the life situations. Life situation that involve committing mistakes; committing errors. I have not seen even one person who has not committed a mistake in his or her life. We all know that we commit mistakes, and, as rightly been advised, we should learn from them.

Coding is also like that. We make mistakes in the code, the code goes into a test run and it crashes. We immediately correct the mistakes and lo, the code is running fine.

Now, there are two types of mistakes: silly mistakes and the grave ones. There are coders who commit silly mistakes and there are those who commit grave ones. The people who commit grave mistakes are likely to be more dangerous to the product’s reputation. Dangerous, because, they are so adept and confident at doing small things perfectly that they themselves don’t know when they have committed a grave mistake and even the test run cannot find it out. These grave mistakes raise their heads in the form of critical outages when the product is running into a production mode. It halts everything. The product’s reputation and hence, the company’s reputation is largely at stake due to the grave mistake coders.

Is that a problem? If it is, what’s the solution? Let’s try to solve the problem by removing the grave mistake coders from our company and just have the not so confident silly mistake coders. These silly mistake coders will eventually learn a lot from their mistakes, raise their confidence levels, and finally they will become the grave mistake coders. However, their evolution will take multiple test runs of the product which means more time.

At a startup, you don’t have the luxury of time and it’s better to have a grave mistake coder on your team than the one who makes silly mistakes and takes a lot of time to learn. It’s better to have the product spend time in the production than in the test runs. Eventually, it’s the grave mistake coder who will bring in the sales.

Here is the post by Brendan Baker on Quora which summarizes what we should do with time in a startup: http://www.quora.com/Brendan-Baker/Posts/JFSI.

Vikrant