Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

COVID-19 : le code qui a conduit aux mesures de confinement en Angleterre s'apparente à de la programmation spaghetti
D'après des experts qui estiment qu'il n'est pas fiable

Le , par Stéphane le calme

297PARTAGES

16  0 
La modélisation de Covid-19 sur laquelle s’est appuyée la Grande-Bretagne pour sa mise en confinement a été critiquée par une série d'experts. Pour être plus précis, c’est le code informatique du professeur Neil Ferguson qui a été pointé du doigt et désigné comme étant « totalement non fiable » par des experts.

C’est sur la base de ses modèles que le Premier ministre britannique, Boris Johnson, a fait volte-face, à la fin mars. Partisan jusqu’alors d’un certain « laisser-faire » face au nouveau virus, il avait finalement opté pour le confinement de la population, alignant sa politique sur celle de la plupart des autres pays européens. Les États-Unis ont également utilisé le modèle, qui prévoyait plus de 2,2 millions de décès aux États-Unis sans action appropriée. La projection a contribué à influencer la Maison-Blanche à adopter une approche plus sérieuse de la pandémie.

Les critiques ont donc fait suite à cette série de revirements politiques.

Ce modèle est un « méli-mélo qui ressemble plus à de la programmation spaghetti qu’à un programme finement ajusté », a regretté David Richards, co- fondateur de la société britannique de technologie de données WANdisco. « Dans notre réalité commerciale, nous licencierions n'importe qui pour avoir développé un code comme celui-ci et toute entreprise qui en dépendrait pour produire des logiciels à vendre ferait probablement faillite ».

Ferguson, le modélisateur de virus de l'Imperial College de Londres et conseiller scientifique du gouvernement, a averti le 16 mars que 500 000 personnes pourraient mourir de la pandémie sans action significative. Le modèle de l’Imperial College fonctionne en utilisant du code pour simuler les liaisons de transport, la taille de la population, les réseaux sociaux et les services de santé pour prédire comment le coronavirus se propagerait. Les chercheurs ont publié le code derrière celui-ci, que les développeurs ont critiqué comme étant illisible.

D’ailleurs, sur Github, un collectif d’ingénieur a fait passer une pétition pour demander à tous les articles qui s’appuyaient sur ce code d’être supprimés :

« Des milliards de vies ont été perturbées dans le monde entier sur la base du fait que l'étude produite par la logique contenue dans cette codebase est exacte, et puisqu'il n'y a pas de tests pour le prouver, les résultats de cette étude (et de toute autre qui s’appuie sur cette codebase) ne sont pas une base solide pour la politique publique en ce moment.

« Je veux être clair que ce problème n'est pas destiné à dénigrer les auteurs de ce code - nous avons tous écrit du code qui n'est pas notre meilleur travail et du code qui n'a pas été testé. Mais lorsqu'une codebase est utilisée pour élaborer des publications dans le monde scientifique qui sont à leur tour utilisées pour influencer les politiques publiques, les auteurs de ces publications (et, en fin de compte, les politiques) doivent s'assurer que la science est vérifiable dans un sens public ».


Neil Ferguson était l'un des architectes clés derrière le modèle de l'Impérial College

Pour leur part, les scientifiques de l'Université d'Édimbourg ont affirmé qu'il était impossible de reproduire les mêmes résultats à partir des mêmes données en utilisant le modèle. L'équipe a obtenu des résultats différents en utilisant des machines différentes, et même des résultats différents pour les mêmes machines.

« Il semble y avoir un bogue dans la création ou la réutilisation du fichier réseau. Si nous tentons deux exécutions complètement identiques, ne variant que dans la mesure où la seconde doit utiliser le fichier réseau produit par la première, les résultats sont assez différents », ont écrit les chercheurs d'Édimbourg sur Github.

Un correctif a été fourni, mais c'était le premier de nombreux bogues trouvés dans le programme.

« Les modèles doivent être capables de passer le test scientifique de base de produire les mêmes résultats avec le même ensemble initial de paramètres ... sinon, il n'y a tout simplement aucun moyen de savoir s'ils seront fiables », a déclaré Michael Bonsall, professeur de biologie mathématique à l’université d’Oxford.

Un porte-parole de l'équipe de réponse COVID19 de l'Imperial College a déclaré :

« Le gouvernement du Royaume-Uni ne s'est jamais appuyé sur un modèle de maladie unique pour éclairer la prise de décision. Comme cela a été répété à plusieurs reprises, la prise de décision concernant les mesures de confinement était basée sur une vision consensuelle des preuves scientifiques, y compris plusieurs études de modélisation par différents groupes universitaires.

« L'épidémiologie n'est pas une branche de l'informatique et les conclusions concernant les mesures de confinement ne reposent pas sur un modèle mathématique, mais sur le consensus scientifique selon lequel COVID-19 est un virus hautement transmissible avec un taux de mortalité par infection supérieur à 0,5 pc au Royaume-Uni ».

Neil Ferguson, l’épidémiologiste vedette de l’Imperial College, éminent membre du SAGE, le comité scientifique du gouvernement Johnson, a dû démissionner en début de mois à la suite de révélations du Telegraph. Le journal assure qu’il n’a pas respecté les règles de confinement à la mise en place desquelles, par ses modélisations, il avait fortement contribué. À « au moins deux reprises », une femme mariée de 38 ans a traversé Londres depuis son domicile conjugal, au sud de la capitale, pour « passer du temps » avec le scientifique de 51 ans. Or, depuis le 23 mars, le gouvernement recommande aux Britanniques d’éviter tous les déplacements « non essentiels » hors de leur domicile.

Sources : Telegraph, GitHub, Curry

Et vous ?

Que pensez-vous de cette situation ?
Pourrait-elle, selon vous, illustrer les délais souvent très serrés donnés aux développeurs ?
Dans ce genre de condition est-il préférable de livrer une application sans tests ou retarder la livraison pour avoir le temps d'effectuer des tests ? Cela est-il tributaire de la finalité de l'application (plus elle est sensible - domaine, type de données collectées, etc. -, plus impérative est la nécessité de faire des tests, quitte à se faire taper sur les doigts par le client) ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de grunk
Modérateur https://www.developpez.com
Le 18/05/2020 à 17:12
Il faut différencier deux choses :

- La qualité du code produit : Ca n'a pas vraiment d'importance , surtout dans une situation d'urgence et encore plus quand son auteur semble plus être un scientifique qu'un "vrai" développeur.

- La robustesse des algorithmes : C'est ici que c'est plus problématique. Si les algo sont robustes mais codés avec les pieds , encore une fois pas de problème. Mais si une fois sur deux les résultats ne sont pas les même ... là y'a un vrai soucis
11  0 
Avatar de JackIsJack
Membre averti https://www.developpez.com
Le 19/05/2020 à 6:54
Début de l'article : du code dégueu a provoqué le confinement injustifié de milliards d'individus.
Suite de l'article : en fait non, mais quelqu'un a écrit du code dégueu quand meme ! (Ha. Ok.)
4  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 19/05/2020 à 14:50
J'avoue, ce code est quand même un cas d'école de mauvaises pratiques :



Et je ne cite que des conventions générales, rien de spécifique au C/C++. On pourrait certainement en rajouter avec une vrai analyse type Sonar ou autre. On peut qualifier ça de gros PoC : tout a été fait progressivement dans le main() sans jamais avoir une vrai réflexion sur l'organisation du code. Juste quelques extractions effectuées à la volée par-ci par-là. Autrement dit, aucune stratégie mise en place pour maintenir le code ni le partager. Donc le qualifier de travail scientifique est juste hors de question à ce stade, bien qu'il puisse le devenir. Je n'ai pas évalué les tests, mais si je m'en tiens aux avis que j'ai pu lire, le manque de test ne permet pas de valider le code, donc prendre des décisions sur la base de ses résultats est effectivement scandaleux.

Petit bémol tout de même : c'est un algorithme stochastique, donc de toute façon il ne faut pas se contenter d'une seule exécution. Il faut une série d'exécutions pour en tirer des résultats statistiques. Pour autant, ne pas avoir le même résultat avec la même seed est effectivement un problème qui jette le discrédit sur le code : si une propriété aussi basique n'est pas validée, que dire de propriétés plus complexes ?
4  0 
Avatar de SimonDecoline
Expert confirmé https://www.developpez.com
Le 18/05/2020 à 19:13
J'ai regardé le code rapidement et ça a quand même l'air bien moche. Les fichiers portent l'extension .cpp (C++) mais en fait c'est du vieux C. Il y a même des goto... En soit, ça ne veut pas dire grand chose mais, quand même, ça n'inspire pas confiance. Quand on bosse sur un truc aussi important, le minimum c'est de coder propre et de blinder de tests...
1  0 
Avatar de archqt
Membre éclairé https://www.developpez.com
Le 18/05/2020 à 19:06
A « au moins deux reprises », une femme mariée de 38 ans a traversé Londres depuis son domicile conjugal, au sud de la capitale, pour « passer du temps » avec le scientifique de 51 ans. Or, depuis le 23 mars, le gouvernement recommande aux Britanniques d’éviter tous les déplacements « non essentiels » hors de leur domicile.
Une étude a prouvé qu'on travaille mieux les b..... vides que pleines, c'était donc des déplacements indispensables
0  0 
Avatar de SimonDecoline
Expert confirmé https://www.developpez.com
Le 19/05/2020 à 10:26
Citation Envoyé par JackIsJack Voir le message
Début de l'article : du code dégueu a provoqué le confinement injustifié de milliards d'individus.
Suite de l'article : en fait non, mais quelqu'un a écrit du code dégueu quand meme ! (Ha. Ok.)
Tu devrais lire l'article jusqu'au bout :
Pour leur part, les scientifiques de l'Université d'Édimbourg ont affirmé qu'il était impossible de reproduire les mêmes résultats à partir des mêmes données en utilisant le modèle. L'équipe a obtenu des résultats différents en utilisant des machines différentes, et même des résultats différents pour les mêmes machines.
0  3