Aller au contenu
retour
ART-11·OBSERVER·3 novembre 2026·17 min

Entre deux séries : concevoir une application sur mesure à partir de l’usage réel

Par Camilo Rivera

Affiche sérigraphiée : un demi-disque violet posé sur le bord bas, une capsule jaune à l’intérieur, et trois capsules vides, dessinées d’un trait blanc cassé, restées au-dessus
Affiche générée · direction OSOM Labs

Un téléphone, une salle d’entraînement, quelques secondes entre deux séries. Cette situation tient lieu de cahier des charges à TRAME, et elle a défait plusieurs choses que nous avions construites. TRAME est un projet interne d’OSOM Labs : une application d’entraînement conçue sur mesure pour une seule personne, en usage réel depuis l’été 2026. Elle n’est pas publique, elle ne se télécharge pas, et ce récit ne donne aucun conseil d’entraînement. Le fitness est ici le terrain de l’exemple. La question posée est celle d’une direction de PME devant un projet d’application métier sur mesure : comment en décider le contenu, et à quel moment y renoncer. Ce qui suit vient de notre journal de décisions et de mesures relevées dans la base de l’application, erreurs comprises.

0101

Une phrase qui tranche les désaccords

Le dossier de TRAME s’ouvre sur l’usage : en salle, sur téléphone, entre deux séries, « c’est la contrainte qui prime sur tout le reste ». Cette phrase se traduit en règles qu’on peut vérifier.

Les cibles tactiles font au moins 48 px. Chaque écran a un seul bouton principal. La séance n’ouvre qu’un seul mouvement à la fois. Toute information lue en séance fait au moins 13 px, et un test échoue si un composant descend en dessous.

Le même dossier dit ce qui n’entre pas. Une seule personne se sert de l’application : ni rôles, ni invitations, ni partage, ni abonnement. Toute fonction qui suppose un deuxième utilisateur reste hors périmètre.

Dans une organisation, la phrase sera autre : un technicien sur un toit, avec des gants ; une réceptionniste, avec quelqu’un en face d’elle. Si l’équipe n’arrive pas à l’écrire, le projet n’a pas encore de sujet.

Écran d’accueil de l’application : la séance du jour, Bas du corps, et un seul bouton principal, « C’est parti », avec « Faire une autre séance » juste en dessous
Capture de l’accueil · un seul bouton principal · prénom masqué · planche anatomique générée
0202

Observer, puis retirer du chemin

Sur les premières séances mesurées, les séries d’un même mouvement étaient saisies d’un coup, en rafale de 3 à 15 secondes, une fois le mouvement terminé. L’unité de l’application est donc le passage : un mouvement fait en entier, toutes ses séries. Le mouvement ouvert arrive déjà rempli, et « Fait · 3 × 10 · 20 kg » écrit les trois séries d’un tap. Le détail série par série et la note restent facultatifs et n’allongent pas le chemin. Il n’y a pas de minuteur de repos : avec une saisie en rafale, il n’aurait pas de sens.

Le retrait le plus instructif concerne la note d’effort. Jusqu’au 26 août, quatre pastilles étaient proposées à chaque série : 0 saisie sur 38 séries. Une question plus simple les a remplacées, Facile, Juste ou Dur, posée sur le passage entier. Le 1er octobre, elle était renseignée sur 20 % des séries. Du 14 au 26 octobre, sur aucune série, en cinq séances. Pour la personne qui s’en sert, la question n’était pas intuitive.

Le 26 octobre, la question a quitté l’écran. À sa place, « La prochaine fois ? » demande en fin de passage ce que l’on veut viser ensuite : plus léger, pareil, une répétition de plus, plus lourd. L’ancienne question regardait en arrière. La nouvelle regarde devant, et sa réponse sert dès le passage suivant.

Dans une application métier, un champ que personne ne remplit est une mesure comme une autre. Il coûte trop cher au moment où on le demande, ou sa réponse ne sert à rien. La base le montre, à condition d’aller la relire.

0303

Proposer, et laisser décider

Le calcul le plus lourd de conséquences, dans TRAME, porte sur la charge suivante. La règle s’appelle la double progression : les répétitions d’abord, et un palier de charge seulement quand quatre conditions sont réunies. Le dernier passage était complet. Sa série la plus faible a atteint le haut de la prescription, car une bonne première série ne prouve rien si les suivantes décrochent. L’effort, quand il a été noté, est resté sous un plafond. Et le palier de l’appareil est connu. Ne pas noter l’effort ne bloque rien, sans quoi l’application punirait une saisie absente.

Même réunies, ces conditions produisent une proposition, jamais un changement. La charge proposée n’entre dans la saisie que si la personne touche un bouton. L’historique connaît le passage précédent, et il ne sait rien de la forme du jour. La personne en salle, si.

Une exception est consignée. L’objectif fixé avec « La prochaine fois ? » préremplit bien la saisie du passage suivant, sur le même appareil. La règle protège d’une décision de l’application ; cet objectif est une décision de la personne, prise un passage plus tôt. Le conseil automatique, lui, ne remplit toujours rien.

Le programme suit la même logique. Il vient de l’extérieur : l’application le transcrit et ne le réécrit pas. Une fourchette de répétitions plus conforme aux habitudes de l’application a été écartée, parce qu’elle aurait affiché autre chose que la prescription. Quand il a fallu rapprocher les appareils du programme de ceux de la salle, trois cas douteux ont été tranchés un par un plutôt que devinés sur la ressemblance : deux étaient les mêmes, le troisième non.

TRAME ne contient aucune fonction d’intelligence artificielle. Ses propositions sortent de règles écrites, que l’on peut relire et tester. La démonstration de notre page Labs en montre deux sur des données fictives.

Pour tout automatisme d’une application métier, trois questions valent d’être posées : qui décide, qui peut corriger, et que voit-on quand le calcul ne sait pas ?

0404

Quand l’application ne sait pas, elle le dit

Cinq appareils ajoutés en septembre portaient un palier de 2,5 kg posé par défaut, que personne n’avait relevé sur la machine. L’application pouvait donc proposer un cran inexistant. Ces valeurs ont été retirées. Un palier inconnu ne produit plus aucune hausse chiffrée, tant qu’il n’a pas été relevé en salle.

La durée des séances a connu le même sort. Des séries saisies après coup, toutes à la même heure, affichaient « 0 min », et une autre séance « 3 h 48 ». Le bilan écrit maintenant « Durée inconnue · séries saisies après coup », ou « à vérifier » au-delà de 2 h 30. « 0 min » affirmait une mesure qui n’avait pas eu lieu. C’est la discipline que nous décrivons dans le récit de l’algorithme honnête.

Certains chiffres trompent par leur sens. Sur les machines assistées, le nombre affiché est un contrepoids : progresser, c’est le faire baisser. Sans cette information posée sur l’appareil, la règle aurait proposé de l’augmenter. Chaque métier a ce genre de cas, et ils se trouvent sur le terrain.

Écran du journal d’une séance de dos et biceps : un encadré signale trois appareils sans cran confirmé, et rappelle qu’aucune hausse n’est chiffrée sans lui
Capture du journal · le « cran » est le palier de l’appareil · planches anatomiques générées
0505

Les corrections qui ont compté sont venues de la salle

Le 1er octobre, un audit de l’application a relu l’usage réel. Depuis la refonte visuelle du 24 septembre, aucune séance n’avait été enregistrée en direct en salle. Deux séances avaient été ouvertes puis effacées sans série, et les séries saisies après coup. Les notes et les repères d’appareil, construits autour de la séance, étaient à zéro.

La cause, donnée par la personne qui s’en sert : l’application proposait la mauvaise séance. Une séance du vendredi n’avait pas été faite. Le lundi, l’accueil continuait de la proposer, et son seul bouton ne démarrait qu’elle. La séance du lundi a eu lieu sans pouvoir être enregistrée sur le moment. Notre logique retenait le nombre de séances faites, jamais lesquelles. Depuis le 29 septembre, la séance proposée est celle qui suit la dernière séance close, avec « Faire une autre séance » juste en dessous. Un bouton « Passer » a été écarté : il aurait créé une séance fantôme que l’historique et le calendrier auraient dû apprendre à ignorer.

Le 30 septembre, le bouton de démarrage a mis environ 5 secondes à afficher la séance. La mesure a montré que les pages tournaient à Washington, alors que la base est à Zurich. La base répondait en 4 ms, le trajet portait la réponse à 292 ms (médianes sur 131 requêtes), et une page en enchaînait 6 à 9. Le calcul des pages est passé à Francfort et les lectures ont été regroupées. Le gain de ce déplacement reste une déduction : nous n’avons pas de mesure comparable faite après coup.

Ces deux constats ont changé l’ordre du travail. La suite prévue était visuelle. Elle est passée après la fiabilité de la séance : garder la saisie lors d’une coupure, montrer l’attente, une seule séance ouverte à la fois, plus d’effacement d’un seul tap. Trois fonctions déjà décidées ont été conditionnées à deux semaines de séances saisies en direct. Notre journal le dit ainsi : « L’habillage peut attendre une semaine ; une séance perdue, non. » Depuis, les séances se saisissent de nouveau en salle.

D’autres défauts ne se voyaient que sur place. Jusqu’au 26 août, l’en-tête se peignait sous l’horloge du téléphone et le bouton « Terminer » se trouvait dans la bande où iOS intercepte les touchers. Sur un ordinateur de développement, rien de cela n’apparaît. Une séance du 24 août est restée ouverte, avec ses 19 séries : le geste de clôture ressemblait alors trait pour trait à un lien voisin. Il a été déplacé, et il se fait maintenant en deux temps.

0606

Ce que nous vérifions, et ce qui échappe aux tests

Au 3 novembre 2026, la suite compte 286 tests automatisés, et les 286 passent. Ils portent d’abord sur les règles qui produisent un chiffre : la montée de charge, la charge inversée, l’objectif de la prochaine fois, la durée d’une séance, la date d’un jour en heure suisse. Personne ne recalcule ces chiffres en salle : s’ils sont faux, ils seront crus. D’autres tests rejouent des migrations de la base dans une base d’essai, ou contrôlent l’interface, comme les contrastes et les tailles de texte.

Les coupures de réseau ont été essayées à la main, le 1er octobre : réseau coupé pendant « Fait », la saisie reste à l’écran et « Réessayer » enregistre le passage une seule fois. Le message dit « pas confirmé » et n’affirme jamais l’échec, car une réponse perdue peut suivre une écriture réussie. Un « Fait » qui avancerait avant la réponse du serveur a été écarté dans le même esprit : sans file locale, la coche pourrait mentir.

Les écrans et les échanges avec le serveur n’ont, pour l’essentiel, pas de tests automatisés, et c’est un choix : il faudrait une base de données ou trois dépendances de plus. Une suite au vert dit donc peu de chose de ce que voit la personne en salle.

TRAME
Séance après séance, les passages tissent une trame.
0707

Les limites que nous assumons

L’application ne fonctionne pas hors ligne. C’était pourtant l’une de nos quatre contraintes de conception, parce que beaucoup de salles captent mal au sous-sol. Rien ne s’enregistre sans réseau, et une application fermée perd sa saisie en cours. Travailler hors ligne demanderait une file locale et une synchronisation, soit une autre architecture. Nous l’avons exclu le 1er octobre et gardé le filet décrit plus haut. La contrainte reste écrite, avec la mention « non tenue ».

TRAME est une application web installable sur l’écran d’accueil du téléphone. Pour un projet de développement d’application mobile, cette forme a ses contreparties : l’application peut garder une ancienne version en mémoire après une mise à jour, et le calendrier natif de l’iPhone lui reste inaccessible.

Le développement d’une application web sur mesure en Suisse pose aussi la question du lieu. La base de TRAME est à Zurich. Ses pages se calculent à Francfort, son hébergeur n’ayant pas de région en Suisse.

Tout repose enfin sur une seule personne. Droits d’accès, rôles, reprise de données, formation d’une équipe, connexion à un outil existant : TRAME ne prouve rien sur ces sujets, que la plupart des applications métier rencontrent. Nos mesures décrivent un seul usage. Elles orientent nos décisions et n’établissent aucune généralité. Nous n’appliquons pas non plus notre règle partout : la note libre, sans aucune saisie du 1er septembre au 26 octobre, est toujours là.

0808

La méthode, transposée à un métier

Avant de chercher un développeur d’application, en Suisse ou ailleurs, voici ce que nous ferions, dans cet ordre.

  • 1.Écrire la situation d’usage en une phrase : qui, où, avec quoi dans les mains, en combien de temps.
  • 2.Observer de vraies occurrences avant de dessiner, et noter ce qui se mesure.
  • 3.Pour chaque calcul, décider ce qui est proposé, ce qui est appliqué, et ce qui s’affiche quand la donnée manque.
  • 4.Tester les règles qui produisent un chiffre auquel on se fiera sans le recalculer.
  • 5.Essayer chaque version sur place, dans les conditions réelles.
  • 6.Relire l’usage en base, et retirer ce qui ne sert pas.
  • 0909

    Quand le sur-mesure n’est pas la bonne réponse

    Ce qui suit est notre avis, tiré de ce projet, et non une statistique.

    Un logiciel du marché fait déjà le travail. Notre exemple le montre : des applications d’entraînement existent. TRAME tient à une préférence pour sa mécanique de saisie et à son statut de projet interne. Une PME n’a pas à raisonner ainsi. Si un logiciel existant couvre le geste, moyennant quelques détours, nous commencerions par le garder.

    Personne n’a accès au terrain. Sans observation, on programme une hypothèse. Tout ce récit repose sur des séances réelles et sur une base qu’on peut relire.

    La tâche est rare, ou pas encore stable. Si l’équipe ne sait pas encore comment elle veut travailler, un tableur ou un outil existant donnera d’abord la réponse, avec moins d’engagement.

    Personne ne suivra l’application après sa mise en service. TRAME a changé de programme le 17 septembre, déplacé son calcul le 1er octobre et perdu sa question d’effort le 26 octobre. Ces changements sont venus du terrain, de mesures ou de retours que quelqu’un a lus. Une application livrée puis laissée seule n’en fera aucun.

    Le sur-mesure se défend quand une contrainte d’usage forte et précise n’est respectée par aucun outil existant, quand on peut aller voir, et quand quelqu’un relira ce qui se passe après la mise en service. Pour un logiciel sur mesure en entreprise, notre offre d’applications métier sur mesure décrit notre façon d’avancer. Le premier échange part de la tâche à simplifier, des personnes concernées et des outils déjà utilisés.

    Cadre de lecture

    Ce récit décrit un projet interne d’OSOM Labs, conçu pour une seule personne. L’application n’est pas publique. Les règles citées décrivent son fonctionnement : elles ne constituent ni un conseil d’entraînement, ni un conseil de santé. Les mesures portent sur un seul usage et ne se généralisent pas.

    Ce qu'il faut retenir

    01

    Une application métier part d’une situation d’usage écrite en une phrase. Pour TRAME : en salle, sur téléphone, entre deux séries.

    02

    Une note d’effort proposée à chaque série a recueilli 0 saisie sur 38 séries. Sa dernière version a quitté l’écran le 26 octobre 2026.

    03

    Un palier de charge est proposé, jamais appliqué d’office. La saisie reprend le dernier passage, ou l’objectif que la personne s’est fixé elle-même.

    04

    Une valeur inconnue reste inconnue : aucune hausse chiffrée sans palier relevé, « Durée inconnue » plutôt que « 0 min ».

    05

    286 tests vérifient l’application au 3 novembre 2026. Les écrans, pour l’essentiel, n’en font pas partie, et elle ne fonctionne pas hors ligne.

    06

    Le sur-mesure se défend mal quand un logiciel existant fait le travail, quand personne ne peut observer l’usage, ou quand personne ne suivra l’application après sa mise en service.

    Stack

    Application web installableNext.jsPostgreSQLTests automatisés
    application métier sur mesure · développement application web sur mesure · logiciel sur mesure entreprise · développement application mobile suisse · concevoir une application à partir de l’usage

    D'autres articles dans le journal

    On documente tout ce qu'on fait.