What should every open source project care about

22 February 2015

Did it already happen to you to see an open source project that seems great, but when comes the moment to install the software on your computer or server you only find few instructions explaining how to do? The project has then missed something.

Let's see for example the Diaspora*project, a decentralized social network. The project is an alternative to Facebook and Twitter by promising Liberty, Privacy and Decentralization. This last word is the key problem. This kind of project finds its interests by multiplying what is called "pods" (servers with the software installed). However, in this case the installation process is very complicated, so even those who are comfortable with computers are not inclined to make the effort to install their own pod. See for example the installation process for UbuntuTrusty. The project offers a Vagrant installation too, but the documentation only admits that you know what you do, that you are a developer. If it is difficult to create its own server, how can you decentralize the network? Yes the Diaspora team is aware about the problem, but it is here a major issue as it defends people to follow the Diaspora decentralization philosophy.

A pretty decentralized network (Source: https://diasporafoundation.org/)

Diaspora* is not the only project facing this problem. We can add MediaGoblin to the list, an alternative to YouTube allowing you to host media (and here it's deployment process). There are a lot more, but I mentionned these two because one of their values is decentralization and their installation process doesn't help. I'm very impressed by the work they have done, but they should concentrate on making an easy installation and update process. Once people have adopted the tool in a large number, the project maintainer only has to deploy updates very easily to the whole network. And with most people having the last version it reduces potential bugs and enhances the user's experience. Apple is using the same strategy with its devices, pushing the users to always have the last version so the application development is made easier.

iOS Usage Chart
73% of users adopted iOS 8 since its release on 17th September 2014 (5 months ago) (Source: https://developer.apple.com/support/appstore/)

To show the example, I've written an installation script for KoalasLiveTweet, the Twitter client I develop. Here is the link to theGist. The problem I encountered is that for one part the script has to wait that the user access his Twitter Developer account to give his credentials. How do you think can I make the installation process better?

In conclusion, please, when you maintain an open source project, especially if it needs to be hosted by someone, make the installation and the update process a little bit easier. Keep it mind how great it could be if even the casual computer user could be installing its own software.