Sunday, December 31, 2006
What does Outsourcing have to do with the Agile Manifesto?
Outsourcing is all about chasing a cheaper salary for an individual resource without necessarily getting any guarantee that total cost of ownership will be decreased. Many IT shops that outsource resort to accounting for costs at a macro-level and eschew efforts to increase the productivity at an individual level. The mantra of getting lower rates trumps developer efficiency so as long as the numbers work out in the end.
Likewise, there is a pattern amongst developers in the Ruby community in that their call to action is all about individual productivity without concern for macro-level accounting with the argument that if you increase efficiencies in the small, you also increase efficiences in the large.
The funny thing is that many enterprise architecture teams are in the middle of such opposed perspectives. Wouldn't it be interesting if we could have a conference panel where we took say the CIO of United Technologies and had in interact with the likes of David Heinemier Hannson? Of course this would need to be moderated. What would happen if we also added Kent Beck to the panel along with Richard Stallman? What if we were to get the likes of Robert McIlree and Nick Gall for good measure to represent the EA perspective on this subject? I would also throw the CEO of Accenture and Wipro on the panel as well for good measure. Would you want to see this discussion occur at a large industry conference?
If I were ever chosen as a moderator for such a panel, I would of course have a difficult time withholding my own opinions but would start the discussion off by asking the question:
- What is the difference between programmers and developers?
This would probably lead to a discussion that states that programmers are folks who specialize in writing code while developers provide more value such as writing specifications, automated test cases, writing documentation, and most importantly helping customers work out tough problems. It does beg the question if folks in India at best are nothing more than programmers?
Anyway, I think this question if properly discussed is more telling as it will lead to the union of several otherwise opposed thinkers. Enterprises who outsource are doing so because they feel there is value in getting cheaper programmers. These same enterprises probably have a good strategy to keep all the developers around. Likewise, the smart folks I have worked with in the Ruby community usually have figured out that they didn't want to be programmers in large enterprises and wanted to be developers in small enterprises who have the potential to be large.
Now the only disconnect that still remains is whether consulting/outsourcing firms who embrace agile methods will also attempt to destroy developers as well or figure out how to embrace them to the benefit of their client's competitive advantage or simply focus on their own mission. Should the Ruby community be fearful of those types of consulting firms?