Wednesday, October 14, 2009

The Value of Code

I've got a couple of interesting posts in the works, but for each one I'm having trouble with some of the essentials. It seems as if I've burnt out the left-hand side of my brain for a while. I've become mathematically challenged.

In the meantime, I figured I could get away with another short set of observations.

Recently I was installing a copy of Ubuntu Linux on my home machine.

I grew up using Slackware, moved into Debian and then flirted with Red Hat for a while, but I've definitely found 9.04 to be the nicest and cleanest installation I've ever used (it often took weeks to find working drivers for Slackware, way back in the days).

During the install, I started browsing through the available packages for download. There was a massive range of them available in the Synaptic Package Manager, and a whole lot more available from other sources. The sheer range of available software was staggering. There now seems to be an OpenSource version of just about every major piece of software out there, including the games.

This all took me back to twenty years ago, in University. We'd often spend nights and nights downloading little bits and examples of software code onto our home machines.

The University had kindly granted us access to this new network that connected many of the schools together (and a few companies). There was a list of magical "ips" (DNS didn't exist back then) that described modest FTP sites containing sample code and demos. We gorged ourselves on downloading. Anything and everything.

Up until we filled our XTs to the brim with code. Then we started copying it all onto 5 1/2 inch floppies.

One of the larger pieces available was a Unix'ish OS called Minux. I don't remember how big it was, but I do remember it took a significant effort to get it written on the floppies, built and then running on my XT. It even came with a C compiler. Somewhere on the other side of the world, it sounded as if Linus was out there indulging as well.

We were code junkies. We just couldn't get enough.

And it was amazing, because up until then, the only free code that I had access to was the little games published in magazines. They were often very lame, and would requires hours and hours to pain stakingly type them in, but they were a valuable source of learning. I often consolidated elements from them, into a little drawing program I was building. Puny by modern standards, but it felt huge at the time.

It was in those days, that there were still one-man shops out there pounding out commercial applications. Back the, the bulk of the teams for these new PC thingies were little shops, 3 or 4 people, and anything that even vaguely worked had some quickly growing value. Working code was worth something.

Not too many years later I knew a programmer that worked from home, mostly by himself, and had several reasonably known commercial successes. He produced some neat tools for versions in and around Mac OS 5 and 6. I can't say how much he made, but I do know that he was able to take his winters off to pursue a hobby, so it must have been fairly lucrative.

In one company, we purchased a library of print handlers from another one-man shop. I seem to remember a whole wave of "library" companies starting up to make their fortunes from selling good quality library code that you could include into your applications. It was a promising trend.

The OpenSource movement quietly flourished in the early nineties, but was quickly eclipsed by the dot com bubble. Code, or at least the hype from code, reached it very heights, but it was different then.

We didn't see it, but the "users" were quickly getting used to not paying for code. The Internet and the World Wide Web opened the doors to "free stuff", and flooded everything with it.

At the very moment when there was probably the largest investment ever, flowing into programming, the actual desire to pay for software was rapidly flowing away.

Since we were all seduced by high wages, easy jobs, a cut of equality and some crazy signing bonuses, we turned a blind eye to the underlying value of our work. After all, if you're going to get 2% of a multi-billion dollar company, do you really care if the users are refusing to pay for your latest and greatest?

But as always, what goes up ....

In the smoldering ruins, the value of software plummeted, and kept on going down. A half-decade ago, several wise business people told me that pure "software plays" were a thing of the past.

Software was worthless, hardware a commodity, and only in services was there any possible value. It was no longer a race to build bigger, better, more general applications. Instead, personal service, and a high degree of customization have become key.

Code was no longer important. In fact, so much so, that it was stacking up rapidly at OpenSource sites, waiting -- hoping -- for someone to download it. To give it a home, find it useful. It was like the island of misfit toys from the film Rudolph the Red Nosed Reindeer.

That precious resource that we chased so hard decades ago, has almost no value any more.

In truth, even with companies that still make their living from pure software plays, such as Microsoft, the code itself has become insignificant. If you could steal the code for Windows XP, and re-brand it, would anyone buy it?

Those software products that we all use have become "Brands", and the Brand is far more important than the code, or even the functionality. You use "Mac" or "Linux" or "Windows". The actuality of the code is irrelevant. It just doesn't matter anymore. You simply follow whichever Brand is more appropriate for the usage of the machine.

The same is pretty much true with the big machines as well. You use "Windows", "Sun" or "IBM". The Brand dictates everything else. Thus the databases that match are the Brands are "SQL Server", "Oracle" or "DB2". The environments are ".NET", "Java", and "Java/AIX or COBOL/RPG/iSeries". The tool-sets all follow from there.

So, overall I found it sad, as I scrolled through the massive list of available software titles on my Ubuntu box.

Sad, because our driving the value of code into the mud did little more than set the industry back decades. Sad because we gave away any incentive to be able to build better code. Sad because, the whole intent of OpenSource was to make code easily available, so that we could improve our work, not devalue it.

Without value, there is very little point in pursuing high quality technology. In the end, sales and users come from the strength of the Brand. It's the advertising, not the technology. The Brands get stronger, ever as the technologies bloat and decay.

I certainly saw this years ago, but it has been steadily getting worse. We don't have an open and competitive industry. We don't even have any innovation anymore.

The brands just senselessly copy each other, over and over again. It's become so entrenched that it seems to happen even within previously creative areas like video games.

I browsed through what looked like the OpenSource equivalent to each and every popular game from the last decade or so. It was a bizarre sort of flash-back, where I kept thinking "Hey, I remember playing THIS game" (and almost all of them were lower quality copies that seem to provide little new innovation on the original ideas or concepts).

In a way, though, it is probably somewhat of a natural progression. When something is new and unknown, just being involved is enough. But as it ages, the requirements get steadily higher. The bar only goes up.

Just being able to whack together something in your basement is no longer enough to get you into the commercial league. Just being able to make it barely run is no longer enough to keep you employed.

There are so many people now that can code to some degree or another that it has become tough for people to stand out in such a large crowd. Once an exclusive art, programming -- lightweight or heavy -- has simply become one shrinking piece of an ever growing puzzle. A small part of creating the solution. A single step in using computers to enhance and automate our process.

In some ways it is liberating. Now that code is essentially worthless, we should be able to find ways to quantify and share it. To give it away, so we can learn from it (instead of hiding it away).

Hopefully, instead of people just continuing to slap it together, we can really start to build up concepts of elegance. If code itself has no value, perhaps industrial strength code might still be worth something. After all, some day our users are going to figure out that their systems don't work very well, and that there are tangible (and possibly reachable) ways to fix them. We can't keep fooling them forever.

6 comments:

  1. "You can fool all the people some of the time, and some of the people all the time, but you cannot fool all the people all the time." - Abraham Lincoln

    ReplyDelete
  2. Hi, you say OpenSource lowered the value of software, and not willing to pay for software decreased its value.
    While it is true, I would add something, maybe some of these points you already noticed in other posts.

    1. Companies can lower their taxes by buying programs, so they can continue to do it. Private people in their homes is different.

    2. The new trend is buy because stupid and lazy: look at the iPhone store, a lot of apps for 1 dollar or so. They are not willing the effort to find it free, and they are not able to install and configure, for example, p2p programs. The future target of software houses.

    3. What you said for software is same for books (why write one if everyone download it after), or music, or movies.

    4. (last and most important) The truth is software today is so full of bugs, it does not worth anything. Did you read any EULA? Which other good in the market is sold "as is"?
    Remember the manual of Mathematica for Windows 3.11 "please do not use this software to build nuclear plants or aircrafts".
    No software company wants be held accountable of their software bugs; so, no responsability = no value.
    It is not the price, it is the responsability of declaring "I have done a good job with this program, so pay me", no one ever dare tell it anymore, they just have big lawyers and contracts.

    Same for opensource, try to ask it and the first 500 answers in forums are "it is free, instead of whining, get the source and correct it yourself"

    ReplyDelete
  3. Thanks for all of the comments :-)

    @xlr8: I've always found it amazing how far from perfect things can be, and the public still purchases them. We're definitely living in a age of decreasing quality (and increasing quantity).

    Still, while perfect may be too perfect, the bar we've set for software is so low that it feels like we just wasting the capacity of our machines to actually improve our lives.


    Paul.

    ReplyDelete
  4. The Free/Open Source movement has indeed made available for free lots of stuff, with varying degrees of technical quality. But there is another trend in our Western societies for "free as a beer", downloading whatever you want without paying it. And this does not concern only software... I had read (I'll try to find back the article) someone giving courses about intellectual property in college/university saying that, with years passing by, people have less and less scruple to download pirated copies of movies/music/software when they want the stuff but do not want to pay. Now, they just take it and do not find anything wrong with it. This has to be taken into account.

    I fear that, from the user perspective, this is a more important trend than Free/Open Source software. Although the FLOSS “market share” is growing, there are far more people who know how to get a pirated copy of Windows than know about any flavour of Linux.

    Anyway, the worthlessness of code (more than of other products) is due to the possibility of making an unlimited number of perfect bit-for-bit copies at virtually no cost. Music and movies have the problem of lossy compression, software has not.

    Another idea : for individuals, software might be seen as worthless, but companies tend to know that the software that they use to run their business HAS some value. Even when they can replace a RDBMS or a JEE server with another, they know it is not some random piece of junk.

    ReplyDelete
  5. Hi Al,

    Thanks for the comments. :-)

    I do find it interesting, in this day and age, how the "value" of things has changed so much. The digital era, huge populations and a lot more free time have all forced us to rethink the way we try to protect things we think have value.

    Maybe, at some point in the future we'll only pay "access" fees, not "content" fees. Still, there needs to be someway to reward the successful contributors (or people won't).

    It should be interesting to see how these things change, but if history is any indication, it will take hundreds of years for it to fully shake out. It's only just starting now.

    Paul.

    ReplyDelete

Thanks for the Feedback!