2010 Does Not Exist: Event Horizons and Software

May 15, 2008

I don’t believe in anything that will happen more than two years from now.

I’ve come to refuse to accept any argument for a technical or product decision that’s based on something “in the long-run”. The long run doesn’t exist. Our industry changes so fast that any decision is meaningless without a time scale. Is porting to the iPhone a good idea ? It’s a useless discussion to have unless it’s grounded in a time frame. Three years from now, the phone market will be completely different. Google will own it, or Yahoo, or maybe phones will die and hip technocrats will all have little, wireless-enabled devices made by ASUS and use Skype to talk to each other. Or maybe it will be shown that cell phones cause brain tumors and everyone will have suddenly ditched them. Who knows.

In addition, even if there aren’t significant technological or market changes, three years from now, your team will have been working away for three years. That’s three years worth of code, three years worth of product thinking and investigation, three years of sales cycles, and three years of team members being hired and leaving. If the product is at all innovative, it will have a different architecture, different marketing strategy, and, it probably does a whole lot more than it used (if it doesn’t, you’ve got much bigger issues).

You can’t predict beyond your event horizon

For every organization, there’s a point beyond which prediction is meaningless. If you’re a newly-formed startup, it might be as few as six months. An enterprise software company with a few dozen customers; probably a year or so. Beyond this point, there are so many unknowns, each of which is interdependent with the others, that it’s impossible to see beyond them. Any discussion of architecture or technology choices or features beyond this point is useless.

This isn’t an excuse to be less rigorous or to ignore strategic thinking in general. As software is built, it’s needs to be well-factored and structured so that, no matter what happens two years from now, you’re in a good position to adapt. You don’t want to be the company whose product takes off and isn’t able to keep up with the tornado (*waves to Friendster *). But there are many fewer cases of companies’ technology not being able to keep up than those that have gone out of business chasing problems that exist only in alternate realities they never got to.

And, focusing on a set period of time, gives you a window in which to adjust. Once there’s a real chance that your product will take off within the next 6 months, you’ve got 6 months to get ready for it, in a real concrete way, and are likely to execute much more effectively as you’re not worried about where you’d like to be 2 years from now; save that for when you’re larger and can actually predict two years out.

You can’t predict, so enjoy the ride

Once you’ve accepted this, technology and product decisions become much easier to make as each one is grounded in a concrete time frame. There’s only so much that can be done in 6 months, so your starting point can be “if the whole team focused on this one thing for 6 months, where would we want to go ?”, which gives any discussion an immediate level of focus and scope.