Ce que les projets open source ne doivent pas oublier

24 April 2018

Est-ce qu'il vous est déjà arrivé de voir un projet open source qui semble génial, mais quand vient le moment d'installer le logiciel sur votre ordinateur ou serveur vous ne trouvez que peu d'instructions expliquant comment faire ? Le projet a alors raté quelque chose.

Note : Cet article a été écrit originellement en anglais le 22 février 2015. Je l'ai aujourd'hui traduit et publié car j'ai trouvé amusant de lire que j'avais déjà écrit un article à ce propos il y a trois ans. Des choses ont changé depuis : le projet KoalasLiveTweet s'appelle maintenant Qowala, j'utilise plutôt Mastodon que Diaspora et j'utiliserais plutôt Docker et Ansible au lieu de Vagrant et Bash pour l'automatisation. Mais l'esprit de l'article reste encore d'actualité.

Voyons par exemple le projet Diaspora*, un réseau social décentralisé. Le projet est une alternative à Facebook et Twitter en promettant liberté, vie privée et décentralisation. Ce dernier mot est le problème clé. Ce genre de projet trouve son intérêt en multipliant ce que l'on appelle les "pods" (serveurs avec le logiciel installé). Toutefois, dans ce cas, le processus d'installation est très compliqué, de sorte que même ceux qui sont à l'aise avec les ordinateurs ne sont pas enclins à faire l'effort d'installer leur propre pod. Voir par exemple le processus d'installation pour Ubuntu Trusty. Le projet offre aussi une installation Vagrant, mais la documentation part du principe que vous savez ce que vous faites, que vous êtes un développeur. S'il est difficile de créer son propre serveur, comment décentraliser le réseau ? Oui, l'équipe de Diaspora est consciente du problème, mais il s'agit ici d'un enjeu majeur puisqu'il empêche de suivre la philosophie de décentralisation de la Diaspora.

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

Diaspora* n'est pas le seul projet confronté à ce problème. Nous pouvons ajouter MediaGoblin à la liste, une alternative à YouTube vous permettant d'héberger des médias (voir ici le processus de déploiement). Il y en a beaucoup plus, mais j'ai mentionné ces deux-là parce que l'une de leurs valeurs est la décentralisation et que leur processus d'installation n'aide pas. Je suis très impressionné par le travail qu'ils ont fait, mais ils devraient se concentrer sur la facilité d'installation et de mise à jour. Une fois que les gens ont adopté l'outil en grand nombre, le responsable du projet n'a plus qu'à déployer très facilement les mises à jour sur l'ensemble du réseau. Et comme la plupart des gens ont la dernière version, cela réduit le nombre de bogues potentiels et améliore l'expérience de l'utilisateur. Apple utilise la même stratégie avec ses appareils, poussant les utilisateurs à toujours avoir la dernière version afin de faciliter le développement de l'application.

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)

Pour montrer l'exemple, j'ai écrit un script d'installation pour KoalasLiveTweet, le client Twitter que je développe. Voici le lien vers le Gist. Le problème que j'ai rencontré est que pour une partie le script doit attendre que l'utilisateur accède à son compte Twitter Developer pour donner ses identifiants. Comment pensez-vous que je peux améliorer le processus d'installation ?

En conclusion, s'il vous plaît, lorsque vous maintenez un projet open source, surtout s'il doit être hébergé par quelqu'un, rendez l'installation et le processus de mise à jour un peu plus facile. Gardez à l'esprit combien cela pourrait être génial si même l'utilisateur occasionnel pouvait installer son propre logiciel.