17 January 2012

The Biggest Problem with Technology

The biggest problem with technology is complexity. A technology is only as valuable as its ability to be used to provide value (for a feasible, commensurate cost). When any technology is too complex it creates barriers to its use. Even if a technology that has great value to people and organizations, it will see little interest if it is too complex. Even if the value of the technology is commensurate with its complexity, the lack of use (aka adoption) will be apparent. There may be a general lack of interest to a technology, however if interest is high and adoption is low, there's a high probability that complexity is the cause. This can be summed up in a simple equation:

technology adoption is inversely proportional to its complexity

Much of the following comes from a discussion on complexity when working on a Semantic Web solution for a financial services client awhile back.  This example illustrates a common pattern I've seen repeat itself in technology time and time again, and I expect this to continue:

One technology that fits this complexity equation is the Semantic Web. If you look at the initiatives such as standards, notations, reference implementations, technologies and even products, for the Semantic Web a few obvious observations may be made.

First, most of the "members" of the Semantic Web community are in Universities, working in R&D labs for commercial companies or governments or in high-tech fields such as bio-tech.

Second, much of the work is designed for and by individual researchers and users. If you survey the open source Semantic Web technology you'll notice very little work has been done to support multi-threading, concurrency or even performance at Web scale - that is an exercise for the user. Perhaps commercial products provide this, but they are too costly and their trial versions are insufficient time-wise if you have a day job and a life or capability-wise if you want to do something slightly complex.

Third, much of the work to date is theoretical, however there are some excellent examples of Semantic Web solutions. Unfortunately, these real examples are too complex and esoteric for mainstream extrapolation, but it does prove that given sufficient motivation one can make the Semantic Web real (but not really practical).

Which brings us back to the complexity equation. If you have the time and can hire or fund research to develop Semantic Web solutions, you can; most people can't, and most organizations that could, won't. Why? Because it is risky, the value isn't assured for the required investment and there are many commercially proven technologies with less risk and sufficient value to fund. Semantic Web is too complex, and therefore too risky or expensive, to warrant its use in general, mainstream, computing solutions.

But what if you want, need or could use what the Semantic Web promises?

Faced with the challenge, promise and opportunity of semantic technology, a Web community formed to address practical use of semantics. Not intentional initially, though, as they had a more practical need, semantics was an implicit byproduct of their efforts. They surveyed what they knew/know and what was already out there to use and reuse. Let's see: HTTP, HTML, XML, XHTML, tagging, RSS, Atom, AtomPub,.... Then in a brilliant move, instead of standards designed by committee over many months or years, they created agreed conventions where anyone in the community is able to participate, discuss and offer recommendations and ideas.

The conventions are extensible; allowing others to add and extend, and share them. Anyone can add this metadata to their existing information,extend it to meet their needs, embed it into their existing Web information or dynamically create and combine this information. If someone receives this information and is unable to parse some or all of this metadata, they can simply ignore it. How's that for practical? This is the essence of the lower case semantic web, and it really started with the distributed community known as microformats.org, often referred to as simply microformats.

Embedding and including meta-information in content to provide basic, but potentially very rich, meaning in content on the Web was a pragmatists dream. This pragmatic, practical approach to add structured semantics to Web content in a manner accessible to a wide range of Web practitioners at many levels, was at the opposite end compared to the approach of the formal Semantic Web.

While the big R&D shops, universities and others with deep pockets continued their theoretical modeling and implementation exercises of the Semantic Web in their Ivory Towers; bloggers, wikimasters, webmasters and other denizens of the Web began to structure, define, add and share meta information using the common tools at hand to create something new, practical and usable. Since microformats are made of very basic components of the Web (and Web 2.0), they are readily understood by many and varied denizens of the Web from PhDs to corporate developers to Junior High kids who can put them to use in whatever context they require.

In essence, the upper-case Semantic Web has found itself circumvented by the defacto conventions (still not standards) of the lower-case semantic web used by many. Again, simplicity has trumped complexity in the utilization of technology, in this case, semantic technology.

Even if the Semantic Web is better, richer, fuller, more rigorous, etc., than the semantic web, simplicity will usually win over complexity. In this context, winning is really widespread use. Widespread use infuses more content throughout the long tail of the Web with semantics through simple meta-information, which in turn leads to more meaning in Web content. With the increase in meaning in Web content, we have a richer set of meaning with which to work in the next round of Web content creation and distribution. This is recursive, as more semantic content leads to more meaning, which leads to more semantic content...

Have a look for yourself, microformats and Semantic Web and see which is best for your semantic needs.


Peace.

No comments: