Distributed Software Development Part 1: The Safe Boom
As I said in a previous post, the new economic realities that come with peak oil and climate change will change the way we work and the way the computing industry is run. One of those changes will be limiting unnecessary costs related to moving people around - something we already do for goods. The industry has seen a boom, lately, in distributed software development: people from all over the globe collaborating on a single project. Of course, out-sourcing to India is part of the trends that drive this boom (as is out-sourcing to Canada, by the way). The distributed development model of the Linux kernel and other, often smaller, open-source projects is another driver. Regardless of the drivers, however, the trends are there and the boom is happening. Now the question isn’t “what are we going to do about it?” but is rather “how are we going to profit from it?”
One has to understand that this particular boom has two economical aspects that make it very interesting all the while not being worrisome at all: 1) it is free and 2) there are no economical stake-holders of any importance involved. I.e. this is not a potential bubble in which big institutions (investment banks, etc.) have tied their money to not-so-brilliant college grads and/or bad, high-risk debt. Nobody is making any money off pushing for a change in the principles of software development, except perhaps a few consultants that could find other stuff to talk about should this whole deal fall through: the only money being made is the money that’s being saved. The only way bottom lines are getting any greener through distributed software development is by expenses going down, rather than up.
This means that businesses have a real reason to jump onto the “distributed” band-wagon, whether it be businesses that sell hardware, such as Intel, HP, IBM, etc. or businesses that sell software, such as SAP, Microsoft, HP, IBM, etc. Those that do both (need I list the names again?) have double the reasons to get interested.
But before we start jumping onto band-wagons, let’s take a look where this particular band-wagon is headed and in order to do that, let’s take a look at what you need to work in a distributed environment.
Human beings are a social bunch: they want to communicate with each other, if possible face-to-face. For one thing, it’s a lot more difficult to ignore some-one if he’s standing right next to you rather than, say, sitting in his home office a couple of (thousand) miles away. That goes both ways so, although it’s a bit more annoying for the one trying to do the ignoring, both will agree that face-to-face communication has some benefits over its digital counterparts. It comes at a cost, however, which means there is now an incentive to improve on communications of the digital variety. This is already happening. Google is currently test-driving wave and Bill Buxton from Microsoft has been working on “telepresence” technologies for a while now (the kind of things they talk about on the CBC’s “Spark” program). Though some of the proposed solutions are, or seem to be, a bit “futuristic”, there is a definite future for this type of technology that will, eventually, accomplish something that would be impossible without good communications: it will allow access to people around the world that, when brought together, will be able to advance scientific knowledge and technological know-how and, eventually, deo volente, improve quality of life for people around the world - not to mention generate a healthy profit margin for those providing the services. If this gives you an idea and you happen to strike it rich in a decade or so, please remember I told you about it first!