I’ve had an interesting discussion recently about globalization in software engineering. Because it’s a ton of text, I thought I could regurgitate it here, too, especially because I’m curious what other people think. The sections in quotes are Steven’s.
Microsoft has suffered several law suits by EU, an effect I consider of globalization of their products.
I am not entirely sure this is only due to globalization. The USA has also sued Microsoft for abuse of their monopoly, and the Findings of Fact published by Judge Pennfield Jackson are quite clear: Microsoft have abused their monopoly on their home turf in the USA, as well as internationally. The difference is that in the US, Microsoft settled out of court with many of the parties involved, often for undisclosed sums of money. Those parties that could not be bought, such as the state attorneys general, dropped the case after George W. Bush came into power. This has been documented by several news sources, for example stating “[…] the Bush administration has sharply changed course by repeatedly defending the company both in the United States and abroad against accusations of anticompetitive conduct.” (Labaton, 2007).
So this is turning into a case of politics of power and has little to with responsible IT: The USA under Bush clearly wants to keep this US monopolist around and as powerful as possible, no matter how it has gained its power. The EU meanwhile is certain that Microsoft’s monopoly abuse is what keeps them in business, and this is against the law:
“the Commission finds that Microsoft infringed Article 82 EC and Article 54 of the Agreement on the European Economic Area (EEA) by twice abusing a dominant position.” (EU Commission, 2007)
With another president, or under the Clinton administration, Microsoft would have been punished for their illegal activities even at home, I am certain of that. Having a 90% market share at home or worldwide should make little difference to US state law, as US state law about market abuse certainly can’t extend to foreign markets (except when dealing with multinationals that have branches in the US, of course).
What in your view is balance between a computer systems developer and the global market in terms of responsibility of their product? is it better to develop a product with as much leeway as possible for the largets extent possibel range of customization for different target markets/users or controlled design where the designer/developer of the product retains most of the design level responsibility and thus the power to alter the product?
My view in one sentence is this:
In terms of responsibility, I think all that is required is to adhere to open standards and to work with the competition on interoperability and compatibility.
But this has a lot of implications! Of course companies that rely on heavy vendor lock-in, such as Microsoft and Adobe, would be happier to stay as incompatible as possible. Microsoft for example deliberately altered their own implementation of the Kerberos standard to be incompatible with everyone else’s, because they knew that with their dominant position in the market, they could carve a niche for themselves and claim that the others are incompatible to them.
A responsible OS developer instead would have put their engineering efforts into staying compatible, and their technical advisors on the board of the entity that controls the Kerberos standard. If all the other members of this board agree that Microsoft’s modifications are good and useful, they would have been part of a later version of the standard, and the horror that is W2K Kerberos would have been prevented. These tricks have not stopped: Microsoft internally calls this strategy “embrace, extend and extinguish”. They want to destroy interoperability and competition in this way.
Scope of the shipped product
I believe it’s not bad to ship a full-featured product, but for a convicted monopolist like Microsoft, the rules are different. They have abused their monopoly to gain a strong foothold in several markets where they were not present before: web browsers, instant messengers, PDAs, smartphones, servers, media players, video codecs. They have to be careful, because they are already a monopoly. Either they include none of this technology with their system or they include all of it. Because the latter is impossible, I believe for them the right thing would be to include nothing, just the bare OS, and let the user decide which programs they are going to install.
Other vendors have no such monopoly, so they can ship a full-featured OS that includes all of these tools. The difference here is that for the other vendors, every one of these components can usually be switched for another by the user, easily. On the Windows platform, the hurdle is higher: users need to know how and where to download and install software in order to switch from MSN Messenger to AOL Instant Messenger or Pidgin. On a competitor’s OS such as Ubuntu, all the choices they have in instant messenging (several dozen programs) are displayed to them in a menu and installation takes one click. Also, on Windows they can’t be sure that the source of their downloads is trustworthy. On Ubuntu, cryptographically signed packages make sure that the downloads are what they claim to be.
This discussion could go on and on, because now we are entering the realm of system architecture. Due to Windows’ (and Mac OS X’s) architecture, several of these “switch this for that” tricks are not as easy as on other systems, which ultimately also impacts how you can ship a product. It’s easy to ship a stripped-down Debian GNU/Linux which the user completes on their own. It’s hard to ship a stripped-down OS X.
So in the end, it does have something to do with software engineering, but I believe the SE aspects are eclipsed by issues of power, politics and economic goals.
In the end, I believe there is no real fairness in this market. But I also believe that the importance of the desktop operating system is going to fade rapidly in the next decade. The things we are worrying about now will matter little when application programs are streamed to users on their televisions as well as on their mobile phones. In the end, the user wants to access their data. They do not want to “click on the OpenOffice.org icon, then choose the document to open”, they want to “continue writing the letter”, and they do not care how this is brought about. Whether they do this from an Apple iPhone or a newly released Microsoft LCD Television should not matter. To achieve this, we need the interoperability and shared, open standards that I mentioned.