When it comes to software development, Microsoft can learn a thing or two from Linux, including practices that promote rapid technology development, according to an internal company memo posted on the Web.
Microsoft's well-oiled marketing machine is the envy of the software industry, but comments included in the so-called Halloween memo, posted by independent programmer Eric Raymond over the weekend, show that Microsoft's behind-the-scenes software development process suffers from many of the same problems faced by software developers large and small.
As reported yesterday, the memo warns that the growing popularity of Linux and other open source code software poses a direct threat to Microsoft's revenue stream.
According to the memo, Microsoft's own developers could greatly benefit by modeling the open source software (OSS) movement to improve and standardize internal processes such as code sharing and reuse, developer communication, and software design.
The memo, written by Microsoft's Vinod Valloppillil, an engineer who analyzes industry trends, sheds light on the company's own development practices. Microsoft, one of the largest vendors of software development tools, spends considerable marketing dollars to promote integration of its software products as well as the establishment of development teams. However, the memo appears to indicate that the company's internal development process suffers from the same ills, including poor communication, that Microsoft tells its customers it can help to alleviate.
The memo lauds the open source model of software development, in which individual programmers contribute to the development of software such as the Linux operating system and the Apache Web server. According to the memo, the OSS development process "promotes rapid creation and development of incremental features and bug fixes in an existing code/knowledge base." In effect, the widely available software code creates a hothouse of development activity, leading to constant improvements to the technology.
The memo, which also says that OSS projects have "acquired the depth and complexity traditionally associated with commercial projects," goes on to ask how Microsoft can recreate the OSS development environment internally. The memo points out that Microsoft developers should view the company as "an idealized OSS community, but for various reasons, do not."
The problems include a mix of incompatible development "modes," meaning that developers working on different Microsoft products, such as Windows NT and Microsoft Office, use "wildly different" procedures for building code, according to the memo.
Also, development tools, source code managers, and databases for storing software bugs and compiled code are not standardized among development teams, the memo states.
More surprisingly, programmers at Microsoft do not have access to a central code repository, so developers cannot review software from projects outside of their own. As one contributor to the memo states: "A developer at Microsoft working on the OS can't scratch an itch they've got with Excel, neither can the Excel developer scratch an itch with the OS. It would take them months to figure our how to build and debug and install, and they probably couldn't get proper source [code] access anyway."
Also, vital information on software bugs and issues with particular Microsoft software components are not circulated outside of single-project development teams, according to the memo.
The memo also points out that Linux and other OSS projects make it easier for developers to experiment with small code components than Microsoft's operating systems.
"The Linux development system has evolved into allowing more devs to party on it without causing huge numbers of integration issues because robustness is present at every level," according to one comment included in the memo. "This is great, long term, for overall stability and it shows."
Microsoft representative Adam Sohn said of the memo, we "will not spend a significant amout of time responding to this email. It's just a document prepared and offered up to management. People craft these sorts of documents all the time," he said.