This particular look forward is definitely longer than what I have written in years past, and for those of you who have managed to wade through the admittedly voluminous text I both admire your fortitude. This has been a hard report to write - both because of the level of detail that I felt needed to be covered, and because there are relatively few bright spots that I see happening within the next twelve months.
It is possible that things may ameliorate quickly - perhaps because we are increasingly aware of what could happen, its possible that we may in fact be able to blunt the edges of a recession that some are predicting may be as bad as anything we've faced since the 1930s. I'd like to believe that, though frankly I'm not optimistic. Programmers have been through recessions before, but a surprisingly large number were not even born the last time the economy got even remotely this bad, in the 1970s, and in many ways the economy is far worse off now than it was even thirty years ago.
Yet for all the obvious similarities to economic crises of times past, there are also some profound differences. One of them, of course, is the existence of the Internet, and of the web of computers and other devices that provide access to the Internet. The Internet has many failings, and many dangers for the unwary, yet at the same time, what the Internet does provide is the ability to communicate, to mobilize, and to debate.
In the 1970s, the dominant communication medium was the television and radio, great for broadcasting if you happened to have the resources to own a television or radio station, lousy if you didn't. Person to person communication took place over phones, and even then only if everyone was at a known place to receive those messages. In the 1930s, even radio was in its formative stages, a letter could take weeks to arrive, and newspapers, then perhaps the dominant communication medium, for the most part reflected very local information about the world.
As long as we can keep these grids going (and we should make it a priority to keep the information grids going especially) what this provides is information about how best to survive, about how to live at a more primitive level if necessary, and about who else is doing these same things in order to emulate them or to improve upon them. The Internet makes it possible to coordinate community action, to express need or available to help with a rapidity that those even forty years ago would have been astonished by.
I watched last September as Hurricane Ike came up the coast, with visual images and communication feeds going on for as long as they could, before the storm brought the grid down, and even then people were communicating on battery power or generators across alternative networks. Within hours after the storm passed, emergency rescue was coordinating their action over ad hoc networks and when they could over satellite uplinks, aid began pouring in from across the country coordinated mostly over the web, and the first thing that people did when power was restored (or they could get access to a coffee-shop or friend's house where power was restored) was to get online and let people know they were safe and what the status was.
Even in the worst of times, this isn't going to go away. This ability to harness collective actions, to inform not only at the coursest levels of granularity but also the finest, will prove crucial in solving the problems we're about to face. The Internet is not a panacea - resources will become harder to come by and much more expensive when they are available, giving the lie to the idea that the economy is moving towards bits not atoms - but what the Internet will do is to open up new and creative solutions to some of the oldest problems of providing enough for everyone.
In addition, to this, however, I think we're also seeing the end of the proprietary value proposition for software. When publishing companies are going out of business in droves, it's difficult pricing a database at $100,000, or a content manager at $20,000. Instead, what will happen is what has been happening for the last two decades - alternatives spring up, open source or mixed license tools that have most of the same functionality as their proprietary equivalents. They'll be crude at first, but the good ones will continue to get better, accrue an ever larger support community of users and extension builders and testers, until they often can compete point for point with the proprietary versions.
Similarly, data services (web services, application services, fill-in-the-blank services) represent a transition away from the proprietary productized world, supplying an abstraction layer that effectively hides the technology on the other side of the cloud with an (increasingly standardized) API. These are complementary to open source technologies, and indeed, because one know longer needs to know that service X runs on Linux or Windows or Solaris it also significantly reduces the reliance on the brand.
Open source is occurring not because there are a bunch of ideologues pushing it - I suspect that there are as many partisans on the other side of the equation that tends to balance things out there. Rather it's occurring because open source and open standards provide real reuse of legacy code and applications and even ideas - open source is proving successful precisely because there is a stronger economic advantage to being able to make use of what's already been developed than in consistently rebuilding the application because third quarter earnings necessitate such a product.
Agile methodologies are also playing a part in the transformation of software design and development, and I see signs that such practices are making their way into the broader world. Agile promotes the notion that software development is always an ongoing process, and rather than creating broad timetables and intricate Gantt charts we should just take it as a given that the software we develop will just continue through successive layers of iterative development.
Perhaps this is the same methodology that we should be employing to our economy and our lives ... keep the goals in front of you, but make such goals discrete and obtainable, revisiting the reason for those goals in the first place as often as necessary. Make everyone involved in the decision making process collaborators in achieving those solutions, rather than just foisting the problem (and the responsibility) off on someone else by throwing money at it. Plan your activities such that at any given time, within a couple of weeks, you have something that works to a certain degree, rather than trying to find solutions that will work perfectly on or before a given deadline. Keep teams small and focused on specific goals, and make meeting those goals the responsibility of everyone on that team.
When you listen to the litany of economic "mishaps" that have led up to the current crisis, one thing begins to emerge (at least if you listen to the mainstream press)- most of the problems came about because "rogues" engaged in activities that were either illegal, unethical or both, and there was no one who was aware of the activities being done under the table. In practice of course, rogues tend to emerge in cultures that encourage them, because those same practices may make their businesses a great deal of money ... at least in the short term.
My suspicion (indeed, my expectation) is that the next few years will see a growing importance placed upon personal responsibility, on collaboration not only on production but also on oversight, and on increase in personal ethics. Hard times tend to reinforce these traits, but there is also a burgeoning change in how we view the way that we work as technical modes of thinking affect the rest of the world.
Agile methodology, open standards, data services, data abstraction and open source also all fit well into the emerging movement towards sustainability that is being seen in the broader culture. We've had nearly eighty years of growth culture, but growth cannot be sustained indefinitely. Most of the problems we face today ultimately derive from the fact that out culture (especially in the US) has been built on the foundation of consumption, initiated in the last great depression in order to get money moving in the economy again.
At the time, it was a good idea - there was a great deal of pent-up demand, and as the standards of living climbed dramatically, so too did the ability of people to contribute back into the economy. Yet we've been facing diminishing returns on our energy investments even as we've filled our houses with goods we don't use and fill our landfills with the detritus of the planned obsolescence introduced in order to sell more goods.
Economic solutions work until they don't. When they don't there is a tendency to look back to the past to see what worked before and try those solutions again - Friedman monetarism gives way to Keynesian public stimulus (the experiment underway now with the Obama administration). This will work for a little while, but in the end I suspect that even state stimulation of business will ultimately fail because the world approaching 2010 is not the world of the 1930s. New economic theories will emerge that ultimately will do the trick, but these will be based not on orthodox theories but on new ones, ones that are only just now emerging from that area that is perhaps the great testing ground for society at large ... the IT world.
Be at peace, prosper as best you can, and may you have a happy new year.
Kurt Cagle is an editor for O'Reilly media.