Un an de projet libre : bilan


Un an déjà, et oui ça va faire plus de 365 jours que je travaille sur Newebe, le premier commit de code datant du 19 octobre 2010. Je pense donc que le temps est venu de partager mon retour d’expérience sur le démarrage d’un projet libre (le premier dans mon cas) et par la même occasion de faire le bilan de cette année écoulée.

Ce qui s’est bien passé :

Ca marche. Certains diront que tant qu’il n’y a pas de sécurité on ne peut pas dire que c’est le cas, mais toujours est il que nous sommes trois à l’utiliser (3 actifs sur 5 utilisateurs) depuis plusieurs mois et que cela fonctionne plutôt bien. Du fait de notre faible nombre, l’utilisation ressemble un peu à un chat mais c’est sympa de ce dire que nous sommes bien en train d’interagir sans serveur intermédiaire.

Newebe a sa place. Pour l’instant je n’ai trouvé aucun réseau social distribué ayant la même approche notamment pour ce qui est de l’aspect mono-utilisateur. Finalement ce qui ressemble le plus à Newebe est le projet OwnCloud, un outil permettant de stocker ses fichiers sur son serveur web à la dropbox. La similarité ? On a bien une instance d’OwnCloud pour une personne. Cela vaut donc le coup de continuer dans cette direction sans avoir l’impression de réinventer la roue.

Je m’en sers. Newebe me permet de communiquer avec les autres utlisateurs de Newebe et l’outil de gestion de notes me sert tous les jours.

Newebe a un site web et un wiki complet. Ca peut paraitre ridicule, mais c’est tout de même bien que j’ai eu le temps de mettre ça en place, ça permet a quelqu’un qui ne connait pas le projet de s’informer rapidement de ses tenants et aboutissants.

J’ai rencontré des gens qui partagent mon opinion sur le sujet. Réaliser Newebe m’a poussé à écrire plus de choses sur les problèmes de vie privée liés aux réseaux sociaux centralisés. Je me suis motivé plusieurs fois à aller à quelques événements réunissant des codeurs, principalement au Loop. Au final j’ai croisé pas mal de gens qui réfléchissent à des alternatives, ce qui est plutôt encourageant.

Techniquement, j’ai appris énormément de choses. Ce projet m’a permis de faire une veille technique importante et de me mettre à la page sur les dernières tendances des technologies webs, notamment autour des serveurs asynchrones comme Tornado et Node.js, mais aussi pour les bases de données NoSQL avec CouchDB et MongoDB ainsi que pour le développement client avec Coffeescript et Backbone et enfin avec le versioning décentralisé à travers Git. J’avais pris du retard et étant motivé par Newebe j’ai pu faire une sérieuse remise à niveau sur tout ces plans.

NB : Je me suis rendu compte aussi que le choix de techno dans un projet informatique est très délicat et qu’il demande pas mal de rélexions. C’est une étape qui ne doit vraiment pas être prise à la légère. Il ne faut pas avoir peur d’écrire des prototypes dans plusieurs frameworks ou langages.

Sur l’organisation d’un projet informatique aussi. J’ai été formé avec la gestion de projets en V,  j’ai pratiqué des méthodes “agiles”. Ces deux façons de faire n’était pas toujours très convaincante mais à travers Newebe je me suis intéressé à des nouveaux concepts que sont ceux du déploiement continu, de la méthode Lean et surtout des principes de 37signals. Ils prônent le besoin de livrer et déployer le code le plus fréquemment possible pour obtenir des retours utilisateurs très vite et ainsi valider la pertinence des fonctionnalités codées. La simplicité est aussi mise en avant. En effet elle pousse à chercher des solutions plus élégantes ou directes afin de gagner en efficacité. Ceci se fait souvent au détriment du nombre de features mais permet de se concentrer sur l’essentiel et d’obtenir quelque chose de fonctionnel plus vite.

NB : J’ai également appris quelles étaient les caractéristiques d’un logiciel libre, notamment autour de la gestion de code collaborative. Ceci m’a poussé à mettre en place les outils nécessaires : dépot de code public, bug tracker, mailing list, wiki, site web, ce blog…  Mais je n’ai encore pu rien expérimenter pour Newebe pour le moment étant donné que je suis encore seul sur le projet.

Ce qui s’est mal passé :

Il n’y a pas de communauté. Certains mesurent la qualité d’un logiciel libre à la taille de sa communauté. C’est discutable mais dans les grandes lignes, ils n’ont pas tort. Un tel logiciel ne peut reposer sur les épaules d’une seule personne. D’une part ce n’est pas pensable à terme de maintenir le code en étant seul, d’autre part, cela rend le projet totalement dépendant de son initiateur. C’est d’autant plus inquiétant que ça peut signifier que Newebe ne répond pas bien au problème des réseaux sociaux décentralisés et n’intéresse presque personne.

D’un autre côté, l’aspect promotion n’est vraiment pas mon fort et j’ai de rééls progrès à faire dessus. De plus, je noircis un peu le tableau puisque nous sommes trois à nous en servir et que je suis bien conseillé par les deux autres utilisateurs.

Il n’y a pas de processus de développement et il manque beaucoup trop de tests unitaires et fonctionnels. Corrolaire du point précédent, étant seul j’ai codé à l’arrache, en empilant les fonctionnalités les unes sur les autres. Ceci est rassurant psychologiquement (j’ai obtenu un logiciel complet plus vite) mais en contradiction avec l’idée de faire du déploiement continu.  En effet pour promettre des releases fréquentes, il faut pouvoir tester toute l’appli fréquemment, ce qui n’est possible qu’avec des tests unitaires qui couvrent la majeure partie du code.
Si je souhaite accueillir d’autres développeurs, je ne pourrai leur donner une façon de procéder et surtout chacun de leur commit me fera un peu peur car je manquerai de tests pour m’assurer que rien n’est cassé.

J’ai négligé la sécurité. C’est volontaire, mais il faut bien reconnaitre que si demain je discute avec un spécialiste de la question, il risque d’être un peu dépité. De plus certains utilisateurs pourraient être rebutés par l’idée d’avoir un logiciel plus ou moins ouvert à tout le monde. Ceci a été tout de même fait en connaissance de cause, donc rien d’alarmant pour le moment.

Cela prend beaucoup de temps.  J’ai dû coder, me former à de nouvelles technos, documenter, faire un site web, faire un peu de pub, assurer le support utilisateur, mettre en place les outils… Toutes ces activités sont assez chronophages, cela demande donc de bien aménager son temps libre. J’en viens même à penser qu’il vaut mieux être étudiant pour lancer un projet libre. Je ne m’en plains pas car je me suis beaucoup amusé à faire tout ça mais c’est quelque chose dont il faut avoir conscience quand on démarre.

Et après ?

Pour la suite de Newebe, je compte donc me concentrer sur l’aspect communauté. Au delà du fait d’espérer d’avoir d’autres développeurs actifs, ce serait intéressant d’avoir plus d’avis de gens extérieurs. Au niveau des développements, je vais privilégier le partage d’images (afin de rendre Newebe plus sexy et lui donner ainsi un vrai look de réseau social)  ainsi que les tests automatiques manquants.

Enfin, même si le projet n’a pas eu le succès que j’espérais, je suis toujours content de le voir progresser, j’ai appris énormément de choses et pu mettre en application mes réflexions. Ma motivation est donc toujours aussi forte pour faire avancer Newebe.


Credits photos

photo 1 : Pauer Korde, licence Creative Commons by-nd-2.0
photo 2 : Virtual Photography Studio, licence Creative Commons by-2.0

6 Responses to Un an de projet libre : bilan

  1. Thatoo says:

    Courage, à part diaspora, il n’y a pas de projet de réseau social qui a une communauté importante et active. Et, dans l’idée, ils sont tous des copies de facebook avec juste un choix de protocole qui les différencie. Newebe est le seul à avoir une approche différente.

    Si le projet n’est pas plus populaire, je pense que c’est dû à un manque de com, de pub, pas à un manque d’intérêt.
    Il faut préparer un diaporama pour animer une conf aux jdll, aux rmll, au loop…
    Il faut préparer un article de presse ainsi qu’un dossier plus complet à donner à des sites du milieu pour qu’il relaye l’info.
    Courage! Ca va venir mais c’est sûr qu’il faut trouver des collaborateurs avant que tu t’épuises.

  2. Nic0 says:

    Félicitation pour ton projet, malheureusement le manque de temps ne me permet pas de le suivre de plus près.

    Quelques suggestions en vrac:

    – Freshmeat: j’ai cru voir que ton projet ne figure pas dans la base de freshmeat, tu pourrais le rajouter, ça ne mange pas de pain, tout en augmentant la visibilité.
    – Reddit: Les différentes technologies utilisées sont intéressante et dans “l’air du temps”, éventuellement ce côté technique pourrait intéresser les lecteurs de reddit, dans la catégorie http://www.reddit.com/r/programming ou peut être des catégories plus restrictives correspondant aux technos utilisés.
    – Hacker News: Pourquoi pas essayer, on sait jamais.

    La première fois que j’ai regardé ce projet, je voulais me répondre à la question « qu’apporte newebe de plus par rapport à StatusNet », et je crois que la réponse n’est pas si évidente lorsqu’on ne connais pas trop le fonctionnement. Éventuellement, ça pourrait faire partie d’une FAQ sur le site principal.

    Bon courage

    • Gelnior says:

      Merci aussi Nic0. Je vais essayer de faire ce que tu dis, çà me parait un bon début. Enfin je m’occuperais de ça à mon retour de vacances, dans un peu plus de 3 semaines.
      Pour ce qui est de la FAQ maintenant que j’ai reçu des questions, je vais pouvoir envisager d’en faire une.

  3. Arthus says:

    Bonsoir,

    Tout d’abord, je tiens à te féliciter pour ce projet et à t’encourager à continuer. Je pense qu’il répond bien à la problématique de la mise en ligne de données, qu’il contribue à conserver un réseau excentré. Lorsque je parle autour de moi des risques et effets de la centralisation de données, on me demande souvent quelle solution existe pour un utilisateur ‘lambda’ qui ne veut/peux pas mettre en place son serveur dédié. Je pense que newebe pourrait un jour être la réponse à cette question, une fois la sécurité accrue et la procédure d’installation facilité.

    Tout ça pour dire que je t’encourage vivement à continuer.

    • Gelnior says:

      Merci pour ces encouragements ! Et la bonne nouvelle, c’est que je vais pouvoir bien avancer sur Newebe au mois de Décembre.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: