Last week I wrote a blog entry stemming from my experience in South Africa and my impressions about the way the OSS preference policy is being considered. What has come of it is a string of rather pointed comments questioning my intelligence and calling me quite the assortment of names - I though xenophobe was a particular low-point in the comments. Given the comments, it is worth clarifying my thinking and making a few points.
1) I think collaborative development can be extremely beneficial to South Africa. In fact, I think it should be a key aspect to their IT strategy for their eGovernment strategy. I simply don't think that discussion is limited to being about platforms. There is absolutely no reason that the agencies using any platform are precluded from using collaborative development to drive greater value from the existing ICT investments. To the extent that an agency is in the process of considering making new platform investments, then they should be free to look at all options and choose the one that provides best value for money over the long run.
2) I think technology mandates are not good policy in any country. In fact, I remember speaking at George Washington University a few years back and making this same statement. At the time, the Executive Director of the Free Software Foundation and the CTO of Red Hat both expressed support of that comment and that their organization's held the same view. Technology providers want their current and future technologies considered on the merits of the technology and the value those technologies bring to those who choose to consume it. If a government mandates a specific technology and/or class of technologies, they are unnecessarily restricting their own choices. Inevitably statue moves more slowly than technology, and mandates subsequently lead to sub-optimal choices.
3) My comments about the education of developers is a macro point and has absolutely nothing to do with whether those developers are in South Africa or any other country. I have no doubt that there are very talented Linux kernel developers in South Africa. Great - good for them, I think that is awesome. But it still doesn't answer the macro question about the types of projects that will both create high-value solutions and attract local participation leading to the in-country skills development that the policy is seeking to do. While I'm sure there is a subset of folks deeply interested in the core OS functions, there is a reason that a very small percentage of developers work on core OS development. I'd guess this is the same reason that there are relatively few operating systems compared to the literally millions of applications out there. Skills development is a good thing - I'm simply advocating that people look to the possibility that there is far more to collaborative development than OS coding.
4) I made a point in my last post on this subject regarding the opportunities for the creation of local software businesses based on OSS. Many, many governments are eager to see the growth of local software businesses. I am fully supportive of that intent, but don't happen to believe that OSS is necessarily the best model to bring that about. Economic opportunity is bolstered by having something unique. The most successful OSS companies have found a way to "hybridize" their solutions to in some way secure the uniqueness of their work while still tapping into the collaborative development community. Comparing the number of companies that have been commercially successful using that model with the tens of thousands of software providers using other development/commercialization approaches suggests to me that an OSS mandate is not likely to lead to the growth of local commercial software firms.
I was impressed with the people I met in South Africa. But I was also struck by the political realities of a technology mandate vs. the real-world opportunities open to them through a broader approach to collaborative development.
I was deeply involved with a series of projects that demonstrated a wide range of possible approaches to collaborative development (using non-OSS, OSS, and Free Software licensing models; using various approaches to tools, project types, funding models, etc.). Furthermore, I went through dozens of scenarios of thinking about core assets vs. complimentary assets and how OSS dev methodologies could be applied. There is so much more to the conversation than Linux vs. Windows. In fact, given the world of interoperability opportunities today, I'd argue that enterprise-scale environments are far better off thinking about "and" compared to "vs." and really looking at where the value to them from collaborative development is. Commercial implementations of enterprise-class operating systems are not free of cost. So - again, to me, the question is about how collaborative development can be used to extend the value of any platform decision.