Top tips for a successful open source project

Damien Katz, whose Apache CouchDB recently hit 1.0, provides some excellent tips on creating a successful open source project in his blog Getting your open source project to 1.0. Drawn from five years’ experience, the tips include general advice interwoven with examples from the project. He begins with the fundamental question, Why?, explaining that a successful project needs a reason for being – a clear idea of what problem it solves – and you need to figure this out and explain it.

Almost as important as knowing what you are is knowing what you’re not: ‘Stating clearly what your project isn’t trying to do or be helps make it much easier to explain what you can’t implement or change …. and to focus on what you actually are.’ Next, he advises, ‘don’t expect to attract anyone to your project until you have a substantial amount of working code that isn’t a big ball of spaghetti’. Code comes first, but don’t try to do everything (well), as you’ll probably never actually release anything: ‘You’ll need to pick a few things that you do really well and execute on those things.’

On the subject of community, Katz encourages you to ‘make sure the people who show a strong desire to contribute aren’t ignored, and feel like their efforts will eventually amount to something’. But bear in mind, he warns, that community is often incompetent. You will sometimes need to hurt people’s feelings for the sake of the project because ‘the quality of the community is more important than its absolute size’. ‘Our committers,’ he stresses, ‘are our first line of defence against poor code and design.’

In the end, though, it’s up to you to use your brain and ‘figure out what’s actually important to you, your project and its community … Projects can’t follow cookie cutter rules.’

One tip that could be added to this list is to contact OSS Watch. We can help you create a successful open source project by providing advice every step of the way. In addition, our briefing documents offer invaluable information on everything a new project needs to consider, including governance models, sustainability, how to build an open source community and licensing.