26 janvier 2021

Anatomie d’une crise

Le week-end dernier a été très stressant, les problèmes se sont enchaînés comme ce n’était jamais arrivé. Comme disait le Président Chirac:

Les emmerdes, ça vole toujours en escadrille.

Etat de départ

Je suis en contact avec l’académie de Versailles pour qu’ils puissent enfin mettre leur tampon sur la conformité de JeValide Académique. Mais l’académie m’a demandé de nouveaux changements et les utilisateurs de JeValide Académique ne sont pas tous à Versailles, j’ai donc décidé d’ajouter un sélecteur permettant de choisir à quelle académie vous appartenez. Je me suis dit que le meilleur endroit pour ce sélecteur était l’onglet école.

Je travaillais donc sur l’onglet école de JeValide (les codes de JeValide et de JeValide Académique sont en commun), le but était de permettre d’ajouter des champs et des options en mettant l’ensemble de ceux-ci dans une zone scrollable afin que les données se placent correctement à l’ouverture du clavier. En effet, l’ouverture du clavier ne déplace pas ”tout seul” les champs et c’est pourquoi je les place le plus souvent en haut de l’écran, afin de ne pas avoir à gérer le clavier.

Bug d’un utilisateur

Je suis alors contacté par un utilisateur qui utilise plusieurs de mes applications, et dont plus aucune application ne fonctionne. Je lui demande de m’envoyer sa base de données, je teste, trouve le moment où les applications plantent, je vois qu’il y a un petit problème avec l’une de ses données et je mets une sécurité qui évite le plantage en renvoyant des données vierges, j’en profite pour enlever un warning juste au-dessus. Je teste sa base sur mon iPad-mini IOS 12, tout va bien, la base ne plante plus. J’envoie les mises à jours tout fier de résoudre le problème en quelques heures.

L’escadrille

Suite à cette mise à jour, j’ai eu bugs sur bugs dont un très grave. Je n’avais pas testé sur les autres systèmes IOS, je n’avais testé que sur mon IOS12.

Le Warning que j’avais corrigé, faisait planter l’application sans le dire. Un warning est une alerte que l’outil de développement vous donne, dans le cas présent, il s’agit d’une fonction que j’utilise pour mettre les données de la fiche élève (et les commentaires des PDF) dans un seul enregistrement, cette fonction est deprecated, c’est-à-dire qu’il faut en utiliser une autre. J’ai suivi la recommandation de l’outil de développement, mais la nouvelle fonction ne fonctionne pas. Le résultat est que la configuration de la fiche de l’élève n’est pas lue (sur IOS14).

Cela aurait-été moins grave, si je n’avais pas aussi mis les données à zéro en cas de plantage pour réparer le problème de mon utilisateur. Là, les données n’arrivaient pas à être lues et donc étaient mise à zéro et enregistrées.

JeValide 2.96 faisait donc perdre des données. Je passais en mode DEFCON 1.

JeValide 2.97

Dès les premiers retours de perte de données, je réagis le plus vite possible. D’abord limiter les dégâts… Je n’avais pas encore compris le problème du warning corrigé qui faisait planter la lecture des données.

Les mises à jour de JeValide, ABC-PhotoBook, BilanPhoto et Elèves supprimaient juste la sauvegarde des données mises à zéro. Je fis les mises à jour dans l’heure, et demandais à Apple une procédure d’urgence. Il fallut quelques heures pour que cela soit fait. En attendant, je m’activais sur les réseaux sociaux, pour demander aux utilisateurs de ne pas faire la mise à jour et de ne pas se servir des apps le week-end.

JeValide 2.98

J’ai ensuite compris pourquoi les IOS14 étaient tous avec les caméras barrés. C’était le fameux Warning corrigé qui plantait et les données n’étaient pas lues (donc pas de droits sur la caméra).

Je fis donc une version avec la fonction deprecated (mais qui fonctionne bien).

Malheureusement, les utilisateurs qui avaient essayé de re-remplir les données avec JeValide 2.97 ont supprimé les données. En effet, c’est la lecture qui plantait, mais comme elle plantait, les données était à zéro, et en allant dans la fiche de l’élève on enregistre les données qui s’y trouve, c’est-à-dire rien.

JeValide 2.99

J’avais des retours qui disaient que l’espace professeur n’était plus accessible. Je savais bien qu’il y avait peu de chance que cela soit en rapport avec les bugs de lecture et d’enregistrement des fiches élèves.

Mais je n’arrivais pas à reproduire le bug, ni sur mon iPad3 IOS 9, ni sur mon iPad-mini IOS12, ni sur mon iPadPro IOS14… J’avais l’intuition qu’il devait s’agir d’un problème avec l’onglet école, puisque j’y avais touché et que c’était le premier onglet à s’afficher.

Je décidais de mettre l’onglet info en premier. Ainsi plus de plantage pour accéder à l’espace professeur.

JeValide 2.100

Grace à un message sur FaceBook, je compris que le problème n’était que sur iPhone. Et effectivement, je trouvais le problème dans le fichier de l’interface. Je n’avais pas assez testé, pressé de régler le problème de base d’un utilisateur.

JeValide 2.101

Dernier petit bug, petit parce que n’impactant que les tablettes IOS 9 qui éditent un champ texte dans l’onglet école. La crise est finie, le week-end aussi.

Conclusion

Je vous prie d’accepter toutes mes excuses. ABC-Applications est une entreprise unipersonnelle et tous vos problèmes ne peuvent qu’être de ma faute. Je suis réactif et je m’inquiète beaucoup de vos données, mais cette réactivité peut parfois être contre-productive.

Les crises arrivent et sont imprévisibles (avec le Corona, on le sait tous). Ce que je peux vous conseiller, c'est de vous abonner à la page FaceBook d’ABC-Applications, à l’usage, c’est le meilleur canal pour gérer une crise. C'est, en tout cas, le canal que j'ai utilisé tout le week-end. Vous pourriez même être au courant de problèmes avant moi.

Emmanuel CROMBEZ