Open Source, Take Two.
A little more than a year ago, we started something unprecedented in my career here at Viget: We made the decision to make some of our code freely available to the public. The software was Tyrant, and while we haven't put together an "official" release, this first effort was enough to spark an interest in releasing more of our work to the larger developer community. A few months later, we reconvened to discuss ideas for Rails plugins that would be useful to other developers. After a lively discussion and some good ideas, we left the meeting feeling invigorated with plans for a new VPS to host both a Trac installation and a public-facing Subversion repository. Some of those original ideas died out, but others live on as active projects, and even more have been created as we encounter new challenges. This is all part of the life-cycle of a healthy open source ecosystem, where new approaches to problems and changes in technology give way to better solutions.
Lessons LearnedAfter seeing some of our projects gain attention, and from tracking other open-source efforts, we've noticed a few common elements. Successful projects are:
- Effective – they focus on solving a common problem.
- Accessible – they make it easy to install and start using the software.
- Collaborative – they provide tools to allow others to easily contribute to the project.
Improving AccessibilityTo-date, we've been using Rails' plugin capabilities to provide enhanced functionality. While this gets the job done, it falls apart in two areas:
- It requires the user to provide an unwieldy SVN URL to the ./script/plugin command.
- It prevents us from easily splitting out common functionality into separate dependencies.