Towards the end of last year I was lucky enough to meet up with Chris Matts for lunch on a fairly regular basis. To my great surprise, he did me the amazing honour of capturing some of what we discussed concerning memes in one of his legendary comics. They have just been published on InfoQ together with a discussion piece here: http://www.infoq.com/articles/meme-lifecycle
I’m a big fan of Domain Driven Design, but one of the subtler points I have found when implementing it concerns the notion of logical domain models. Eric Evans advocates the use of a single domain model – the one enshrined in the codebase – as a defense against the bad old days of ivory tower architecture where unimplementable logical domain models were produced by people who hadn’t coded in years, to be thrown over the wall into development teams who were then miserably handicapped by them until they inevitably decided to chuck them out and start making some progress instead. However, I believe this to be a failure in application rather than an intrinsic flaw. Logical domain models can actually be exceptionally useful when correctly applied. They get developers thinking in abstract terms and stop us making a whole bunch of assumptions that typically result from jumping immediately to implementation (“I’m programming in language-of-choice so of course I’m going to code it like blah”). Far preferable is that all such decisions are made explicitly, as conscious informed choices about the different trade-offs to be balanced in building a system. The subtlety with Domain Driven Design is that to get the best of both worlds – abstract modelling and a single model – the logical domain model should be evolved into the implementation domain model (I think of it as being a bit like a heatmap, with certain areas expressed logically and other, increasingly larger, areas expressed in implementation terms as your team iterates through sprint cycles). To be clear here, this has nothing to do with Big Design Up Front but simply the complimentary practice to BDD/TDD of whiteboarding sessions – but where we start by considering the logical model rather than immediately addressing implementation details.
What I have recently come to realise is that another model precedes the logical domain model, namely the business value throughput model. This is simply the exercise of domain modelling in terms of value rather than state/behaviour, and will be familiar to most people involved in business process engineering and organisational efficiency improvement. However, rarely does it get carried down to the level of software delivery. Instead, we base our decision making on a nebulous exercise called “project prioritisation”. In the worst case, this means MoSCoW (it is beyond me why we persist in this – why not just assign everything a “Must” and save all involved a deeply predictable day of pain!), or if we’re lucky we might end up with a slightly more helpful score out of ten or similar. The problem with this is as follows: if our aim is to generate business value then prioritisation is actually an implicit form of valuation – true, otherwise what’s the point? However it is an insidious, surreptitious form that slips under the radar without any kind of rigour, transparency or quantification. Is that story a “Must” because it will generate the most business value, or because someone bought an expensive new middleware platform and now they are looking for a problem to solve? Is that a “Must” because it will generate the most business value, or because you are fine-tuning your CV?! Is that a “Must” because it will generate the most business value, or because you know it will benefit the senior management’s current pet project?
So, what might a more explicit version of valuation look like? Well, we have recently been been trying out a very simple MMF model based on decision tree analysis:
Value = (Generated Business Value * Cumulative Risk) - Estimated Cost
Cumulative Risk = Project Risk * Market Risk
When I have presented this to various audiences, a wide range of initial objections have been raised – which normally fall under one of the following headings:
1.) Uncertainty (pt 1.): The business value delivered by a project is notoriously hard to measure and normally not even vaguely clear until a couple of years after delivery. How on earth can you expect me to work it out in advance?
Answer: This is an estimate, not a commitment. We fully expect it to be “wrong” – that is why we are limiting our liability by implementating the minimal marketable featureset, so we can drive out the real answer in production. We are just trying to come up with a rough figure on the basis of the information available right now, so we can move beyond the world of Must-Should-Could-Would towards anything that better resembles sanity. No-one is going to hold you to it. Please go and pair with an architect or someone in marketing or finance if you are struggling.
2.) Uncertainty (pt 2.): I don’t know enough yet to estimate the benefit or costs
Answer: Then that fact needs to be priced into your valuation as risk (similarly, inexperience at performing valuations should also be priced as risk). As that risk will almost certainly now be crippling your MMF valuation, why don’t you defer that piece of work and concentrate on something you are more certain about?
3.) Non-fiscal benefits: But the benefit of this will be in brand value/market awareness/etc
Answer: Fine, but without a subsequent programme of work to monetise that brand value it will be a pointless undertaking. You need to cross-attribute a percentage of the value delivered by the latter workstream back onto what we are considering now.
4.) Indirect benefits: But my web service doesn’t generate revenue. It’s the client systems that consume it which generate the business value?
Answer: Firstly, you do currently have more than one consumer don’t you? No, then why is it a web service and not an in-process component? Because you think other systems might need it in future? Then why not defer support for other message protocols until you know for certain which ones you’re going to need? Ah sorry, I misheard you – you do have multiple clients. In that case, you should simply cross-attribute a certain (usage-based?) percentage of the clients’ generated value back onto your service, as it is a value-throughput modelling dependency.
With this approach, we simply do whatever has the highest estimated value at any point in time. In doing so, prioritisation takes care of itself and we are finally, mercifully released from MoSCoW hell. Furthermore, a number of additional side-benefits become apparent as the process starts being applied in practice:
- MMF refactoring: once numbers start being assigned against MMFs, business stakeholders begin requesting whiteboarding sessions with architects to drive out other alternatives that entail less risk. This leads to a detailed technology-engaged breakdown of the business case and multiple iterations of MMF refactoring, with product managers and architects jointly discussing and creating business solutions around the table. Welcome to the world of agile technical strategy!
- Incremental release of small chunks of functionality. The estimated value of anything with more than a couple of non-trivial risks drops through the floor, creating a strong driver towards a “perpetual beta” style release model.
- A quantitative justification against system rewrites.
- A strong driver to improve IT capability maturity. If your IT department can’t be predictable about the costs of building even small chunks of functionality then that source of risk will impact the valuation of everything they do, and needs to be mitigated as soon as possible.
- Optimal implementation point: this is simply the maximum point on the valuation curve, where if you travel any further down the Cone of Uncertainty before starting to build then the reduced risk from greater clarity is outweighed by the risk from failing to deliver in optimal market conditions.
- Target delivery date: see the above. At last we have a quantitative means of separating meaningful delivery dates from arbitrary political statements.
- Should I do the highest risk stuff first or last? Are you talking about MMFs or components within an MMF? If the former, just do the highest value work regardless. If the latter, then always seek to maximise the estimated value of the MMF. That means take on the the highest risk work first. Doing so will remove that risk and up the feature’s valuation should you recalculate at the end of your day’s work.
More about this next time. For now one final point. If you outsource a programme of work and wish to use this approach, then don’t forget to ensure you engage with two consultancies to avoid the obvious conflict of interests: one to do the valuation, and another to do the build. (Yes I know they are lovely people, but you can’t really expect them to toil ceaselessly to find you the build option that will earn them the least money can you?!…)
(Firstly, a quick apology for the radio silence of late – regular updates here will now be resuming.)
So, in the last post we examined incentivisation in its broadest sense with the aim of shedding some light on the way selective pressures are created within organisations. We saw that the alignment of intra-organisational pressures with those of the external market is a fundamentally important factor in the health and efficiency of a business: put simply, it is critical to ensure that a.) employees really act in the long-term interests of the business and that b.) the business really acts in the long-term interests of the employees. We also highlighted the subtle and far-reaching consequences of how behaviour is rewarded (something the investment banks are now coming to terms with), in particular with respect to the conventional benchmarks of “on time, on budget”. We noted that this has driven the maturation of the IT project-centric world view, not because projects are fundamentally the best way of delivering business value but because they are the best vehicle for demonstrating benchmarks achieved and charging clients. More insidiously, such benchmarks can actually create selective pressures against innovation and new features (i.e. the very drivers of competitive advantage in the wider marketplace): anything innovative may be percieved as the risky option for a project team, whereas the safest way to deliver on time and on budget is to ensure they only ever undertake projects they have essentially delivered before. Indeed I have seen this happen: project after project shipped on time and budget whilst senior management sat around scratching their heads at the fact that they kept losing market share. As a wise man once said, “be careful what you ask for”.
The fundamental flaw with such approaches is obviously that they elevate the removal of uncertainty (i.e. perceived risk to timely delivery) to the primary objective, whereas the generation of new business value and innovation is normally all about working _with_ uncertainty. I think its enlightening to flip things round for a moment, and take a look at project timelines in reverse. So starting at the end point, we have the project being decommissioned at some point hopefully a number of years into the future. Roll back a bit and we might have major release upgrades interspersed with patch releases, users making use of x% of the available functionality, ongoing user training, the initial roll-out, iterations of analysis/test/build, etc. I find this “termination-oriented” perspective highly instructive. I haven’t been able to find stats concerning the lifespan of “successful” IT projects, but I’d be suprised if the average was more than five years. That implies nothing negative about the business value they generate. It simply reflects the fact that as long as a business case implementation is generating more value than it costs then it should be continued, and once that is no longer the case then it should be terminated.
Where the damage occurs is when projects/business cases despite no longer being cost effective or financially viable. In other words it not project failure that causes the worst problems but business cases that are perpetuated beyond their useful lifespan. These become the living-dead “zombie” memes, that drain the financial, staffing and morale lifeblood of an organisation. Interestingly, a former Clinton aide has just published The Tyranny of Dead Ideas about exactly this subject. What matters most is identifying such instances as early as possible and terminating them. Unlike their gamekeeping equivalent however, such project culls should also have a life-giving compliment, whereby dormant “before their time” business cases are activated in response to changing favourable market conditions. In this way, both ends of the useful lifespan of a business case are managed effectively. This is the essence of working in acceptance of uncertainty.
There is an obvious parallel here in software design. Unchecked failures/exceptions escalate. Good architecture treats error handling as an integral part of the design, and promotes defensive programming practices in order to create failure isolation boundaries that isolate and contain the consequences of the intrinsic instabilities of complex production environments. Similarly good program management should treat project failure handling as an integral part of the methodology, and promote defensive program management practices that create failure isolation boundaries that isolate and contain the consequences of the intrinsic instabilities of complex market environments. If a project failure escalates and causes significant problems to an organisation then that is not a project problem – it is a fundamental failing of program management methodology. This is why 37signals are correct in stating that organisation failure amongst start-ups is overrated. Any company that allows failure to escalate unchecked to the point where higher-level market isolation boundaries are invoked and it collapses, would signify to me a lack of management understanding concerning the essential nature of business value generation in unpredictable market conditions.
As a final thought, this idea also creates an additional viewpoint in the debate about regulation and state intervention in free-market economies. An evolutionary virtue of the free-market economy is that it entails a failure isolation boundary/ceiling between organisation and economic sector such that organisational failure is always culled before it escalates higher (the collapse of Soviet communism arguably being an instance of unchecked failure that bubbled up beyond through economic spheres and into the political). However this begs the question of whether such culling could possibly be enforced by some other means (e.g. corporate taxation structures??). If so then regulatory interventionist policies may not intrinsically be a bad thing…
In the previous post we started an examination of software delivery from the perspective of evolutionary biology. In that context we saw that business cases can be viewed as memes and software projects as a certain class of phenotype (or way in which that business case gets expressed). Following on from that, an organisation’s slate of new commercial development proposals can be seen as its meme-equivalent DNA, where at any given moment a subset of those replicators will be activated/ratified and then express an extended range of intra- and extra-organisational phenotypes including marketing campaigns, IT projects, industry bodies, etc. The success of these phenotypes will in turn determine the degree to which those memes/business cases are then perpetuated via further iterations of investment and development. To understand more about how this happens, we now need to look at the nature of selective environments.
An examination of most companies today will reveal multiple concurrent levels of collaboration and competition: individuals compete and collaborate within the environment of their team, with their peers in separate teams and business divisions, and very often with other people in the industry within which they work (IT news groups being an obvious collaborative example). Teams compete and collaborate within the enviroment of their business division, across business divisions, and quite often across company boundaries with similar teams in competitor organisations. Similarly organisations compete and collaborate within industry sectors, and again sectors quite often compete within the wider economy (e.g. online music sharing services competing with the traditional record industry).
The first point of great interest about this is its symmetry with the scale-invariance of power law systems. Whether we are looking at the level of individual team members or the global economy, we can see the same thing happening: namely different environmental factors applying selective pressure in favour of certain key characteristics. Secondly, when we more closely examine those environmental factors within a business context we can see they are nothing other than what micro-economists refer to as incentives. Incentives are the features of economic environments that determine adaptive advantage: they create the selective pressure. (It is worth highlighting at this point that we are not making any claims about human nature: incentives can promote altruistic, enlightened behaviour as much as greed/self-interest). Along the scale described above from individuals to the global economy, different incentives will create different selective pressures. Those pressures may act in the same direction or else they may act in conflict. For example, the impending credit crunch clearly suggests that recent city trader incentive/bonus structures were in conflict with the interests of the wider economy.
Incentives can be specified either explicitly or implicitly. Explicit incentivisation takes the form of sales targets, call centre response times, unit test coverage targets or any other published quality metrics. Implicit incentivisation fills in the remaining gaps, and is normally adopted as a result of unreflective organisational behaviour (for example, inexperienced IT management rewarding anti-collaborative “rock star coder” behaviour with more kudos or the most interesting project work). It is frequently the underlying cause of unexpected or undesirable behaviour, and the first step towards effectively addressing such situations is normally the identification of those rogue incentives so they can be removed or else explicitly overridden.
In this way, we can see that the health of a business environment or any other complex system depends on the alignment of its incentives (i.e. success criteria) across the different tiers of selective pressure (something Jim Shore has recently aluded to in slightly different terms as the multiple aspects of project success). This in turn reflects the interdependencies characteristic of such power law systems. Where incentives get out of alignment, those interdependencies are no longer accommodated and malignancy is the result (quite literally in the biological world: cancerous cells compete and replicate very successfully at the cellular level, but at the overall expensive of other levels i.e. the organism).
When we consider the project-centric world view currently prevalent across the IT industry from this perspective, a few things come to light. We begin to understand that a programme management culture of on-time/on-budget project incentivisation has created selective pressure in favour of IT projects simply because they are an easy vehicle for meeting that target. Part of this is related to the misguided insistence by so many IT divisions today of referring to the other parts of their organisation as “the business” (frequently this is in turn symptomatic of an over-the-wall software release mentality and ultimately a basic lack of care about the real value of what is being delivered: “the project shipped on time and on budget, beyond that it’s not my problem”). A project does not just deliver within the IT division environment: we are part of “the business” too and we need continual reminding of that fact. As we’ve seen previously, on-time/on-budget has no direct correlation with organisation-level pressures to deliver added value. When we align selective pressures across the delivery environment and incentivise software delivery more meaningfully in terms of generating business value, IT projects are demoted to their rightful position as incidental artefacts – artefacts that frequently just get in the way.
A final key point to note about the scale-invariance of selective pressure is that it also emphasises the holistic nature of organisational health. It’s not just about the organisation: unless the needs of every interdependent adaptive tier are being met – from job satisfaction of team members up to healthy competition across your industry sector – then your organisation is ultimately going to end up in trouble.
In previous posts we saw that the generation of business value via IT projects essentially follows a power law distribution. By examining the nature of power law systems, we went on to conclude that adaptive strategies offer the most effective way of managing risk in such environments. We will now begin to explore what a fully adaptive risk management strategy might look like, using as our starting point an overview of the key principles underlying nature’s great adaptive risk management engine: Natural Selection..
Evolutionary ideas have recently been gaining prominence in studies of organisational behaviour and efficiency from two directions:
- Evolutionary Micro-economics (top down), in response to the limitations of traditional rationalist supply/demand models based on Game Theory.
- Adaptive Project Methodologies (bottom up), focussing on evolutionary design and iterative delivery to mitigate the inherent unpredictability of requirements and market conditions.
The most fundamental principle on which these ideas are based is the notion of a replicator. A replicator can be defined as any entity of which copies are made, where that entity has some causal influence on its own probability of being propagated. The classic biological example is a gene, which is copied during cell division and which influences its probability of being propagated via the environmental effects of the proteins it encodes (and in turn, the effects of the composite structures out of which those proteins are built). The specific DNA sequence of a gene is known as its genotype, and the corresponding expression of that genotype is its phenotype.
In the Extended Phenotype, Richard Dawkins switched the primary focus of evolutionary studies away from the organism. He showed that “organism” is ultimately just an arbitrary point along the scale of phenotypes: from specific proteins at one end, up through more complex protein structures to organs, organisms and social groups at the other. The fundamental unit driving natural selection forwards across the generations is the replicator or Selfish Gene – everything else from protein to social group is just artefactual byproduct (that impacts the probability of further replicator propagation).
Other instances of replicators include memes. A meme is “any unit of cultural information, such as a practice or idea, that gets transmitted verbally or by repeated action from one mind to another. Examples include thoughts, ideas, theories, practices..” When we consider the field of IT project delivery within this context, we can spot obvious correlations. Business cases are memes which, when ratified, result in the generation of a suite of phenotypic artefacts ranging from marketing strategies to IT delivery teams to unit tests, SCM repositories and deployed production systems to new revenue streams. These artefacts end up shaping their business division, organisation and industry sector, and in doing so determine the probability of the business case propagating and spawning further system releases, new marketing campaigns, etc.
There is a key lesson for us as IT practioners to take from this, one that evolutionary biologists have already learnt. It is that artefacts (be they organisms, social groups, IT projects or marketing campaigns) don’t ultimately matter. The thing that matters is the replicator: the business case or gene. We need to follow evolutionary biology’s re-orientation towards the gene, and shift our focus away from IT projects and create practices centred solely on the business case. I now believe that “projects” can actually be an impediment to the efficient generation of real business value from IT. They act as an inflexible body of emotional and financial investment that creates resistance to both a.) change and b.) termination where such change makes the business case no longer viable in real terms (which is when real damage is then inflicted). We will discuss more on this topic in subsequent posts. Before that however, we need to examine the nature of selective environments – which will be the subject of the next post. In doing so we will hopefully shed some light on the factors that have led to our current project-orientated IT world view.
In the previous post, we explored the behavioural differences of simple and complex systems. We saw that complex systems display power law distributions, the key characteristics of which are increased unpredictability and an increased likelihood of extreme events when compared to simple Gaussian systems. Additionally, the existence of positive and negative feedback loops makes them more resistant to causal analaysis: the potential for repeated amplification of trivial trigger events can make it very difficult to understand what is going on (see the 1987 stock market crash as an example). We will now examine the implications of those differences for risk management, focussing in particular on IT project delivery.
Conventional business management practices are based on the implicit assumptions we have inheritted from our cultural past, that ultimately have their roots in the scientific tradition: we use specific instances or case studies to infer a generalised understanding of a domain; that understanding then allows us to predict it, and once we can predict it we can then define an effective strategy for managing it. On the other hand, in our everyday lives and throughout the natural world reactive risk management is the norm. For example, to avoid being run over by a car when crossing the road we do not need to understand how a car works but only what it looks like (i.e. fast moving metallic thing on wheels). Similarly to avoid being eaten by a lion, a deer does not need to understand big cat physiology but only what one looks like (i.e. fast moving furry thing on legs).
From this, we can see that risk management strategies can be grouped at the most basic level into one of two categories:
- Cause based:
- Standard business practice
- Analyse cause, then define strategy
- Observation based:
- Normal practice in daily life and natural world
In situations where they both work, the latter is obviously inferior as it affords no potential for proactivity and forward planning. However the former is critically dependent on the predictability of the thing being managed.
Now previously we have seen that IT project success in real terms appears to display power law behaviour. Possible explanations for this might include:
- There is a simple causal relationship with an underlying pseudo-power law phenomenon. It might just be that the size of investment in IT projects follows a roughly power law distribution and that the returns generated are directly proportionate to that investment. Most projects receive small to moderate investment whilst a few get massive investment and that is what results in the correlated power law distribution of generated business value.
- The world of IT project delivery is a complex but deterministic system, hence it displays power law behaviour.
- IT project delivery has dependecies on truly random phenomena, hence the generation of delivered business value displays power law behaviour.
Which of these is most accurate is a matter of conjecture: some people might argue for the first explanation, whilst others might stand by the second. We are going to stand back from that debate. Instead we will only assume this: that to the best of our knowledge, all of the explanations sound to some extent reasonable and one of them actually happens to be true. As discussed in the first post of this series, this then allows us to assess each strategy against possible explanation/scenario as follows:
This demonstrates that in the absence of certain knowledge, adaptive metholodies clearly represent the lowest risk approach to IT project delivery as they are effective for every explanation. More generally, we can summarise this by stating:
- Simple, independent processes that are described by normal distributions are best managed by predictive strategies
- Complex, interdependent processes that are described by power law distributions are best managed by adaptive strategies.
In the next post we will start exploring what a fully adaptive IT risk management strategy might look like, within the context of lessons we can learn from other areas including evolutionary biology.
In the previous post we argued that the starting point for managing risk in IT project delivery should be a description of the distribution and frequency of project success: you can’t manage something if you don’t know what it looks like. However, we saw that project success in real terms – i.e. of maintaining or increasing the long-term viability of the organisation – is not obviously measurable. We therefore proposed a triangulation approach to infer its distribution from a number of key indicators. These indicators all display power law behaviour. We will now examine what this means..
First however, some historical context. The history of ideas within our culture has its roots in the Renaissance and before that Persia and Ancient Greece. And as we should expect of any people starting to explore the unknown workings of the world they inhabit, the first relationships they discovered were the simplest. Mathematical descriptions of simple, independent observable events were formulated in the natural philosophy of Newton and Descartes, out of which evolved the classical physical sciences. The apparently objective, predictive and repeatable nature of these relationships was hailed as a sign of their exactitude (as opposed to their simplicity) and as a result the physical sciences became the benchmark by which the validity of other areas of inquiry were judged. At the same time, their core tenets of predictability and causal interaction were used as the foundations on which fields ranging from financial mathematics to the social sciences and management theory have been built.
This world of classical physics is one of Bell Curves (also known as the Normal or Gaussian distribution), stable averages and meaningful standard deviations. It is easily demonstrated by example of a coin toss: if I repeatedly toss 10 unbiased coins then the distribution of heads will tend towards a bell curve with an average/peak at 5 heads.
Fig 1. example bell curves (courtesy of Wikipedia):
The first challenge to this world view came from quantum mechanics at the turn of the last century, where discrete causal interaction was replaced by the fuzziness of probability distribution functions and the uncertainty principle. More recently it was then challenged at the macro level by the study of the chaotic behaviour of complex systems. These systems are characterised by interdependence between events which can result in both positive and negative feedback loops. On the one hand seemingly large causal triggers can be absorbed without apparent impact whilst on the other, large effects can be spun up from trivial and essentially untraceable root causes. The result is pseudo-random behaviour, and something that follows the same mathematical description the economist Pareto discovered eighty years earlier in his studies of income distribution (succintly summarised as the 80:20 rule) and that Bradford discovered thirty years earlier in textual index analysis: namely the power law. Since then examples have been found everywhere from epidemiology, stock price variations, fractals and premature birth frequencies through to coastline structure, word usage in language, movie profits and job vacancies.
Fig 2. example Power Law Curves (courtesy of Wikipedia):
The power law derives its name from the dependence or inverse dependence of one variable on the squared, cubed, etc power of the other. (Plot the log of one against the other, and the gradient of the straight line will give you the exponent – i.e. whether it is a square or cube relationship). For example, Pareto discovered that income distributions across populations often followed a roughly inverse square law: for a given income band, roughly one quarter of the amount of people will receive double that income and one ninth will receive triple. The fact that this holds true whether you are looking at the lowest or highest income brackets denotes a signature characteristic of power law phenomena. It is known as scale-invariance or self-similarity, and is most widely recognised in another power law field: fractals.
Other key characteristics of power laws are an unstable mean and variance (i.e. they are statistically irregular, hence unpredictable), and they have a fat/long tail in comparison to bell curves (i.e. extreme events are a lot more frequent):
“The dream of social science [JE: project methodologies??], of building robust frameworks that allow prediction, is shattered by the absence of statistical regularity in phenomena dominated by persistent interconnectivity.” (Sornette, 2003)
“Paretian tails decay more slowly than those of normal distributions. These fat tails affect system behaviour in significant ways. Extreme events, that in a Gaussian world could be safely ignored, are not only more common than expected but also of vastly larger magnitude and consequence. For instance, standard theory suggests that over that time [JE: 1916 – 2003] there should be 58 days when the Dow moved more than 3.4 percent; in fact there were 1001″ (Mandelbrot and Hudson, 2004)
The fundamental message here can be read as follows. The apparently objective world of simple, independent events, normal distributions and classical physical/economic sciences is not actually the norm. Being the domain of the most simple events, it’s just that we discovered it earlier than everything else. In fact it is the limiting edge case along a sliding scale of much more commonly occurring complex and/or chaotic systems through to truly random or stochastic processes, all of which exhibit intrinsically unpredictable and more extreme power law behaviour. And the critically important point as it affects us in the delivery of IT projects? – that we need a risk management model tailored to the complex world of generating business value rather than the vastly over-simplistic world of basic mechanics. The most spectacular/shocking example of what happens when someone attempts to model such power law systems using the normal distributions of classical methodologies is given by the collapse of the Long Term Capital Management hedge fund. As regards the implications for us within the realms of risk management of IT project deliveries, that will be the subject of the next post.
An interesting article by Scott Ambler has been the recent subject of discussion within the development community of my current employer. In the article, Ambler suggests that the IT project failure rates frequently bemoaned by the likes of the Standish Chaos report in fact paint a distorted picture. Many so-called failures go on to deliver additional value to their organisations that far outweighs their total cost despite the fact they originally shipped over budget or schedule. In doing so, they render the traditional success criteria of “on-time, on-budget” pretty meaningless. As a result, he reasonably argues, project success is actually more frequent than the commonly held view suggests.
His article clearly highlights the elusive nature of project success as a directly observable (and therefore measurable) phenomenon. It is apparent that “on-time” and “on-schedule” are neither necessary or sufficient as benchmarks of success: many of us have worked both on a.) projects that shipped on-time/budget but delivered no long term value due to a flawed business case or an unforeseen changes in market conditions, and b.) projects that shipped late or over budget but that have transformed the profitability of the organisation that delivered them. Long-term revenue generation might seem a more reliable (but also less measurable) indicator, but even then many projects – e.g. regulatory compliance systems – have no direct bearing on revenue generation.
This has some significant implications for software project management. If on-time and on-budget are misleading benchmarks of project success and failure, then they must equally be unreliable indicators for risk management (as the risk we are managing is the risk of success/failure), which means that risk mitigation strategies based on those indicators should similarly be unreliable.
Which poses the question, if we can’t directly measure project success then how can we effectively manage it?
As a start to answering this, it seems reasonable to suggest that whilst we can’t measure success per se we might still be able to triangulate to at least a general understanding of its distribution using other markers that are directly measurable. By inducing a few plausible possibilities that to the best of our abilities we believe to be roughly equally likely, we can then perform a risk analysis by assessing the cumulative total risk for different management strategies across those scenarios:
So, what might we consider valid triangulation markers?
- Distribution of internet site traffic: business-to-consumer web sites are a subset of IT project deliveries that most commonly generate revenue by either CPM or CPC advertising models or else some form or e-commerce. In both instances, sites with the most page impressions will generate the greatest ad revenue or sales, and in short will be more successful (strictly speaking this is not entirely true as sites with better user segmentation data will be able to charge higher CPMs, but CPM % variations are negligable in comparison to variations in site traffic volumes so it remains a valid approximation).
- Technology stock price variations: technology companies have a business critical dependency on IT project delivery (something that most other sectors are also tending towards if not there already). Therefore we might expect some kind of correlation between technology company success, i.e. stock price, and the success of the underlying IT projects on which those organisations depend.
- Technology firm termination stats: not such an obvious choice, but firm termination stats can still tell us something indirectly about the nature of project success: a near-constant annual rate of firm terminations would imply some degree of predictability, whereas wide variations would indicate more chaotic/complex behaviour.
- Key performance indicators: the initially obvious choice. Almost equally obvious however is the question as to why projects currently remain judged against criteria of on-time/on-budget rather than KPIs. Answers might include the suggestion that we often use on-time/on-budget explicitly as our KPI, or else the more worrying possibility that on-time/on-budget is used as the standard default KPI in the frequent absence of better considered indicators and clearly defined business case acceptance tests. Add to this the facts that a.) where they exist, KPIs are normally used as an overly simplistic binary success/failure threshold thereby masking variations in the degree of success; b.) most firms do not (alas!) publish stats detailing their breakdown of IT project investments and KPI ratios where they exist; c.) as in the case of on-time/budget, the chosen KPIs might actually be bad indicators of real performance anyway, and we can conclude that they might not be so useful after all.
As it happens, all the above indicators exhibit power law distributions (for more info see Andriani and McKelvey – “Beyond Gaussian Averages: Redirecting Management Research Toward Extreme Events and Power Laws”; Barabasi and Frangos – “The New Science of Networks”; Paul Ormerod – “Why Most Things Fail”). What this means, and how power law behaviour differs from the classical mathematical/physical/economic world of normal distibutions will be the subject of the next post. In essence however, it suggests that while Ambler is correct in proposing that some projects over-schedule or over-budget may in fact be successes when measured against more meaningful criteria, overall there actually appears to be a higher rather than lower incidence of project “failure” in real terms.
As a concluding note it is worth highlighting that at this stage we are not making any claims about cause but only behaviour (for example, the power law distribution of internet site traffic could simply be a direct result of a 1:1 causal relationship with a power law distribution in web site investment/costs). All we are doing is a slight twist on the standard approach of starting from observable behaviour and then inferring the generality/causal explanation: because the behaviour (i.e. distribution of IT project success) is hidden in this instance, we must add another step first to triangulate it from related observables. Only then will be in any position to consider underlying causes.