Un an de projet libre :bilan

Posté par  (site web personnel) . Modéré par Lucas Bonnet.
31
27
oct.
2011
Internet

N. D. M. : merci à l’auteur de ce journal.

Un an déjà, et oui ça va faire plus de 365 jours que je travaille sur Newebe, un projet libre de réseau social distribué, 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.

Sommaire

Titre de l'image

Ce qui s’est bien passé

Ça 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 se dire que nous sommes bien en train d’interagir sans serveur intermédiaire. L’échelle est encore petite, mais c’est un résultat satisfaisant tout de même.

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 utilisateurs de Newebe, et l’outil de gestion de notes me sert tous les jours.

Newebe a un site Web et un wiki complet. Ça peut paraître ridicule, mais c’est tout de même bien que j’aie eu le temps de mettre ça en place, ça permet à quelqu’un qui ne connaît 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 technologique importante et de me mettre à la page sur les dernières tendances des technologies Web, 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.js, et enfin avec la gestion de versions décentralisée, à 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.

N. B. : Je me suis aussi rendu compte que le choix de techno dans un projet informatique est très délicat, et qu’il demande pas mal de réflexion. 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. Au travail, 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’étaient pas toujours très convaincantes, mais à travers Newebe, je me suis intéressé à ces nouveaux concepts que sont le développement continu, la méthode Lean et surtout les principes de 37signals. Ils prônent le besoin de livrer et déployer le code le plus fréquemment possible, pour obtenir des retours utilisateur 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 fonctionnalités, mais permet de se concentrer sur l’essentiel et d’obtenir plus vite quelque chose de fonctionnel.

NB : J’ai également appris quelles étaient les caractéristiques d’un logiciel libre, notamment autour de la gestion collaborative de code. Ceci m’a poussé à mettre en place les outils nécessaires : dépôt de code public, système de suivi de bogues, liste de diffusion, wiki, site Web, ce blog… Mais je n’ai encore rien pu expérimenter pour Newebe pour le moment, étant donné que je suis encore seul sur le projet.

Titre de l'image

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 personne.

D’un autre côté, l’aspect promotion n’est vraiment pas mon fort, et j’ai de réels 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. Corollaire 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éveloppement continu. En effet, pour promettre des publications 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 reconnaître 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 avoir d’autres développeurs actifs, ce serait intéressant de recueillir 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.

Liens en rapport :

Crédits photos :

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

Aller plus loin

  • # Bravo

    Posté par  . Évalué à 4.

    Ce retour d'expérience est très intéressant et je suis sur que c'est une première étape dans la constitution d'une communauté. De ce que j'observe, des fois une communauté sérieuse est plus petite, moins buzzable mais avance sereinement.

  • # Trash

    Posté par  . Évalué à 4.

    C'est le lot de nombreux développements de finir à la poubelle. Il ne faut pas s'en offusquer. Ça ne veut pas dire que le logiciel ou l'idée n'est pas intéressant(e) ou ne répond pas à un besoin. Le plus souvent, ça veut juste dire qu'il n'est pas connu. La preuve, c'est la première fois que j'en entend parler. Donc oui, il y a des progrès à faire côté communication :)
    Mais c'est tout un travail qu'une personne seule ne peut pas assumer (ou difficilement...).

    Sur le contenu, même si je n'adhère pas aux réseaux sociaux (c'est peut-être pour ça en fait, que je n'en avais jamais entendu parlé :) ), je trouve que la démarche reste valorisante et le retour d'expérience est également intéressant.

  • # Diaspora?

    Posté par  . Évalué à 2.

    Retour très interessant sur le dev, la communauté et la communication.

    J'aime bien l'idée derriere Newebe mais j'ai du mal a comprendre ce qui le differencie de Diaspora par exemple.

    Pour moi le frein au développement a ce genre de projet c'est qu'il necessite un matériel supplémentaire: le serveur qui doit rester en marche 24h/24, même si les micro serveur comme freedombox peuvent faire l'affaire, je vois mal mes parents, Mme Michu ou mes potes non geeks installer ça chez eux.

    Pourquoi ne pas décentraliser les données en plus de décentraliser les serveurs? Wuala l'a fait pendant un certain temps (ils viennent d'arreter) en proposant du partage de stockage décentralisé via p2p.
    Tahoe-fs semble sur la bonne voie pour proposer ce genre de chose en opensource.
    Peerscape qui semble a l'abandon (extension Firefox) proposait aussi qqchose de très similaire à Newebe mais avec persistance des inforamtions utilisant aussi le p2p
    On a tous un ordinateur avec des tonnes de Go dont on ne sait quoi faire et qu'on pourrait partager, et wuala a déjà fait les études (video sur youtube) montrant qu'on peut assurer la persistance des données en utilisant la redondance.

    Pas de serveur matériel, juste un peu d'espace à partager et un logiciel a installer et c'est parti.

    • [^] # Re: Diaspora?

      Posté par  . Évalué à 2.

      Si j'ai bien compris ce que tu explique, avec un système p2p, chacun héberge un bout de données de plusieurs utilisateurs. Maintenant, imaginons le cas où le réseau dépasserait les 800 millions d'utilisateurs... T'as beau avoir plusieurs Go qui trainent, ça en suffira pas. C'est là que le p2p pour le réseau social est un pb, mais je me trompe peut-être.

      Par contre, comme toi, je me pose la question de la différence de Newebe avec Diaspora* qui a déjà une petite communauté. Pour répondre à ta question sur la pertinence d'un système distribué, l'idée n'est pas nécessairement que chacun ait son propre serveur qui tourne 24/7. L'idée est de se détacher du "one serveur to rule them all". Il y aurait ainsi des communautés, plus ou moins grandes, qui s'attacheraient à un grand tout pour former LA communauté Diaspora*.
      Du coup, une association ou une entreprise pourraient avoir leur propre réseau. Mais aussi ton pote geek si tu veux. Tu pourrais aussi simplement l'installer sur un serveur dédié sur OVH ou autre, du coup pas besoin d'une box tout le temps allumée chez toi. Il serait aussi envisageable que ce soit installé dans les box internet, par exemple.

      • [^] # Re: Diaspora?

        Posté par  (site web personnel) . Évalué à 4.

        C'est là où est toute la différence avec Diaspora. C'est que l'idée va plus que de se détacher du "one serveur to rule them all" mais d'aller plus loin : ici une personne = une instance de Newebe au moins.
        Dans le cas de Newebe les données sont décentralisées, puisqu'elles sont stockées chez l'émetteur de la donnée ainsi que ses contacts. Newebe agit donc comme une mémoire : mon instance retient tout ce que je dis et tout ce que dise mes contacts.

        NB : Pour avoir plusieurs identités, il suffit d'installer plusieurs instances de Newebe installées sur des ports différents.

        A propos des boxes, c'est vrai que c'est un frein à l'utilisation par Mme Michu et que ça va demander du travail. Mais je reste assez optimiste car déjà des signes positifs apparaissent :
        * Facebook et Google sont de plus en plus intrusifs, ce qui finira bien par pousser une partie de la population vers le décentralisé. Dans le futur, avoir 20 ans de souvenirs sur Facebook ne rendra pas les gens très à l'aise avec l'idée qu'ils sont conservés par un tiers (idem pour un hébergeur Diaspora).
        * La FSF et des sociétés commerciales comme TonidoPlug font la promotion de cette pratique.
        * Un Sheevaplug c'est surtout du paramétrage logiciel (donc pas mal automatisable), niveau hardware il y a deux cables à brancher, ce n'est pas plus qu'une télé.
        * Les box des fournisseurs d'accès pourraient faire office de serveur.
        * Avoir toutes ses données chez soi permet de nouveaux usages comme les mixer facilement par exemple (je concatène deux microposts, une note et deux images et j'ai construis un post de blog en 3 clics).
        * Au départ un ami peut bien héberger plusieurs instances de Newebe sur le même serveur pour dépanner.

        Il faut aussi mentionner la solution Unhosted qui consiste à découpler infos personnelles et applicatifs pour les applications cloud. Je ne sais pas ce que ça va donner mais la solution est intéressante.

        • [^] # Re: Diaspora?

          Posté par  . Évalué à 2.

          Merci Gelnior pour ta réponse. Je comprends mieux. On est en fait plus proche d'un Peerscape que de Diaspora. D'ailleurs au sujet de Peerscape, si quelqu'un a des nouvelle de ce projet...

          En effet je ne connaissais pas Unhosted, l'idée semble prometteuse.

      • [^] # Re: Diaspora?

        Posté par  . Évalué à 2.

        800 millions d'utilisateur avec un disque d'1To à moitié vide, ca en fait de la place pour stocker des données, bien plus je pense qu'un batiment rempli de serveur. Wuala a étudié la situation et l'a présentée en 2007. Voir à partir de la diapo 44 ici: http://www.slideshare.net/adunne/wuala-p2p-online-storage.

        L'idée de stocker chez OVH (ou autre) ne me plaît pas plus que chez Facebook, ce qui me gène c'est la dépendance d'un organisme extérieur pour le stockage. Et puis il y a l'aspect simplicité pour le commun des mortel. Ouvrir un compte facebook ça prend 2s, installer diaspora ou newebe sur un serveur c'est une autre paire de manche, qui est a mon avis un frein.
        J'ai installé un Elgg pour communiquer avec quelques amis. C'est bien les données sont sur mon serveur, mais pour eux quel est l'avantage par rapport à facebook? leur données sont tout aussi voir plus vulnérables et en tant qu'admin j'en fait ce que je veux...

        • [^] # Re: Diaspora?

          Posté par  (site web personnel) . Évalué à 3.

          J'ai fait le même raisonnement que toi. C'est pour ça que Newebe est mono utilisateur et ne fonctionne donc pas comme un Diaspora ou un Elgg. Si tu n'es pas rassuré par OVH, tu branches un plug computer sur ta box et tu as un serveur accessible depuis l'extérieur qui stocke tes données et sur lequel tu peux installer ton newebe. Tes données sont donc chez toi, propriétaire du newebe. Pour ce qui est de tes amis, ils ne voient et stockent que ce que tu as voulu leur montrer rien de plus.

          Liens sur le sheeva plug :
          http://gelnior.files.wordpress.com/2010/09/sheeva_09.jpg?w=420&h=630
          http://gelnior.wordpress.com/2010/09/22/review-sheeva-plug-partie-1/

          Pour l'aspect simplicité c'est un frein c'est sûr, mais là je te renvoie à mon commentaire précédent.

        • [^] # Re: Diaspora?

          Posté par  (site web personnel, Mastodon) . Évalué à 5.

          Ouvrir un compte facebook ça prend 2s, installer diaspora ou newebe sur un serveur c'est une autre paire de manche, qui est a mon avis un frein.

          Il y a des projets tels que la Freedom box dont le but est justement de simplifier tout ça.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.