Wednesday, July 28, 2010

The Development Commons Approach

Today's columnist is Julian Egelstaff from Freeform Solutions. He writes:

There's this myth that open source software is built by an army of volunteer programmers around the world who all collaborate in fixing bugs, adding features, and generally raising the bar.

It's true for some large projects, like Linux and Firefox. It's not true for the vast majority of code that has been released under open source licenses. If you count all the projects on major open source code repositories, the overwhelming majority have only /one/ developer.

At Freeform Solutions, we have a mission to help not-for-profit and public sector organizations use technology more effectively. We advocate for open source, as one way to achieve that goal. We use and promote some software that does have large groups of programmers. Drupal is a perfect "middle weight" example. It's no where near as big a project as the top open source solutions. But it is a very successful project, with people supporting and working on it around the world.

But if promoting open source comes down to advocating that people use the best mid-sized or larger open source projects, then all we're really doing is promoting successful open source "products" as alternatives to proprietary products. We don't simply believe open source products are competitive with proprietary counterparts. We believe in the power of the underlying principles of open source. We believe that it empowers people to have access to software's source code. We believe collaboration and sharing makes better software.

So if we truly believe that, how can we extend those benefits to the organizations we serve, who can't collaborate at a technical level? This is an ongoing challenge and we have come to label our solution the "Development Commons".

The Development Commons works at a number of levels. Sometimes, we view it simply as the activity of providing a way for the different organizations we work with, to work with each other to solve common problems. We act as a connector node in a network and bring people together so they can benefit from each other's insight and experience. Sometimes we view it more technically, as the activity of enabling the participation of our non-technical clients in the technical business of contributing to open source software.

At this technical level, Freeform Solutions is essentially acting as a proxy developer for the organizations we work with. They cannot engage in the code themselves, but there are benefits to be had if their experience with the software can be translated into new features and other improvements. At the end of the day, this requires commit access, either directly or indirectly. You can't participate in an open source project if you don't have a way of sharing your code.

So it's no surprise that our most extensive Development Commons project, at a technical level, is the Formulize data management and reporting system. We are the lead developers on Formulize and guide the roadmap for the software, so there's no barrier at all to getting code changes into the software. We have used this position as an opportunity to translate the various needs of our clients who use Formulize, into new features and improvements that benefit all users. Instead of adding a feature to meet need X of a particular client, we add the capability of meeting needs like X to the software, and then everyone benefits from that one organization's contribution. This is a powerful way to facilitate contributions from non-technical participants, who often have the most experience in using the software, but the least ability to engage in its development.

After six years of development, Formulize is now on the cusp of its fourth major release. Over the years, many organizations have contributed in large and small ways to the project, sometimes as more passive users simply making their needs known, sometimes as active sponsors of major features. The cast of characters is diverse and international, ranging from science outreach organizations in Canada (Let's Talk Science and Actua), to child welfare groups and projects (the Ontario Association of Children's Aid Societies and the Maltreatment and Adolescent Pathways research project), and to non-profit associations in other countries (the Australasian College of Sports Physicians and the Frontier Airlines Pilots Association).

None of those groups has the technical capability to develop software. But through a Development Commons model, they have all contributed to the creation of innovative web-based software for collecting, managing, and reporting on data. Their subject areas are diverse, but their technical needs have enough in common that they can collaborate through a well-managed development effort to meet their individual needs through shared action.

The latest organization to join the commons is among the most surprising of all: Microsoft.

Perhaps realizing that desktop dominance will never be the one true path to monopoly that it once was, Microsoft has been ramping up its profile in the open source community as much as possible in the last few years. Earlier this year, representatives from Microsoft Canada approached us about including Formulize in their "web platform installer", basically a simplified way for people who use Microsoft's web server software to install and use web-based applications. If you've ever installed Wordpress through one click in your ISP's control panel, you know what I'm talking about.

The beautiful thing about open source licenses is they make it possible for anyone to contribute, and they require that anyone who does, plays by the same rules. The old "embrace, extend, extinguish" tactics that Microsoft has used in the past can't work against proper open source licensing. It's a level playing field and anyone is welcome to play, to the benefit of all.

We are very excited to see what directions lie ahead. The fact that the cast of characters keeps growing in different directions is a good sign. Version four of Formulize is a major consolidation release that caps six years of Development Commons work. We see it as validation that open source methodologies themselves can provide value when you find ways to engage all kinds of participants, even without an army of developers.


No comments: