Back from Reproducible Days organized by French network
It was a very pleasant parenthesis in the middle of my parenthesis. I enjoyed the talks, many discussions around coffee, lunch or diner. So much food for thoughts! The topic of Reproducible Research in our modern are is a true twofold challenge: scrutinize why now it appears as a real concern and act on what we have.
We are all hitting hard-to-reproduce roadblocks in our day-to-day practises when trying to push the boundaries of the understanding of our specialized fields; and all fields are impacted, to some extent.
The picture for the specificities of each field or for the common between all cannot be drawn in the abstract, instead it must be rooted in current practises. The challenge is both: being reflective and incremental. What a topic!
Les Journées du réseau français de recherche reproductible 2024 se sont déroulées à Grenoble du 26 au 28 Mars. À la suite de ces journées, j’ai envoyé un email pour réfléchir à l’axe du Groupe de Travail (GT) sut la reproductibilité du procédé de calculs.
Voilà je pose cet email là comme un pense bête.
L’idée de cet email est d’essayer de borner les axes de travail pour le GT Reproductibilité Logicielle. Voilà ce à quoi je pensais nourri par ces 3 journées à Grenoble ! D’ailleurs, merci pour l’organisation !
D’abord limiter logiciel en excluant Données ; logiciel comme un ensemble de séquences d’instructions exécutées par un calculateur.
Quelque part restreindre le GT à la question de la reproductibilité du procédé de calculs. Donc je propose de travailler sur trois axes dans le désordre ou mélangés :
- Identification
- comment citer ? que citer ? quoi décrire ?
- et l’arbre de dépendances ?
- et quelles dépendances ? construction vs exécution
- et la construction ? on lit le code source mais on exécute un binaire
- et la composition de logiciels (workflow) ?
- Utilisation
- origine des incertitudes ?
- bit-à-bit ou pas ? parfois oui, parfois non ? pourquoi ?
- métrologie du calcul comme instrument de mesure ?
- et les nombres flottants ?
- et le matériel ?
- et l’environnement logiciel ? lien avec l’Identification
- autonomie de l’utilisation ? convivialité ?
- lien avec “GT Notebooks” (plutôt “GT Interaction computationnelle” ? ;-))
- Développement
- bonnes pratiques
- gestion de version
- documentation : quoi ? comment ?
- implémenter, c’est choisir, consciemment ou non ; peut-on ou doit-on documenter ces choix ? si oui, comment ?
- quelle finalité ?
- script glue vs bibliothèque support ?
- quelle limite entre simple “Utilisation” vs “Développement” ?
- parle-t-on alors de la même "reproductibilité logicielle" ?
- maintenance ?
- ajout d’une dépendance vs implémentation locale
- quelle valorisation pour le travail de maintenance ?
- que signifie FAIR dans ce contexte?
- comment se décline FAIR ?
- lien avec Science Ouverte (COSO) et autres recommandations/guides
- lien avec l’axe Utilisation
- lien avec maintenance
- vers le développement d’outils conviviaux ?
- bonnes pratiques
- Publication1
- quoi publier ?
- comment le faire ?
- évaluation ?
- lien avec identification
- lien avec quelle finalité
- lien avec maintenance
Bien évidemment, j’ai un fort biais (Guix) pour approcher le problème de la « Reproductibilité Logicielle ». Le sujet est d’apporter collectivement des pistes / discussions / réponses et pas de propager mes biais. ;-)
Si ces 3 axes vous paraissent “raisonnables”, on pourrait commencer par se fixer comme objectif la construction de synthèses comme base de (re-)discussions avec les collègues, sous la forme de transparents/présentation et/ou guide et/ou recommendations, bref à définir.
Concrètement, aujourd'hui quand j'écris un papier, et ayant mis les mains dans le cambouis de la Reproductibilité Logicielle, je me sens quand même un peu démuni face à la capture (identification) de la chaine de traitements que j'applique sur les données. Il n'est pas clair pour moi ce qui fonctionne, un peu plus clair ce qui ne fonctionne pas, bref pour commencer le Groupe de Travail pourrait collecter et synthétiser, et peut-être proposer, des pistes de réponses à la question : comment identifier ou décrire ou citer une chaine de traitements ?
Footnotes:
Suggestion de Thomas Vuillaume. Merci !