Blog · Blog · 14 décembre 2024 · 2 min de lecture

Comment naît un logiciel dans un labo

Article écrit après mon intervention au Research Software Engineer Day, en Belgique.

Quand j'ai été invitée à intervenir à Belgium RSE 2024, j'avais en tête une théorie que je voulais partager et discuter avec d'autres. Elle porte sur la façon dont les logiciels naissent dans les laboratoires académiques.

Ces cinq dernières années, j'ai eu l'occasion de travailler avec plusieurs labos et d'échanger avec beaucoup d'autres. Un schéma récurrent s'est dessiné, une histoire familière sur l'origine des logiciels dans ces environnements. Souvent, tout commence par un projet annexe mené par un doctorant, un postdoc, ou parfois même par le ou la responsable du labo.

Case de bande dessinée, en anglais. Une chercheuse, Anna, travaille à son ordinateur pendant que des collègues montrent son écran, une ampoule allumée au-dessus d'eux. Bulles : « Anna aime programmer et automatise des tâches pour gagner du temps, être plus efficace et plus précise. » puis « Ses collègues trouvent l'outil utile et demandent à s'en servir, alors Anna partage le logiciel. »
L'histoire d'Anna, 1re partie : un outil pratique est partagé avec le labo.

En général, tout part d'une personne passionnée de programmation qui voit l'occasion de simplifier ou d'améliorer son propre travail. Une fois que l'outil a fait ses preuves, il ne tarde pas à se répandre dans le labo, et d'autres l'adoptent pour leurs projets.

Au début, tout le monde est content. L'outil fonctionne bien et le labo profite de son efficacité. Mais très vite, toute la responsabilité retombe sur la personne qui l'a écrit. On attend d'elle qu'elle s'occupe de tout : maintenir le logiciel, développer de nouvelles fonctionnalités, corriger les bugs, dépanner, et même aider à l'installer sur d'autres machines.

Case de bande dessinée, en anglais. Anna, débordée, est assise à son bureau au milieu d'un tourbillon de demandes. Bulles : « Georges a besoin d'une petite modification. », « James a besoin d'une petite modification. », « Lucas a besoin d'une petite modification. Anna fait une mise à jour rapide. »
2e partie : chaque « petite modification » retombe sur Anna.

Ce qui n'était qu'un projet annexe devient soudain un travail à plein temps, sans le temps ni le financement nécessaires. Pour répondre à des demandes toujours plus nombreuses, le développeur multiplie souvent les corrections rapides, au détriment des bonnes pratiques et de la maintenabilité à long terme.

À ce stade, on peut dire qu'un projet logiciel est vraiment né. Deux scénarios s'ensuivent en général.

Dans le premier, une équipe dédiée se forme pour travailler à plein temps sur le projet. C'est souvent le cas des initiatives qui réussissent et disposent d'un soutien important, comme DeepLabCut, SpikeInterface ou Open-Ephys. Ces projets bénéficient de ressources, d'une organisation et d'une pérennité à long terme.

Dans le second, la responsabilité reste entre les mains d'une seule personne, et les difficultés arrivent. Le logiciel peut se fragmenter en plusieurs versions divergentes, chacune adaptée à certains utilisateurs mais difficiles à réconcilier. Les utilisateurs aimeraient réunir ces versions en un seul outil cohérent, mais l'effort est souvent trop grand. Ou bien la personne qui le maintient s'en va, et avec elle la connaissance nécessaire pour le faire vivre : le projet est abandonné et devient inutilisable.

Case de bande dessinée avec un schéma, en anglais. À partir de « Un logiciel est né », deux chemins : « Une équipe se forme pour le gérer et le partager, avec son propre temps et ses propres moyens. » ou « Anna reste la seule à le maintenir, sur son temps libre. », qui mène à « Le logiciel se multiplie en dix versions différentes. » et « Anna part pour un autre poste. Personne ne sait comment poursuivre son travail. » Deux chercheurs perplexes fixent un écran.
3e partie : soit une équipe prend le relais, soit le logiciel se fragmente et finit abandonné.

Ces derniers temps, j'interviens justement en freelance à ce stade précis : quand le logiciel s'est éclaté en versions impossibles à réconcilier, et que plus personne ne sait vraiment comment avancer. C'est un défi que j'aime relever, et je suis devenue efficace pour diagnostiquer et régler rapidement ces problèmes.

Si cette histoire vous parle et que vous êtes dans une situation semblable, n'hésitez pas à me contacter. Je peux vous aider à retrouver un logiciel qui fonctionne sans accroc, avec la simplicité et l'efficacité qui faisaient le bonheur de tous, pour que votre équipe se concentre à nouveau sur sa recherche.

← Tous les articles

Vous reconnaissez votre labo ?

Parlez-moi de votre code et de ce qui coince. Le premier regard est gratuit.

M'écrire