Title: Software Delivery! Author: Chris Prather Date: 2009-11-27 15:36
I was just reading Matt Asay's piece about Domino's using open source to build out their multi-million dollar order fulfillment system. His take away quote got me thinking.
There will still be a need for companies like SAP, of course, as there are broad industry needs that a company or open-source foundation can satisfy. But for strategic IT projects, we're likely to see more open source plus internal development, and less packaged software purchases.
The gist of this is that these companies like Domino's will be building up their internal IT departments to largely take on the kinds of projects that they would previously buy enterprise grade software from Microsoft or SAP. I disagree.
I think (or perhaps hope) that this is the first step in a further evolution. There is no long term economic reason why Domino's should be in the the software development business. That's not their core business. Saying that the future of open source jobs is working for the Domino's internal software development group is like saying 20 years ago that the future of open source is the Operating System.
I suspect in 20 years time that there will be (or recently have been) a shift from large in-house IT teams, to outsourced teams of consulting companies and independent contractors. Teams of people already surround open source projects. Some of these people are in-house developers at large corporations like Asay's article talks about (the Moose community for example has people from Walmart, the BBC, and Omni Hotels). Some of these developers work at smaller consultancies (again Moose has people from Infinity Interactive, Best Practical, and my own Tamarou[^1]). Some of these people are even independent contractors.
It seems like a very short step for these organizations do the heavy lifting for an enterprise level IT Project. The Corporate Sponsor could then choose to either hire a skeleton maintenance staff, or keep one or more of the project's organizations on retainer.
In his book The Four Hour Work Week, Tim Ferris coined a term 'geo-arbitrage'. Arbitrage is the practice of taking advantage of a difference in prices between two or more markets. Geo-arbitrage is taking advantage of physically distinct markets (say India vs Europe). Geo and temporal arbitrage are what cause the radical lowering of cost for open source[^2]. Developers who are emotionally committed to a project somehow find non-monetary ways to value their time.
Currently large corporations leverage geo arbitrage with a few very large strokes. They'll off-shore their internal developments staff (setting up a development office in Mumbai or Beijing for example), or they'll hire an external company to perform a large project. I don't think this will change, but I think that this will become much more sophisticated as time goes on. Large consultancies will themselves outsource development rather than hire more developers and maintain a large staff, or perhaps smaller consultancies will band together to tackle projects normally handled by the larger consultancies.
The benefits for companies like Domino's are enormous. For starters smaller focused software shops are already experts in their specific tool chain and domain. Teaching a programmer who has already built six order fulfillment applications enough about the Pizza industry to drive an application story is easier than doing the reverse with an executive in the Pizza industry, or even a talented programmer who has no relevant experience.
Second finding and retaining good developers is hard. Finding committed developers with a passion for an Open Source stack is even harder. Scott Adams (yes Dilbert's creator) recently noticed a trend.
Imagine a world where managers always recognized and rewarded their most capable people. It would be hard for a rational employee to leave a great job for a ten percent chance of creating something even greater. But leaving a boss who is Satan's learning-challenged little brother is relatively easy. And if the general economy isn't serving up wonderful job opportunities at other companies (thanks in part to bad management) then you can see why people gravitate toward starting their own companies.
The best developers are already thinking of striking out on their own. These are already the people who are clued in. Why not let them step out on their own, and hire them back with a few of their talented friends in the community as a consultant? That IT manager may have been incompetent as an IT manager, but he or she might make an excellent liaison to the new consultants. Sometimes it is easier to work with someone than for someone.
Also, some corporations are limited by law or economic reasons to their local market they are and they may have to make decisions based not on what is best but rather on what is available. A consultancy or contractor may have a lot more flexibility in the options they can bring to the table. Perhaps they have experience handing telecommuter teams, while your company doesn't. They might be able to hire a developer from Israel, who lives part times in France, and can finish that project in a week and a half.
I'm not trying to gloss over the downsides of out sourcing. It is by no means always a rosy magical world of happiness. I am simply trying to illimunate the current efforts at outsourcing as the clumsy beginnings of what will become a much more sophisticated market.
Some may claim that this will inevitably lead to the same situation we have today where the consultancies of tomorrow have a single product that they schlep from project to project. They may be correct, time will have to tell. I suspect that the truth in 20 years will be even stranger than we know.
Update: Apparently the Perl Ironman blogging contest wants me to mention CPAN as well for it to show up.
[^2]: Temporal-arbitrage being the concept that even in the same place, all other things being equal, prices change depending on the time.