There seems to be an obsession with speed in Silicon Valley. I get the impression that many people think if you can go faster and create more code quicker, better software and innovation will somehow magically happen. The lean software movement and the popularity of hackathons encourages this type of thinking by hinting that you can create a MVP in a weekend, field test it, and discard it by Monday (or raise funds if you are lucky). I guess there are some engineers out there that can bang out fully formed software products as fast as they can type in a stream-of-consciousness type of way, but I find that it just does not work that way for me. I am sure I am not the only person, since a friend at Google confided in me that they are concerned that he is not creating enough code, even though his solutions are typically 1/3 in size and more elegant than his peers. I also suspect many proponents of dynamic typing feel like the programming language is getting in the way because you have to type and think more, hence slowing you down while banging out your opus.
I choose to think before I code. I can sometimes think about how I would like to implement something for several days, sometimes a week. I often find myself in a situation where I am ready to start implementing, but then a nagging little voice tells me not to start. Most of the time the little voice is right. A few hours additional thinking often led to some breakthrough insight that made whatever solution was thinking about before look like a toy. Unfortunately there is no lines-of-thought equivalent to lines-of-code, hence every meddling middle manager at a corporation wonders what the hell I am doing every day staring at little pieces of paper and doodling in my notebooks all the time.
Maybe someone will invent a way to measure lines-of-thought, but I somehow suspect it will never catch on, even if possible. There are too few people that understand what innovation really means, and how you go about it.
I choose to think before I code. I can sometimes think about how I would like to implement something for several days, sometimes a week. I often find myself in a situation where I am ready to start implementing, but then a nagging little voice tells me not to start. Most of the time the little voice is right. A few hours additional thinking often led to some breakthrough insight that made whatever solution was thinking about before look like a toy. Unfortunately there is no lines-of-thought equivalent to lines-of-code, hence every meddling middle manager at a corporation wonders what the hell I am doing every day staring at little pieces of paper and doodling in my notebooks all the time.
Maybe someone will invent a way to measure lines-of-thought, but I somehow suspect it will never catch on, even if possible. There are too few people that understand what innovation really means, and how you go about it.