Nothing as Authentic and Scalable as Open Source

By Will Schroeder, Kitware

Authenticity. It is one of the most important characteristics of open-source software, cutting through the marketing spin, half-truths, and gimmicks designed to attract attention without delivering the goods. With open-source, what you see is what you get. It offers a quality, low-cost solution that avoids the licensing issues that get in the way of solving real problems.

Open-source solutions enable customers to fully evaluate a technology to understand what is offered, what it does, how it can be improved, and how to fit it into a workflow. Like a refreshing blast of fresh air, I generally feel invigorated when I engage with open-source products.

In the future, organizations and communities that can speak clearly, honestly, and openly about their products will excel; finding an oasis of authenticity in a desert of hype will be increasingly valued. This ability will spur the success of commercial, academic, and research ventures.

Open source leads to an agile, high-quality collaborative process that can be everyone’s secret weapon. While there are a lot of individuals and organizations producing outstanding algorithms and systems, too often the resulting software won’t cross platforms, breaks easily, and is unstable in response to new data and parameter settings. Open-source companies don’t necessarily have better programmers, but their processes help identify and fix code problems faster. Thus open toolkits and applications are known for their stability, robustness, and flexibility, which is why thousands of users and customers build their own applications based on open-source languages.

For all these reasons, an agile software process is critical to scientific computing. Technology is advancing so rapidly that users and developers need to be able to respond to new developments, refactor code, and fix software issues to keep up; and while doing so they must have confidence that the technology they are developing is of high quality. Most organizations can’t wait for a proprietary code base to respond to issues and technology challenges.

In the current environment, data sets are becoming bigger, systems more complex, research teams are growing in size and scope, and solutions require the integration of multiple technologies. As a result, keeping up and making use of technical advances is becoming more difficult. Open source software processes help by scaling better than proprietary models.

The book Wikinomics argues persuasively that open-source approaches successfully pull together teams from disparate organizations with widely ranging talents to solve difficult problems. I particularly enjoyed a recent example described in Nature: Timothy Gowers of the University of Cambridge ran an experiment in collaboration by describing the Polymath Project on his blog. While the goal was to solve a math problem, Gowers wanted to attack it using collaborative techniques inspired by open-source development. Within six weeks the problem was solved with the contribution of more than 800 comments and 170,000 words from participants as diverse as high school teachers and mathematical luminaries.

I believe open-source approaches are far more capable of solving difficult technology problems than other processes, and the future of scientific computing will depend on growing, managing, and coordinating large, ad hoc communities. This will challenge many of us, whether we are trying to coordinate international teams of researchers or businesses that must learn how to assemble, manage, and motivate disparate communities to provide effective technology solutions.