Friday, June 27, 2008

The many faces of software

Popular wisdom tells us that the more words a culture has for something, the more important that "thing" is to that culture. Whether its ice for the Inuit, rice for the Chinese or money to Americans - there are cross cultural examples to be found everywhere. Yet, I have always held a corollary to be that the more meanings a culture has for a single word - the poorer that culture understands the word - essentially rendering it meaningless in the most extreme examples. In fact, I wrote a collection of short stories where the title of each was derived from one of the many definitions for the word "natural" - but that is another matter all together.

What strikes me is that software is an example of both cultural importance and limited understanding. We have applications, components, widgets, binaries, executables, plug-ins... well - the list could go on for much longer and - candidly - is not at all surprising to discover that software has become an important element of our culture. What is, I think, telling, is the many meanings (and disagreements) on the definition of software. It is the disconnect and dissonance between people, organizations and processes that lead to financial, functional and operational software failure.

Software as currency – if you take a $10 bill and rip it in half – you don’t have two 5’s – you now have paper. There is an atomicity (or unit) to currency and a consensus on how it is valued – these are the essential characteristics of a currency – and the medium is truly irrelevant. Are applications simply executables? How do support, documentation and activation rights fit into the “currency of applications?” Software services, on demand application manifestation and content that encodes behavior further challenge even the basic notion of what are the ingredients of an application.

Software as a commodity – prospectors find gold and stake their claim – an assayer will assess its worth and a separate array of businesses will refine, package and ultimately monetize the gold (coins, leaf, jewelry, bullion, etc.). Well – this I think fits pretty neatly into the true life cycle of software – developers know where the interesting bits are that they develop within larger bodies of code and they know what needs protecting. The actual value of that work is typically best established by product management, line of business, etc. and the monetization is accomplished through sales and marketing - protect – analyze – monetize.

Software as an asset – tracking software is always been tough and it is getting tougher – but truly measuring the financial impact of software on a business (not based upon what was paid for the software – but on the change in value of the business that adopts said software) is so murky as to be meaningless on any general scale.

Imagine how much more efficient the software business might be if we could get all of the stakeholders in the development, consumption and adoption of software to agree on these three dimensions of software – we would move from the bartering economy of pre-history to a truly modern (and efficient) software economy…

Saturday, June 7, 2008

Attention – this is not a metaphor or an analogy - application development and IT operations are really ecosystems

Central to the ecosystem concept is an idea that living organisms are continually engaged in a set of relationships with every other element in their environment. Any situation where there is relationship between organisms and their environment can be legitimately described as an ecosystem.

A system as small as an office or as geographically disbursed as a collection of digitally connected workspaces can be described and studied as human ecosystems. Now, ecosystems are often treated as lucrative sources of goods and services. Forest ecosystems produce wood and maritime ecosystems produce fish and application development ecosystems produce software.

Among the most interesting and active regions within any ecosystem are its edges – between the sea and seashore and between a development ecosystem and the IT operations ecosystems that it abuts. The points on land that define a coastline constantly shift with the tides and currents as do the points of work where end-users and applications meet.

I think there is genuine insight to be mined as we try to navigate the constantly changing social, technological, regulatory, economic and organizational impact of applications across the biosphere. Ecosystem classifications, functionality and biodiversity topics, the edge effect in ecosystems, studies on invasive species and traits of invaded ecosystems, … all have striking – and I think useful – parallels worth exploring to better manage the health and vitality of the application-dependent ecosystems that we all inhabit.

...and perhaps i will have the patience to jot some of these down here in the coming months...

I have been studying the point-of-work in this light for a few years now - and it clearly holds a true duality of purpose and form (like a wave and particle - but that is another post). Does the point-of-work hold the key to transforming (and aligning) the application supplier and consumer ecosystems? Therein lies the mystery - and only mother nature knows for sure.

Technology is Never replaced - Technology is Always displaced

in the early 80's IBM announced the arrival of the paperless office
in the early 90's databases were going to replace file systems
in the late 90's the clicks were replacing bricks
and today "clouds" are replacing installed applications

Well, electronic documents were transformational - but my office is still filled with paper
Databases are everywhere - but so are files
Lets not even talk about clicks and bricks
...and for the current cloud evangelists - well - look up a little quote from George Santayana...

Of course each of these developments were transformational - but new technology - like new culture - like the next layer of geological sediment - will always be additive.