Thursday, March 12, 2009

The evolution of control: Coding is power

I had lunch with some of the guys from ThirdEyeT yesterday, and apart from business (I'm pleased to say I sit on the advisory board) we talked about something I think could be as revolutionary as the peer-to-peer publishing ability of the internet.

It all stems from a notion raised by Dom Penrice, one of the big brains behind the very interesting publishing model driving

Dom suggests the new owners of the means of production/control are not all of us (as you may conclude from the fact that we are all publishers now) they are, in fact, the coders. (image courtesy)

The ownership of the means of production has always been a pretty centralised affair.

Centralizing ownership meant centralizing control.

Way back when, The church owned the books and their production so it owned information. And that gave it control.

With the arrival of the printing press those who owned the means of creating and distributing information multiplied.

The result was new ideas spread more rapidly and were put into action faster, creating value for more and more people.

Or, the Renaissance, as it's otherwise known.

As industrialisation got swinging, and mass production started matching lowest common denominator needs, we developed faster and faster printing presses and distribution processes.

Cinema, radio, tv are all examples. Faster printing presses with ever broader reach.

Ownership of the means of production was still in the hands of the few though.

With the arrival of the Internet we all became publishers. Control of information was suddenly harder to make money from. Ask any traditional media owner.

Where once the ability to publish information (and therefore control it and everything reliant upon that) was scarce (and therefore valuable) now that ability had become abundant.

Publishing is virtually ubiquitous now. And almost ubiquitously virtual.

So a new currency emerged, a new scarce means of production: code.

Programmers now decide our experience and control our opportunities. They are the new press barons.

Except there are lots of them. Not ubiquitous. But lots.

So we've reached a new stage of control where more people (those with programming skills) have control, but still not enough for the true group forming value of the Internet to fulfil its potential.

How so? Well, just as an idea benefits from evolution, so an implementation.

If I share an idea, you will take elements of it that you find useful to share among your peers. Your feedback to me may benefit my version of the idea. Your evolution of it (with your next community of purpose) may make the idea a better fit for you and/or a better fit for the larger fitness landscape (the evolutionary model).

Ideas benefit from complex adaptive systems - such as peer to peer digital networks. The Internet.

They benefit so effectively from this today because our ability to publish our ideas one to another has become ubiquitous. We (pretty much) all know how to do this peer to peer publishing of ideas thing.

But far less of us know how to implement them when it comes to the coding and design.

And when an idea reaches that stage the evolutionary processes slow right down. There are too few people available to lend their skills to adapt code to make it a better fit for their purposes in rapid iterative processes of the kind we have for ideas.

Imagine if we could make it as easy to code as it is to publish.

Look what ubiquitous publishing has done for the production and exchange of content/information/ideas/

human relationships.

More content uploaded to Youtube in the last year than broadcast by TV ever.

Ubiquitous publishing.

Imagine ubiquitous coding.

That's precisely what Dom Penrice has in mind: finding ways to allow anyone to manipulate code, parcel up the value created and pass it on to the next person with shared need. The next person can then add their value to hone or reshape for their community of purpose. And so on ad infinitum with evolutionary processes amplifying or damping as dictated by the fitness landscape.

Dom's vision is that at each iteration those that have contributed get paid, feeding back, pyramid style, to the originator.

It is a supply web, networked world approach to programming and one which could be as revolutionary as the arrival of ubiquitous publishing itself.

ThirdeyeT are starting to put the idea of ubiquitous coding to practical effect in their new publishing cms. It allows them to change the design of their site (and not just reskin it) in two days flat - without the need for any specialist skills.

I know many a editor who would be very grateful of that.

In the days of the constant relaunch giving control directly to the people with the vision has to be a good thing.

We're all publishers now. All advertisers, all marketers.

When we are all coders, then the next revolution will begin.

Reblog this post [with Zemanta]


  1. Unfortunately, as lovely an idea as this is, I don't think it's realistic when looking at the trends in how code is created used and shared.

    The single factor that negates the emergence of a model like the above is the commodification of code. Ning. Open Source. Off the rack free HTML and style sheets. These are trends that aren't going to be subsumed within some greater pyramidal publishing control tower, they're just speeding towards total commodification. Things like Morfik's WebOS product allowing dramatic web application builds with no coding knowledge. etc etc.

    Or am I missing something in your post?

  2. Nope, I think you have it mostly. Yes we do need it commodotised like publishing has become. But we are no where near that yet.
    Part of Dom's thinking is making it so everyone can join in and so everyone can take part of a function and reshape for their own use - just as we do with content (mash-ups) and ideas (even more mashy-uppy :-)
    Then you can get into that evolutionary model of peer to peer sharing and creation not only of knowledge and ideas but also of things.

  3. Sadly the only way that coders have ever had any power is to hold their employers to ransom over getting things done in the bad old days of Big IT. Other than that, coders will never have power for a goodly number of reasons. One is that it is not in the nature of developers to seek such roles, secondly, there are always other cheaper, less difficult programmers out there. Just like cheaper and easier manufacturing. After all, with 13m young Chinese graduates emerging on the market this year, that's probably more technical skills than the entire European and US tech base put together!

    Perhaps there's a confusion between coding and ideas. While great programmers are rare, great programmers who have great ideas are even rarer. Now those people can command some form of power, but that's back into the old business of business, not coding.

  4. Well said Richard, and from my experience I definitely agree. Really interesting work you do at Rapid Mobile, what's your twitter UID?

  5. Well done David. I think what you're describing, as in more coding becoming mainstream, is the waterfall effect of technological capabilities playing a mainstream role in our global economy.

    Anytime technology has evolved, lower-level connection agents have been replaced by automation, and higher skill sets are required to manage a more complex network. Take the telephone: first we had operators at local exchanges connecting calls.

    Over the past 40 years, we've seen the elimination for much of those positions starting with the very local operator, to the regional operator, to the long-distance operator, to what are now customer service representatives. At each stage, the technology has only become more complex.

    Due to Moore's law, these changes in communication are happening faster and faster, making people with complex coding skills more important, but this hasn't eliminated the need for people with coding skills -- it's created a far wider market for all levels of this work. When talking about first world economies shifting away from manufacturing, these jobs are becoming coding and network infrastructure positions.

    So I completely agree that coding is becoming more important for all industries every day, and as it does, more tasks that used to require coding will be accessible to the mainstream of society while at the same time creating the need for a new upper-level of coding and creative ability.

  6. algorithms replace hierarchy, we all become designers actually :) type will vanish, speech won't make it and thought is what's left for the future of dialogue. no matter how far away from now that is. don't you think?

  7. Great post David and I think we may be closer to this than many people think. There are systems for some of this to happen already. Zembly from Sun is an attempt at some of this where you can share modules simply and easily and wire them together. GitHub has made coding nicely social and easy to view changes in trees of source code. Libraries like JQuery make it super easy to build slick interfaces and pull together resources and frameworks like AppEngine allow you to build scalable sites very quickly and cheaply. On top identity provision through Facebook Connect and OpenID is starting to move mainstream.

    Things like YahooPipes are a big evolutionary leap too, they make mashing up data really simple. In the build of the private beta for OpenPlatform we've made sure to return ATOM feeds so people could use our data in YahooPipes. We asked the community to build client libraries to make it easier for people to use our data and code. We commissioned 4; Python, Ruby, Java and PHP and the community have since launch added ones for ColdFusion and Perl.

    I blogged today about my demo for the OpenPlatform launch and how I was able to build something in about 7 hours that a year or so ago would have taken at least 7 days and about five years ago would have taken much longer. We're getting closer to the age of ubiquitous coding, at the moment I think we're in the age of the artisan maker.

  8. I don't buy the notion that the programmers are the new power owners. That's like saying that during the hey-day of the printing presses, the people that set the type were in power.

  9. Gut reaction: this all seems very vague and like it was written by someone who's never coded an application professionally.

    I like the sentiment: code is poetry. Does poetry have power? If enough people believe in it, like the New Testament, I guess it does.

  10. Your right, I don't code. And it is vague. An open door to your detail? But the key point is that being able to code is much more like owning the means of production than being able to write was in the age of the printing press. Control is not only about creation of information, but distribution and experience too?

  11. I have to agree with Anonymous. I struggle with the language and structure used in the post, but I think the subsequent comments clarify the intent. Suffice to say that making software creation more accessible is a good thing for everyone. Dreamweaver, Flash, even MS Word/Excel/Access have proven that. However the software ecosystem is much bigger than this post seems to assume. There are genres of development going on that aren't ever going to be "accesible". Most software developers are toiling away in the depths of this eco-system where there isn't the populist interest or education to deal with the problems that are being solved down there. They aren't "cool" problems, but they're important ones none-the-less.

    Unfortunately, I think Chris Thorpe's comment is dissapointing at best. He built *something* in 7 hours. To claim that ContentTagger was built in 7 hours suggests to me that Chris has a very questionable definition of software quality.

    I hope that's not the case and what Chris is *trying* to say is "look at what we can accomplish in 7 hours despite the fact its not finished". It's disingenuous and in the process completely contradicts what David was saying in the first place. I.e. You've achieved nothing in 7 hours if the end product doesn't work reliably and ultimately that doesn't seem very accessible to me.

  12. I'll just add that attempting to use ContentTagger right now results in a "ValueError: No JSON object could be decoded" error when trying to tag an item.

  13. I also have to agree with Anonymous: if you don't code, you don't understand the ecosystem of people who do.

    I think this post is only half right. It may be programmers that own the means of production, but only a small subset of the group that the author refers to here: those that develop the languages themselves. Code is only the means to an end, but that means cannot exist without the languages that allow it to take form. As the philosopher Ludwig Wittgenstein once said, "The limits of my language mean the limits of my world." Human or computer, this still applies.

    The select few who have the skills and knowledge to contribute to languages are in some ways equivalent to the clergy that controlled the means of publishing at one point in history. They have ecology all their own, some where the bottom line is the opinion of a BDFL (Beneficent Dictator For Life) and some where it is instead the occasionally pseudo-anarchic acts of an elite few. They are like the government of a conservative nation: they are not prone to a complete change of process or organization simply because the idea is suggested, especially not by someone who does not understand their current processes and organization.

    Languages will only evolve as these groups contribute time and effort to work on them, and this evolution is necessary if software creation is to be further simplified. Without higher-level languages, more knowledge of lower-level details is required to create software. Even with higher-level languages, at least a vague awareness of that knowledge can be required in 10% (my personal guestimate) of situations. That's not likely to change, regardless of how much easier it becomes to write code in those languages.

    The author's idealistic description is, to an extent, the way in which the internet's software ecosystem works already: anyone has the ability to learn how to code and can put any idea, code or not, into the wilds of the internet. Not all rewards are monetary; sometimes recognition is all you get. That may leads to other things like better employment of inclusion in major industry activities if you want to write software for a living, but otherwise it probably won't be enough to sustain you financially no matter how many good ideas you might have.

    Finally, another difference between reality and the author's vision is the lack of those who are able and make the choice to learn to write code. A significant portion of the population can barely find the power switch to a computer, much less write code for one. Until the day comes when that state of affairs changes, not everyone will be coders. It's a sad but simple truth.

  14. Great post that gets you thinking & great idea & great work on ThirdEye's part for action! As a publisher, I have often been held to ransom by developers and am want to wish that I had learnt how to code. Much as I love gifted geeks, being a geek doesn't necessarily grant you a holistic perspective of business & human interactions. This also could be the answer to the present struggle with the business model of Free. As everyone benefits in the line. I am really enthusiastic about this but I am sure that many won't be. I like to be empowered and some like to have power over others. This is the difference when reactions are brought to the table on this one, me thinks. Good work everyone! Pemo Theodore, AstraMatch blog


The rate of change is so rapid it's difficult for one person to keep up to speed. Let's pool our thoughts, share our reactions and, who knows, even reach some shared conclusions worth arriving at?