Wednesday, 9 November 2005

Does open source software development follow the scientific method?

One of the most exciting, and revolutionary, innovations in software development practice has to be the development of open source software. That open source works as a practical method of software development doesn't need too much debating: there are many successful open source products and companies. Products include the entire GNU/Linux operating system, the Apache web server, many security offerings such as snort and much more.

There are significant similarities between the ethos of the open source software movement and the ethos that most scientists would consciously or unconsciously agree to: a focus on openness, free sharing of information, the ability to reproduce and tinker.

This post focuses on the question whether the development methods of open source software bear a relation to those principles that philosophers of science claim to have identified in the development of scientific theories—and whether open source software development can shed some light on issues that might have been missed by philosophers of science in the past.

It would be attractive to see the success of the open source movement as another example of the success of the scientific method if it were not for the fact that beyond a superficial level there is no agreement in philosophy circles on what exactly constitutes the ‘scientific method’.

Broadly speaking, the consensus is divided in two camps. On the one hand there are philosophers who believe that there is some method or rationale behind scientific research, and that the aim of scientific research is to improve our theories, approach the truth, or make an inference to the best explanation. On the other hand there are philosophers, cultural scholars and a bundle of sociologists who argue that scientific knowledge is socially constituted.

A key observation is that the main point of debate between these camps is not the existence of rationality in scientific endeavor, but merely the direction of this rationality. ‘Traditional’ philosophers of science maintain that the goal of scientific rationality is improvement of scientific knowledge; the other camp believes that the goal of scientific rationality is social and professional advancement.

Philosophy of science has been stuck in this Gordian knot for the best part of the last 35 years, and it is here that a more detailed philosophical study of Open Source Software can make an impact. This contention is based on the three following premises:

  1. Open Source Software follows an ethos very similar to that of scientific development, and has the same commitments to improvement of the end result, openness and sharing of information that has to this point characterized the Western scientific community

  2. Open Source Software is successful from a social perspective, with a significant adoption by businesses and end users.

  3. Open Source Software is successful in improving its end product – measured not only on the scale of social adoption, but also on the scale of improving the stability, security, and overall quality of the software.

No comments: