URL: https://linuxfr.org/news/un-an-de-projet-libre-bilan Title: Un an de projet libre :bilan Authors: gelnior Date: 2011年10月26日T13:48:28+02:00 Tags: réseau_social, expérience, mongodb et couchdb Score: 31 NdM : _merci à l’auteur de ce journal._ Un an déjà, et oui ça va faire plus de 365 jours que je travaille sur [Newebe](http://newebe.org/), 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. ---- [Journal à l’origine de la dépêche](http://linuxfr.org/users/gelnior--2/journaux/un-an-de-projet-libre-bilan) [Site du projet Newebe](http://newebe.org/) [Wiki de Newebe sur GitHub](https://github.com/gelnior/newebe/wiki) ---- ![Titre de l'image](http://gelnior.files.wordpress.com/2011/10/birds_start.jpg?w=630&h=420) # 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](http://owncloud.org/), 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](http://leloop.org/). 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](http://www.tornadoweb.org/) et [Node.js](http://nodejs.org/), mais aussi pour les bases de données NoSQL avec [CouchDB](http://couchdb.apache.org/) et [MongoDB](http://www.mongodb.org/), ainsi que pour le développement client avec [CoffeeScript](http://jashkenas.github.com/coffee-script/) et [Backbone.js](http://documentcloud.github.com/backbone/), et enfin avec la gestion de versions décentralisée, à travers [Git](http://git-scm.com/). 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](http://fr.wikipedia.org/wiki/Gestion_de_projet#D.C3.A9marche_de_cycle_en_V), j’ai pratiqué des « [méthodes agiles](http://fr.wikipedia.org/wiki/M%C3%A9thodes_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_](http://en.wikipedia.org/wiki/Lean_software_development) et surtout les principes de [_37signals_](http://37signals.com/rework/). 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](http://gelnior.files.wordpress.com/2011/10/birds_house.jpg?w=630&h=420) # 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 : - site : ; - source : ; - wiki : ; - pourquoi Newebe : - , - . 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.

AltStyle によって変換されたページ (->オリジナル) /