code_swarm : et le logiciel libre se construit sous vos yeux ébahis

Les programmes de gestion de versions sont indissociables des (gros) projets de logiciels libres. Ils permettent aux développeurs de coordonner leur travail et de suivre au jour le jour qui a fait quoi dans le projet.

En suivant ces programmes, Michael Ogawa a mis au point un modèle graphique de visualisation chronologique de l’élaboration d’un logiciel libre. Il appelle cela code_swarm (essaim de code), qui utilise dans sa conception le moteur libre Processing.

Le résultat est fascinant, un véritable objet mutant aussi bien esthétique que pédagogique.

Pour le moment figurent dans le catalogue : Eclipse, PostgreSQL, Apache et Python. Comme le suggère l’auteur, j’ai choisi de reproduire[1] ce dernier comme exemple d’illustration parce qu’on voit bien comment au départ et pendant plusieurs années le créateur du fameux langage de programmation Python, Guido van Rossum (alias guido), travaille quasiment seul jusqu’à l’an 2000 où le projet sort de sa niche et explose littéralement.

Pour ce que soit un peu plus clair, nous avons traduit[2] ci-dessous les explications données par Michael Ogawa sur la page présentant le projet.

code_swarm

Michael Ogawa – juin 2008

« J’étudie les projets de développement logiciel depuis un petit moment maintenant. Pas la programmation, mais les gens, la façon dont ils interagissent à travers leurs collaborations et leurs communications. Mes investigations ont toujours été visuelles : J’ai bâti des applications qui créent des images de ce qui se passe au cours de l’élaboration des projets logiciels. Mais ils ont toujours eu une structure rigide. La visualisation d’information organique, inventée par Ben Fry, est une approche différente de la visualisation de l’information. Elle évite les confinements traditionnels d’information dans l’espace, et laisse les éléments jouer librement ensemble d’une manière aléatoire.

Cette visualisation, appelée code_swarm, montre l’historique des commits d’un projet de développement logiciel. Un commit intervient lorsqu’un développeur effectue des changements dans le code ou les documents et les transfère au dépôt central du projet. Les développeurs et les fichiers sont ici représentés par des éléments mobiles. Lorsqu’un développeur commite un fichier, celui-ci s’illumine et vole en direction du développeur concerné. Si des fichiers ou des développeurs ne sont pluss actifs, ils s’estompent peu à peu. Un histogramme, au bas de la visualisation, vient rappeler ce qui s’est passé précédemment. »

Notes

[1] Les vidéos sont présentées au format flash .flv sur Vimeo.com, on peut les télécharger au format .mov en s’inscrivant sur le site.

[2] Merci à Simon Descarpentries pour la traduction.