There was an interesting article in
www.zdnet.com/zdnn regarding OSS vs. Closed Source Software, and the huge number of anti-Microsoft postings, some of which I agree with, others, plain stupidity. After reading the article and comments, here are some of my views.
Closed source software doesn't have to be buggy, bloated, inefficient, and security hole ridden. The vast majority of programmers in the world, including those in Microsoft, do not want to create buggy, bloated, inefficient and security hole ridden applications, not necessarily because of the impact, but because of human nature. When a person does a job, and has a passion about that job, say, a programmer, they put 100% in, and the majority would rather walk away knowing what they did was a good job. When it does hit the marketplace, people use the product and for the most part, are happy with it, and the programmers are happy because what they have produced has satisfied their customers.
Many people, especially in this group blame a number of groups and/or people for the poor quality of software from Microsoft. A small number in COLA will simply state that the software is poor quality because it is closed source, mainly because it is not developed under the GNU license. Another group simply blame the popularity for its vulnerability to virus's and security issues, and claim that if Linux had the same popularity of Windows, it would face the same issues. The remaining group blame the marketing department in Microsoft for its need to rush products to the market place before adequately testing software, especially in the area of operating systems.
So, what do I believe is the one cause? I believe the cause is not at one point, but at three points.
The first point is in marketing, the failure to realise that that is what their task is, to market, that is it, not to decide when a product should be launched, or whether a product is ready to be launched. The best move by Microsoft would be to get rid of its inside marketing department and out source it to the likes of Saatchi & Saatchi who come in only when required, and have no decision in how or when the product is ready.
The second point is in leadership. There is a failure in leadership in regards to the fact that a large number of executives are not technically minded and fail to realise the full scope of a development process, and as such, place unrealistic development times on developers.
The classic example would be the transition from Windows 2000 to Windows XP. Windows XP wasn't a mear upgrade, there were major kernel changes, yet, the expectation on the programmers at Microsoft was that they should ship it in 18 months, which was a totally unrealistic goal. When Windows XP was released, there was a list of bug fixes a mile long, and large portions of the Windows XP SP1 have already shipped in the form of hot fixes, many of the issues could have been fixed through better beta testing and a longer development cycle.
For intensive purposes, Windows 2000 is a pretty good product in terms of stability, security and reliability. This was due to the longer development process. Microsoft should have shipped Windows 2000 in 2000, then pushed the next version of Windows out to 2004-2005, and maintained a service pack release cycle, based purely on fixes, every 6 months, thus, over 5 years 10 service packs would have been released. In terms of features, such as support for new devices, these can be a seperate download off the Microsoft website, and thus, ensuring that the basic OS remains in tact. Once fully tested, that is, say, the new device addition is for USB 2.0, has been tested for 4-5 years, it will then be ready to be merged into the main trunk of the Windows source code. The same situation can happen in the case of the server versions of Windows through a registered early release connection for a small fee where by people can have access to the latest version of say IIS, so that those who wish to keep with the current OS and move forward on the server application front, they can, those who wish to keep with the status quo can, thus, again, after 5 years of extensive testing, it can be then merged into the main trunk of the Windows 2000 server source code.
Company culture is the third issue that courses problems. This is spun off from the leadership issue where by features are more highly prized over producing stable and secure products. As I also previously covered, many of the executives at Microsoft fail to realise that with ever new feature added, new security holes and stability issues are brought about. Windows XP is the prime example. Windows 2000 is just going to become reasonably secure when SP3 is released, and Microsoft wants to release a version of Windows which includes a whole new set of features and major kernel changes. They assume that there will not to be any security and stability issues arise even with such a heavy OS overhaul? it is pretty naive in assuming that.
When you add these three issues to the mix, you end up with Microsoft. A company lead by people with a lack of realistic vision and timetables, and expect that by simply telling the coders to code perfectly, everything will be solved. It won't be until they address the three key issues I have talked about.
Matthew Gardiner