The Complete Magazine on Open Source

FOSS is __FUN__: The Django Project — Open Source Done Right

, / 122 0

Open Source done right!

Here are some ideas for FOSS fans on what makes an open source project successful. We also look at Django, an open source project ‘done right’.

What makes one open source product a huge success, and another a total flop? Why do some projects sustain themselves, while others are swallowed up?

Is it the nature of the license they use? In which case, how do you explain that while Linux is a roaring success, Hurd is in the doldrums and MySQL got swallowed up, even though all three are licensed under the GPL? PostgreSQL and Python are going great guns, but NetBSD is in bad shape — all three are under the BSD license.

How about the wild success of SQLite — it doesn’t even have a license; it is in the public domain. No, the license is irrelevant in determining whether a project will succeed or get swallowed up — as long as there is a genuine open source license, of course.

To put it very simply, the project must fulfil a need — and attract and keep users. And it must attract and keep developers. The need for users is obvious — the need for developers is less obvious. Naturally, more developers would mean more work done; but how the developers’ contributions are treated is more important.

Most open source projects let the developers retain the copyright of the work they have done. If this happens, if someone wants to buy up the copyright of the project, then all the contributors have to agree. If even one person holds out, then a purchase is impossible. And if there are enough people who have made substantial contributions, no one will even attempt a takeover; it would be an exercise in futility.

Linux is a good example of this — so many people own part of the copyright that it is impossible even to find everyone, let alone get them all to agree to a sale. MySQL is an example of a product, whose management team did not accept any contributions unless the copyright was assigned to them. As a result, it was just a question of how many dollars were needed to swallow it up.

So how do you know a project will fulfil a need? Certainly not by creating a committee and doing a survey. The best way of knowing this is if a client pays you to create an application, and is satisfied with the result; you then know it has at least one satisfied customer, and there are likely to be more. We call this the “sell it — free it” model. As someone said: if you cannot sell it, no one will take it even if you give it away free.

Django is a Python-based Web framework, first released in mid-2005, and it has grown exponentially since then — both in terms of users and developers. I have been watching its development since the beginning. Django was developed as a framework for a news site for the LJWorld journal, by Adrian Holovaty and Jacob Kaplan-Moss, among others. It was successful, so they decided to open source it.

Their motives were both to attract developers, and also to contribute back to the community. Before open-sourcing it, they followed the book Producing Open Source and made sure to build a complete support structure — code in an open repository, backed by a publicly accessible wiki; a mailing list for users, and one for developers; and an IRC channel. The team made sure that there were sufficient developers on these forums answering questions for users and would-be developers.

And so, from the word “Go”, Django took off, and has become the most popular Python Web framework going. The policy towards developers is strict, but fair and friendly. Patches have to have tests and documentation, and be in the recommended style, before they can be accepted. The core developers are receptive to new ideas, but unlike some other projects, they have clear goals and defined standards, and will not include a feature that goes against these — regardless of popular demand.

Although originally run by people from LJWorld, there is now a non-profit Django Foundation, completely independent and run by the community.

Feature image courtesy: Nicole C. Engard. Reused under terms of CC-BY-NC-SA 2.0 License.