When all software is free, what is the value of software? Is it worthless, or priceless? In hindsight, it is pretty obvious that people like Kevin Kelly and others of that ilk were very wrong about the trends, where ultimately everything would become free and a grand new society of plentitude would emerge. Gas, while dropping down in the last few weeks, is still trending upward, food is becoming dearer by the day, the cost of health care services is rising dramatically, and indeed the costs of most raw commodities - trees, metals, oil, and so forth - has been aggressively pushing upwards, and will likely continue to do so, though not without a few corrections here and there.

No, ironically, it is only those things that are fundamentally intangible that are diminishing in cost - software, movies, music, the value of the US dollar, that sort of thing. Finished goods are reaching a critical breaking point - they aren’t selling anywhere near in proportion to the amount being produced, but at the same time the cost to produce them continues to rise in proportion to both raw material costs. Labor costs still factor - in some areas there is something of a labor crunch going on, yet the crunch is nowhere near as grave as it was in the late 1990s, and at least anecdotal evidence seems to indicate that this is easing except in limited spot markets.

I saw an interesting survey - 28% of Americans surveyed in an international poll indicated that they have no money left after expenses each month, and are basically living on borrowed credit. Canadians were at about 17% - something which jibes with my own experiences, though the odd thing here is that Canadians pay perhaps 10% more in taxes per annum than Americans do. My suspicion is that if you look beyond that initial 28%, there are likely far more who make just enough more to potentially save or invest some in long term investments.

So what does this have to do with software, or XML for that matter? Actually quite a bit. Software is a supply and demand business just as any other market is, but unlike most other businesses such software is almost completely a function of the labor market, the pool of available “ambiant” software and the complexity of the tasks at hand. The material costs for producing software is fixed, proportional to the number of software developers necessary to create the software, and can be measured in terms of the cost of computers and related peripherals, the cost of a facility for the developer to work (though see telecommuting, which has always been pretty much the norm for many software developers), and a minimal energy investment.

Of course, this investment pays off in different ways - some programmers are talented enough to create products in a couple of weeks that an average programmer might take months on, with a concommitent payoff in terms of larger profits and smaller overall wages spent getting a product to market faster.

Unfortunately, there’s a cap that works here. It’s the strong tendency in a network for resources to tend toward the distribution costs. The irony of the NeoGlobalists message of years back was that ultimately globalization is itself a function not of the costs of processing but of the costs of distribution - it is certainly easier (and far cheaper, per unit) to make a thousand shoes with a laser leather cutter than a dozen would be, but the costs to get the shoes to the stores are still the same (or likely more) than they were before “globalization” became a regular byword of commentator’s lips. Tariffs and protectionist stances created an additional barrier to distribution, but such costs were still largely minimal save in the way that they turned the tight margins due to distribution even tighter (even with some of the automation that occured in the distribution channel itself.

The cost of distributing software is very close to zero (over the Internet) and as a consequence that’s where most of the distributing is taking place. This is irrelevant of whether or not there is in fact a price put on a piece of software - that price is a convention only, unless there is a successful effort to put up a gateway that restricts access to that software. There aren’t many of those. Most software can be cracked, though in general, the software that is generally cracked is that which is “consumer-grade” … your chances of finding an enterprise management system on the BitTorrent grids are almost non-existent, because in general its not worth the effort of a cracker to make a product like that available - it’s uninteresting, and requires too many points of access with a hosted server to make it worthwhile.

There for a while, the only real path out of this dilemma was the SOAS model - Software as a Service, which is in turn an evolution of the ASP (Application Service Provider) model. SOAS does work - I use Google Mail all the time, as an example, because it makes it far easier for me to get my email on any machine anywhere without having to cart around the whole backlog of messages, but if Google charged a dime, I’d be off of it in a heartbeat, and so would everyone else, for the reason that people are paranoid about the nature of metered software.

That doesn’t mean that they couldn’t charge twenty dollars a month and get away with it, though with email it’d be a hard sell. Phone companies found this out - it’s better to charge a subscription than it is to handle metering, not from a technical standpoint but from a psychological one. If people have to watch the clock then they are being distracted from their immediate task, and will cut the task short if at all possible (and will almost certainly not go back to using the service unless the user had no choice).

Yet this too has a filtering effect. People will pay for timely access to dynamic information if the benefits gained from having that information considerably outweigh the costs of getting that information. They will generally pay for porn, because porn again relies upon novelty, access to content that can’t be gained from other circles (the distribution network is too small or clandestine), and upon emotional considerations (lust is a powerful emotion), they will pay for ephemeral goods that have too low a distribution to be available publicly … and they will pay for customization (more on that point in a bit). However, given that the discretionary income of many people continues to drop (for fairly broad macroeconomic reasons, much of which can be tied to national debt levels), this means that people are increasingly having to choose those subscription services that are absolutely essential to their lives.

Here’s a hint - unless they have an Internet backbone, cable companies are losing propositions for investments. Why? YouTube, and the host of similar services that are emerging in its wake. My thirteen year old daughter was able to watch several episodes of Avatar (which, if you haven’t seen it, is actually well worth watching) that hadn’t even debuted yet in Canada, because they were available via YouTube. She could watch them when and where she wanted, at a resolution roughly better than our TV set. Moreover, she could have saved them (if her stodgy father had not put his foot down about it).

There’s been worries for years that the digital flag signal in HDTV sets would block this, but I’ve noticed that to this date it remains unenabled in most cases. Why? Because it would kill the broadcast television industry if that happened. Alternate distribution channels exist, and all it would take would be one person with a deflagger and access to a service like YouTube and that would be all she wrote. Of course, this will happen anyway, its just a question of whether the industry wants to shutter its windows now or plan for a graceful retreat. As discretionary income continues to drop, the pressures of this will only rise.

And this takes me back (after an all too long meander in the park) to those programmers and programming. Given the non-existent distribution costs, programmers will continue to shift away from the development of original software and towards the development of just-in-time solutions for individuals and small companies (i.e., customizations). Software vendors “hate” the term customization. Customizations, by definition, do not generally scale. Nor are they, in most senses of the word, “fun”.

This was driven home to me recently by a look at a “freelance” board for both programmers and artists. Most artists, given their druthers, would like to do “fun” work (take a look at the number of fantasy works (especially involved barely clad women, anime characters, or the like) produced hourly on places like DeviantArt.com and you get a pretty good idea about what constitutes fun). However, what customers are looking for are logos, renderings of buildings, design work, and that sort of thing (after all, at home they too are probably also doing the nude women (or men, as appropriate) for fun shtick). Of course there is some demand even for the fun stuff, but again it is only the most highly skilled artists that are actually making money there.

The large and growing quantity (and quality) of open source software exacerbates this trend as well - it is generally easier and more cost effective for me to use off the OSS shelf software than it is for me to program it myself, even though I probably could program it if necessary. I think this is true for most software developers, and is definitely true for the businesses that hire them. There is still customization that is required to use the software effectively, however - simply because you are using Apache does not mean that you don’t need help actually putting together a commercial website.

This in turn is having an impact upon how programmers are employed. The tech boomlet has occurred in great part because companies found themselves in the lurch with IT solutions that had become stale in the wake of the last wave of layoffs during the Tech Recession of 2000-2004. However, there are already signs that it may have already run its course. Unless you were in one of a few fairly hot areas, you may be excused for not even having seen it. Blogging, which was big last year, has lost steam. YouTube is democratizing the already fairly broad realms of video Podcasting, and I think that the audio side has settled into its own island that will percolate nicely but not likely add significantly to the jobs equation.

There are some big trends coming - I think that while some of the AJAX freshness is now fading, bound XML architectures (such as XForms) are likely going to be the next big wave, but again this is a fairly specialized area — and more to the point is a wave that can be seen as componentization - creating black boxes for use within web settings in precisely the same way that you create black boxes for application development. Those components will, by their very nature, be difficult to sell for long by themselves, and it will in the end being the system integrators (the customizers, again) that will likely get the biggest bang for their buck from such components.

I say this viewing all of these factors against the backdrop of a near certainty of an economic recession next year. The US in particular has a credit crisis on its hands - Too many people with too much credit and an inability to pay for it being hit with falling housing prices, the first major waves of layoffs occuring in already stressed industries (automotive, financial services, real estate), and geopolitical factors that are translating into shortfalls on debt servicing at the federal level.

Most of the analysis that I’ve been thinking on in this piece comes back down to a very salient question - if in fact such a slowdown comes to pass, how will it affect programmers? My suspicion is that while it will not be fantastic for anyone, this combination of customization and the deep cuts made earlier, along with demographic pressures, will probably keep programmers pretty much insulated from problems this time around. You don’t have quite the froth you did in 1999, the people that are employed are specialists in systems that are needed rather than entry level coders with a couple of semesters of programming at the junior college level, and in many cases, programmers are also moving to a mode where they are essentially supporting multiple clients simultaneously.

Moreover, the technology (and culture) has reached a point where distance working is increasingly the rule rather than the exception, which means that programmers are more likely to be located offsite anyway - perhaps less visible to management, but also more cost effective in comparison to onsite workers. Programmers have also gained an important lesson in watching out for themselves with the last recession, one which most people didn’t have to encounter. They have been reducing their debt loads to an absolute minimum, have become generally far more attuned to market gyrations, and probably, in comparison to the general public, have a net savings from work they’ve done recently (this is speculative, based upon my own anecdotal evidence).

Finally, a lot of programmers have essentially asked for cash on the barrel rather than speculative options, which means that they are not as likely to be exposed to market crashes outside of their control. (I also suspect that while their compatriots have been flipping houses and getting involved in other idiocies, most software developers have reduced their speculative investments to safe levels until such time as the market ceased being quite so overhung).

If you’re in the XML space - stay there for awhile (and I do consider AJAX as part of this space). A lot of standards are now coming into their own, the current instabilities in the tech space favor XML solutions over others, and there’s still something of a shortage of skilled XML developers in comparison to the general IT force that is keeping demand for their services high.

Note, I’m at best an amateur economist (only a small eeuw-yuck), and may be completely wrong on all counts here. I think there’s still a good four to six months before the recession hits in force, though most of the factors are in place now. It’ll likely hit the NASDaq initially just on general principles (the NASDaq is actually by itself a very good leading indicator for timing, though not yet for intensity), but that should recover fairly quickly - the S&P on the other hand is going to get hit hard, and the politics as a consequence could get ugly. Cutting debt to manageable levels, diversifying your client portfolio and keeping abreast with technologies should generally keep you above sea level, and when this thing works it’s way through the system by early 2009, you’ll be nicely positioned to get to the next stage in your own career.

Kurt Cagle is an author, software developer, and occasional macro-economic wanabee who lives in Victoria, BC with his wife and kids.