Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News An Evolutionary Perspective of Software Development

An Evolutionary Perspective of Software Development

Leia em Português

This item in japanese

Memes, originally coined by Richard Dawkins in The Selfish Gene are cultural genes; ideas that propagate among people and affect the way we think and act.  Julian Everett has suggested that we can look at software development practices, ideas, and culture as a collection of memes.  By doing so, our understanding of what works and why can be turned on its head.  Questions like "are IT Projects the correct way to maximize business  value for an organization?" and "Is the XP idea of Onsite Customer wrong?" are raised and lead to surprising answers.

Julian starts out describing the meme lifecycle:

1) Uncertainty: resulting from an unsolved problem or a phenomenon that does not fit within our current worldview.
2) (bio)diversity: a range of new ideas are then considered as possible solutions or ways of integrating the new experience into our worldview.
3) Dominant Meme: one particular idea is adopted as the “best” explanation/solution, and becomes embedded into the updated worldview.
4) Zombie Meme: social or business context changes, making the previously dominant meme no longer relevant. It is now “dead” and needs be laid to rest before it starts causing havoc.
5) Lazarus Meme: a dead idea that is brought back to life, because changes to a social or business context suddenly make it relevant again.

Then Julian describes how this meme lifecycle can be seen in business:

Within the context of business, memes can be seen as the idea-pool DNA of an organisation that get expressed as an “extended phenotype” or sliding scale of effects: from commercial strategy to budgets, marketing, IT projects, etc.
If we consider the subset of memes that constitute well-factored MMFs [A minimum marketable feature (mmf) is the smallest possible set of functionality that, by itself, has value in the marketplace. You could release your software with just one of these features and you would see some benefit.], then real options are the mechanism for determining what organisational memes should be expressed and when (via the optimal exercise point), and equally importantly which memes need to be culled (via negative valuation).
Zombies are the things that cause the real damage: financially we are at present arguably living through the fall-out from a economic zombie meme – the efficient market hypothesis (which resulted in deregulation of capital markets, etc). Closer to home, some of the worst problems I have seen caused by technology programmes has resulted from “zombie projects”, where there has been a resistance to terminate despite clearly changed business conditions and commercials that no longer add up…

Now, if we were to look at the units of business value as an MMF, then the idea of IT Projects becomes obsolete and wasteful:

Evolutionary theory changed the focus of biological thinking from organisms to genes. In the same way, an evolutionary perspective to software delivery emphasises the need to stop focussing on IT projects and instead think solely in terms of MMFs. Then organisations with high resource liquidity become business value hunter/gatherer cultures, where teams are continually redeployed to whichever part of the company currently has the highest value MMFs to be implemented.


Julian also aims and takes fire at the XP notion of a customer by looking at the practice as a meme:

Let's take the example of XP Customer again. I would (contentiously) suggest a significant reason that meme spread through the software industry environment was because the majority of people who formulated XP were consultants of some sort, i.e. XP Customers were also their customers in a real, financial sense. In other words, the economic reality of the fitness landscape favoured a definition of customer informed by "project success", but where that success was the _consultant's_ rather than the client's. And as an IT consultant what's the best way of ensuring you get paid? The old meme was "on-time, on-budget" used as a standard charging vehicle, but that then got superseded by the even fitter notion of the happy, "omniscient" XP Customer. Completely understandably, because as a consultant you wouldn't want a financial dependency on a client's possibly unsound wider commercial strategy (hence the difficulties with agile contract definition). However from a client perspective, stakeholder satisfaction is largely irrelevant in the big picture - it is all about commercial strategy and delivering long term ROI.


This is a compelling model we can use to view the world of software development. What are your thoughts?

Rate this Article