The wonder of the free software movement is its ability to attract people of wildly varying ideologies to its camp. It is telling that Keith Curtis, a former programmer at Microsoft and a radical libertarian and free market ideologue, finds inspiration in the free software movement and passionately argues why it offers the greatest hope for humankind´s future. In his recent book, After the Software Wars (PDF, EPUB), Curtis lays out arguments for why his former employer, Microsoft, and other proprietary software companies are bound to loose to free and open source software.
The book is self-published by the author and lacks much of the polish and careful analysis which would be expected from a professionally published book. Often the arguments are random snippets and half finished ideas, admixed with a mishmash of quotations from everyone from Milton Friedman and Peter Druker to Bill Gates and Linus Torvalds. Despite the amateurism of the presentation, Curtis does have something to say and he offers an intriguing vision of the liberating and empowering potential of software for humankind. Even more interesting, is the point of view that Curtis brings as a former Microsoft employee who clearly enjoyed his work at the dominant software engineering firm on the planet, but still finds the proprietary software development model doomed in the long run.
As a technology enthusiast who loves to tinker, Curtis revels in the power and flexibility which Linux offers and foresees that it will eventually steal the market from the lumbering proprietary firms which have dominated software development for the past 3 decades. Curtis predicts that free software will be able to harness to efforts of ever larger masses of programmers in ways which make it impossible for proprietary firms to compete. The open collaboration which free software fosters will out-engineer and out-innovate any company which operates in its own enclosed silo. The free software movement should take heart to hear a former Microsoft employee make these pronouncements, but unfortunately, Curtis is more of a visionary and futurologist than a careful market analyst, so his predictions need to be taken with a grain of salt.
Where Curtis offers interesting insights is in his observations about Microsoft, both in what the dominant software firm did well and where its future weaknesses lie. Curtis makes the case that Microsoft didn’t just win the software market due to leveraging its market power, but rather through its excellent engineering of products which were simply better than its competitors. Curtis is patently biased in this regard, since there are a number of counter-examples where Microsoft captured respective markets in spite of its buggy and/or inferior software. It may be that Internet Explorer was a better engineered web browser than Netscape Navigator as Curtis argues, but no credible analyst would posit that Internet Explorer captured nearly 90% of the market because of better engineering. Clearly Curtis is overly awed by the quality and craftsmanship of the Microsoft programmers with whom he worked for so long, but his own partisan appreciation for the Microsoft team is what makes his arguments for free software so convincing.
Despite the fact that Curtis clearly believes that Microsoft engineered better software than its proprietary competitors, he posits that upstart free software is already better in many respects and will potentially blow away any competition in the long term due to its openness and ability to harness the contributions of ever-growing numbers of programmers. According to Curtis, Microsoft’s products are buggy not due to the poor caliber of its programmers and their poor management, but rather due to their limited number. The 10,000 programmers at Microsoft are simply too few to handle all the bugs which arise in its plethora of programs. He points to cases where there weren’t enough software engineers to go around, so the best had to be yanked from projects whose development was allowed to languish. Considering that there are 3000 developers for the Linux kernel alone, Curtis is probably correct that Microsoft doesn’t employ enough programmers to properly handle its huge software stack, but he doesn’t ask why Microsoft which has enormous cash reserves and a huge market capitalization doesn’t hire more programmers if lack of manpower were simply its problem.
Although the lack of developers is clearly a limiting factor for any program developed exclusively in house, Curtis’ facile analysis of the problem is superficial at best. He doesn’t attempt to answer the critics of the distributed development model employed advocated by open source proponents such as Eric S. Raymond, nor does he acknowledge the cases where the numerous volunteers for a free software project fail to produce superior products. Perhaps, Curtis can be excused because these topics have already been covered by other authors, but it would have been nice to see a better acknowledgement of the issues raised by Fred Brooks’ Mythical Man-Month rather than one dismissive footnote.
More insightful are Curtis’ other observations about the problems at Microsoft. Its focus on performance gains and the closed development environment led to spaghetti code which was not cleanly delineated and easy to understand and maintain. His graph of function calls inside Apache vs IIS illustrates the point perfectly. Curtis also notes the factionalism and lack of cooperation within Microsoft, which arose from the developers of one product lobbying to limit the functionality of competing products of Microsoft. Unlike free software which encourages reusing code from other projects, Microsoft products often developed their own separate code, so SQL Server for example became almost a complete multi-threaded operating system within itself.