At OSS Watch we recommend that software be split into reusable components wherever possible. Furthermore, we argue that projects should work to make their components attractive to third parties. This is good software engineering and open development practice that can lead to more sustainable software since it enables open innovation.
Unfortunately, software development teams often claim that the effort required to properly architect reusable components and to build community interest in those components requires resources beyond those available within a typical research project’s budget. It’s hard to argue against this view when the research team is only tasked with solving the immediate problem, and not tasked with the long-term sustainability of the software involved.
Since we were not having significant success in making this point, we set out to demonstrate through practice. We wanted to show that it is possible to solve the immediate problem as well as ensure the long- term sustainability of software outputs and, perhaps more importantly, the research team. All that is required is some forward planning and some new skills.
Our first step was to work with the University of Bolton, who had implemented a W3C Widget server as part of a much larger EU project. We helped the Bolton team, headed up by Scott Wilson, to take their code into the Apache Software Foundation’s Incubator. Since Wookie’s entry into the Incubator we’ve been working to build a community around the project. Bolton alone has received in excess of £700k in further funding relating to Wookie and the project itself has received many code enhancements from the community.
Our work on Wookie led directly to the extraction of more code components from three separate projects, two in the US and one in the Netherlands. This created a second project in the Apache Incubator called Apache Rave, which provides a platform for the creation of web applications built with OpenSocial Gadgets (reusing Apache Shindig) and W3C Widgets (via Apache Wookie). This is a relatively new project, but already the collaboration of all partners is leading to yet more reuse and collaboration.
One example of this is a new project (funded by the JISC) called Rave in Context. This project uses both Wookie and Rave to provide a new user interface to the popular MyExperiment scientific workflows application. By leveraging the widget features of Rave and the API provided by MyExperiment we will be demonstrating how user interfaces can self-adapt to different hardware devices and user environments. We’ll also be building widgets for accessing Simal and OpenDOAR with the same interface.
Of course, this project is itself an open development project. We will be extracting a series of generic widget templates for common web application features. These templates will be donated back to the Apache Wookie and Rave projects (as appropriate), whilst feature-specific implementations will be offered to the MyExperiment, Simal and OpenDOAR projects.
It’s taken us nearly two years to reach this point. Along the way various sub-projects and related teams have secured funding. Each of these projects has highlighted the open development approach as a major component of its sustainability plans. We’ve also engaged commercial partners in these projects, providing further resources to ensure the ongoing support of the open source code and the research teams that depend on it.
We hope that this practical demonstration of openness as a sustainable academic research practice will encourage you to budget for sustainability in future proposals. Of course OSS Watch is here to help you at bid-writing stage.
PS We’ve just had a third project relating to the Open Grid Computing Environment (OGCE) accepted into the Apache Incubator. Watch this space for more info on Apache Airavata.