I was thinking further about my previous post Moving up the Value Pyramid and another post Life is not an Axiomatic System over a conversation with an old friend last night while he was explaining how he goes about his IT business in a different industry to Investment Banking.

First a word about my understanding of ecosystems in technology and especially in Investment Banking technology. An extract from the Wikipedia article is quoted below:

[...] an assemblage of organisms (plant, animal and other living organisms—also referred to as a biotic community or biocoenosis) living together with their environment [...] functioning as a loose unit. That is, a dynamic and complex whole, interacting as an “ecological unit.”

I first came across this term in reference to business through John Seely Brown and John Hagel’s work in The Only Sustainable Edge. (By the way the book is very hard-going and doesn’t need to be. The lectures are far, far better). I liked it so much I have stolen it and now use ecosystem to refer to the landscapes and tight feedback loops which if utilised correctly leads to the best IT systems development.

The important extract, for me, from the above quoted description of an ecosystem is the phrase dynamic and complex whole. I think I will probably write more about this in subsequent posts as I find it fascinating and of vital importance. But for now the extracted phrase is enough for this discussion.

The (very bad) diagram below (for which I make no apologies) contrasts the diagram from the previous post with a made up pictorial representation of an ecosystem hopefully demonstrating the dynamic and complex nature.
Image001-1

Another friend of mine once said, and I paraphrase: to outsource something you must understand the APIs and contracts between the outsourced and the remaining before you initiate the outsource. Get your house in order first. This kind of deal is implied in the first diagram which is symmetrical and ordered with nice looking layers which one can easily imagine being slipped out or indeed replaced.

But in the second diagram it is now no longer clear where the APIs are, what the contracts might be and, indeed, what one could outsource here. One could argue that the ecosystem should itself be subject to simplification such that understanding and subsequently outsourcing could be achieved. Equally one could argue that that’s just the way life is and there ain’t no point bitching about it - and maybe we wouldn’t want it any other way and maybe there is no other way that it can be.

There is loads more to write about this: about why it is dynamic and complex, about the nature of specifications and the relationship between specification and environments, about users never, ever really knowing what it is they really want and about how it may be more important to write systems that can be changed easily and at lowest cost rather than rigidly satisfying specifications. But that is all for later.

Enough for now to note that one can believe that the desire for commoditisation and eventual outsourcing is a real and tractable goal while at the same time believing entirely the opposite that the best systems grow out of a dynamic and complex ecosystem that is not subject to understanding and therefore outsourcing.