Dec 142009

In system design, generally I believe there’s no such thing as “premature optimization“, but life in a startup demands profound thought into exactly when we implement our optimizations.  Spending time and money up front on making things fast (and/or scalable) comes with a hefty little price tag we like to call “opportunity cost.”  We live in a world where stopping apparent forward motion for a few weeks may have deep implications on market positioning, traction / uptake, and ultimately, our ability to raise capital and execute on our strategic plan.

Partly this situation is a byproduct of having a tiny R&D team, and the ‘ole “10 pounds of shit in a 5 pound sack” problem.  With access to more resources, we could make progress on multiple fronts.  But, even if we had an army of developers, startup life throws optimization into a stark light.

Wait too long, and we piss off customers and hurt uptake.  Too soon, and we’ve missed out on implementing features that hurt uptake and also cause us to miss our window for strategic positioning.

As is often the case in the CTO’s role, if I get the answer right, no one will notice.  I’m reminded of the Tao Te Ching:

The Master doesn’t talk, he acts.
When his work is done,
the people say, “Amazing:
we did it, all by ourselves!”