February 26, 2009

Survival of the Fittest

A common side-effect of being a Perforce Software employee (in the UK, at least) is how often the subject of evolution comes up when discussing weighty matters. Before anyone thinks I'm about to launch into an atheistic rant, I am referring (of course) to the amount of time we spend poring over drawings of codelines and branching histories, or playing with the Revision Graph. Such images seem to lend themselves to Darwinian thinking.

For instance, our internal Perforce depot has a record of over a decade of fevered industry representing the collective "corporate memory" of Perforce Software. It holds our source code, web site, marketing materials, documentation, photos from social events, and user conference presentations. I'm pretty sure I've come across a favourite cake recipe and the odd knitting pattern, as well.

With such a long view of a company's internal workings, you can see the effect of evolution pretty clearly. Why did that branch continue, but that one die? What was so special about that piece of code that had it appear in every version of Perforce for the past five years? What happened on July 17th 2002 that meant a major restructuring of the web site?

With some digital forensic archaeology, you can usually find out why or at least get an idea of who to ask:

  • "We dropped support for that platform because there was no demand for it any more".
  • "The web site structure we had was too clumsy for the number of pages the site had to support."
  • "The Pee Wee Herman sweater stopped being popular around that time so I changed patterns".

If you think about it, these decisions are really all about available resources. With a fixed amount of productive time available to the company, Perforce Software makes the decisions on what parts of its business to spend time developing, what can be left alone and what should be dropped.

The same decisions are being made by every company and every person all the time. "With the resources at my disposal and with the list of things I need to achieve, what is the best way to expend my effort?"

It's about survival of the fittest. Whether it's a product feature, web page or prototype, the decisions are driven by what best fits the environment that the business is operating in.

This evolution analogy extends to include "mass extinction" events. One such event is happening right now. The "credit crunch" has taken out quite a few businesses that have been shown to be unfit to exist in a world where there is shortage of an important resource called 'credit'. The knock-on effect is a shortage of an even more-important resource: 'cash'.

Without doubt, there will be a lot of extinctions before we're through. But this will make room for new players.

For our industry, the lack of credit and cash will seriously hurt many businesses and technologies. There may be a lot of IT professionals whose projects are cancelled or who may be laid off. Companies may slash their IT budgets, take longer to replace what they've got or delay new initiatives.

But we'll see more of other resources: more developer time that is cheaper or free, perhaps. Maybe a glut of low-cost hardware in the short term as vendors look to liquidate their inventory. Further down the road, there may be more reliance on older hardware as vendors scale back on their production and supplies lag behind any upturn in future demand.

We cannot be sure what will happen, but expect some of the resources that are expensive today may be relatively cheap in the near future, and vice versa. The result will be a change in the formulae that companies use to justify their IT investments.

For instance:

  • Reduced cashflow plus an increase in lower cost developer time would improve the case for Open Source Software
  • Unstable and unsuccessful vendors and products will leave the stage driving the use of those that are more reliable and trusted
  • Reduced budgets and limited available developer time would be good news for hosted or outsourced software and services
  • Reduced sales of new hardware could drive sales of leaner, more efficient software to run on older kit

Indeed, we live in interesting times. The fossil record that will be deposited during 2009 will make for interesting reading in years to come; a record made even more interesting if you get to view it through a Perforce Revision Graph!