Walt Scacchi of the University of California, Irvine, and his colleagues are conducting formal studies of the informal world of open-source software development, in which a distributed community of developers produces software source code that is freely available to share, study, modify and redistribute. They’re finding that, in many ways, open-source development can be faster, better and cheaper than the “textbook” software engineering often used in corporate settings.
From National Science Foundation:
Faster, better, cheaper: Open-source practices may help improve software engineering
ARLINGTON, Va.–Walt Scacchi of the University of California, Irvine, and his colleagues are conducting formal studies of the informal world of open-source software development, in which a distributed community of developers produces software source code that is freely available to share, study, modify and redistribute. They’re finding that, in many ways, open-source development can be faster, better and cheaper than the “textbook” software engineering often used in corporate settings.
In a series of reports posted online (see http://www.isr.uci.edu), Scacchi is documenting how open-source development breaks many of the software engineering rules formulated during 30 years of academic research. Far from finding that open-source development is just software engineering poorly done, Scacchi and colleagues show that it represents a new approach based on community building and other socio-technical mechanisms that might benefit traditional software engineering.
“Free and open-source software development is faster, better and cheaper in building a community and at reinforcing and institutionalizing a culture for how to develop software,” said Scacchi, a senior research scientist at UC Irvine’s Institute for Software Research who has taught software engineering for two decades. “We’re not ready to assert that open-source development is the be-all end-all for software engineering practice, but there’s something going on in open-source development that is different from what we see in the textbooks.”
Scacchi and his colleagues are studying open-source projects to understand when the processes and practices work and when they don’t. These findings may help businesses understand the implications of adopting open-source methods internally or investing in external open-source communities. The studies are supported by several Information Technology Research awards from the National Science Foundation (NSF), the independent federal agency that supports fundamental research and education across all fields of science and engineering.
Three projects–one by Les Gasser at the University of Illinois, Urbana-Champaign, and Scacchi, one by Scacchi and John Noll of Santa Clara University and one led by UC Irvine’s Richard Taylor–are applying the lessons learned from open-source practices to create new design, process-management and knowledge-management tools for large-scale, multi-organization development projects.
“In many ways, open-source development projects are treasure troves of information for how large software systems get developed in the wild, if you will,” Scacchi said.
Open-source project databases, for example, record hundreds of thousands of bug reports. Gasser and Scacchi are mining those databases to try to understand how bug reporting relates to software quality or if it has other implications. “These are unprecedented data sets in software engineering research,” he said. “We’re thinking of these databases in a ‘national treasure’ sense. We’re never going to get this from a corporate source.”
Not all open-source projects are alike, however. A small number of open-source projects have become well known, but the vast majority never get off the ground, according to Scacchi. He and his colleagues are trying to understand how successful projects, such as the Linux Kernel, grow from a few individuals to a community of a thousand developers.
Similarly, they are trying to determine whether or not open-source software is appropriate for complex, fixed-requirements projects of interest only to a limited community (for example, air defense radar software). It is unclear whether such systems can or will ever be developed in an open manner, or whether open-source approaches would falter, while traditional software engineering approaches would succeed.
To explore the breadth of open-source activity, Scacchi and colleagues are looking at more than a hundred projects in several categories: network games, Internet and Web infrastructure, academic and scientific software and industry-sponsored activities.
The network games include PlaneShift, Crystal Space, and game “mods” for Epic Games’ Unreal or id Software’s Quake game engines. Internet and Web infrastructure projects range from Linux Kernel, Apache and Mozilla to GNU Enterprise. In another project, Mark Ackerman at the University of Michigan and Scacchi are examining how scientists working in fields like X-ray astronomy and deep-space imaging are using open-source software to support basic scientific research. More recent efforts are examining industry-sponsored open-source projects including NetBeans from Sun Microsystems and Eclipse from IBM.
“The software-intensive systems in today’s world have become so complex that we need every available design tool at our disposal,” said Suzanne Iacono, NSF program director. “Open-source development has achieved some remarkable successes, and we need to learn from these successes as our systems become increasingly distributed, complex and heterogeneous. Traditional software engineering methods were originally developed for single-system design and development.”
The researchers have so far identified a number of ways in which open-source development surpasses traditional software engineering. In successful projects, open-source development is faster in the pace of evolution and the rate of software growth. Expertise also spreads faster through the community.
The researchers also report that open-source development is better because of, among other features, its informality, which enables continuous system design and more agile development processes. And open-source is cheaper because the development tools are often open-source themselves and because other costs are often subsidized by corporate donations, volunteer efforts and “gifts” for the collective good.
“Open-source is not a poor version of software engineering, but a private-collective approach to large-software systems,” Scacchi said. “This is perhaps a new fertile ground between software engineering and the world of open-source and may be what the open-source community can contribute to new academic and commercial development efforts.”