@chadkoh — Generous with Likes ❤️

The Software Tree of Life: Finding the shortest branch to success

The Premise

Software is often described as a “living thing,” something that grows and evolves. Each point release offers a new evolutionary adaptation, spurred on by complications in the production environment, and sometimes a competitive business environment.

One might discard this metaphor outright simply due to the common job title of software designer. Life has no designer, and evolves through competitive and climatic constraints over geological time — software can hardly be considered the perfect result of divine will, no matter what your sales department claims. Software is not developed in a perfect vaccuum. Much depends on the (un)natural selection of frameworks and libraries, harsh environments such as server and regulatory requirements, not to mention the various pressures on the developers actually creating the software. The bugs, shortcuts and hacks that riddle any newly shipped piece of software are reminiscent of the vestigial legacies of human evolution: the appendix, coccyx and wisdom teeth. It is a closer analogy than one might first realize.

Which leads me to think of the possibility of a sort of Linnaean taxonomy of software. In 1735 Carl Linnaeus split organisms into three kingdoms (animal, plant and mineral) made up of a number of classes. Since then there has been much evolution in biological taxonomy, including such complex descendants as the recent genomic Tree of Life.

Why should we want to classify software in such a manner? Surely the categories on the iTunes store are be enough? No, that taxonomy serves a different purpose. Our purpose would be analyze software in terms of rate of evolution. In biological studies differences in evolutionary rates can be found within and between phyletic groups. Reptiles, specifically crocodiles and alligators, are identified as being the least different compared to their prehistoric ancestors. In the startup world, knowing the rate of change in a sector is key to opportunity assessment.

New software products are often trying to introduce speciation within a certain software class or business, usually by attempting disruptive innovation. When thinking strategically about developing a new startup business or product, consider which branch of the software tree you are operating in. Some branches might be more amenable to success than others.


A topic that comes up often at #LeanCoffeeKL is not to bite off more than you can chew, especially when starting your first venture. PayPal Mafia capo Elon Musk started with a simple content management system long before he started revolutionizing the civilian space industry. Paying your dues and gaining experience is important to your odds of success when you are tackling big ideas.

When planning your first move, consider if the industry you are targeting is ripe for disruption. Note that I did not say deserving of disruption. Education and health startups may be “cloaked in nobility“, but they are notoriously resistant to change. On the other hand, consumer startups also have a difficult time as there is so much noise and such a rapid rate of (relatively minor) adaptations in the market that it is difficult to make an impact. If government regulated industries are the “dinosaurs”, consumer markets such as games are the “insects” of the startup phylogenetic tree. That is not to say creating a successful business in these sectors is outright impossible, it just requires a lot more perseverance and luck than the unsexy enterprise market, which is recognized as being probably the easiest sector to attain an early success.

If Consumer, Regulated and Non-regulated Enterprise are the three industry kingdoms of our Software Tree of Life, what are the subcategories? I am unsure of where to proceed here, as I think it might be a matter if identifying characteristics rather than a bifurcated tree model.

People buy software in order to achieve something. In this sense all software is a tool — regardless if it is Photoshop or a fart app. From this perspective I tried to develop some extremely wide types of software:

  • information retrieval (browsers, info terminals like wiki, weather, maps, dictionary, etc)
  • entertainment (games)
  • pure content (books, magazines, movies, music)
  • creative tools (productivity)
  • communication tools (email, messaging, social)

The above categories are debatable, and at one extreme could be cut down to just two types: consumption and production. But I think information retrieval is not captured by those two categories, and for cultural/business reasons games are different from other types of content. This is just a first pass and I am open to your suggestions.

The next step is to categorize business models, to see if certain software types lend themselves to certain business models. Some common models include:

  • direct sales (one-off payment)
  • distribution control (pay-to-access, subscription)
  • marketplace (a cut)
  • engagement (ad driven)
  • platform (licenses)

Traditionally software used a direct sales model: pay once to use your copy as much as you like. With the internet transforming software distribution, subscription based models became more viable. For example, subscription-based electronically distributed games and content like magazines became possible, and pay-to-access has been a sort of last bastion for content that cannot be DRM’d. Even traditional creative tools are moving toward subscription models (ie. SAAS). Communication tools have traditionally been subscription or free online, supported by ads (eg. Facebook). Marketplaces are a type of communication tool, joining sellers and buyers and taking a cut (and are notoriously difficult to get off the ground). Similarly, finding the right business model for software platforms has been tough (how much to charge for API access?), with those types of applications falling back on an engagement model. Each of the above models has its own pitfalls.

Which industry, type and model offers the shortest and/or surest route to startup success? This preliminary thought experiment is far too rudimentary to offer a conclusive answer. Other factors such as sales cycle, churn and adoption rates, and other industry-specific characteristics should be considered. As an exercise the Software Tree of Life offers an unorthodox analytical framework for opportunity assessment.