2026.07.15 (Mer)
2026.07.22 (Mer) mis Ă  jour

✹ RĂ©sumĂ© de GPT-5.6 Sol

Le rĂ©cit de ma recherche d’une structure d’automatisation opĂ©rationnelle capable de prĂ©server les activitĂ©s de vente et de messagerie dĂ©jĂ  en place, tout en s’étendant Ă  l’inbound et Ă  l’administration du personnel.

J’ai essayĂ© de rĂ©unir deux programmes qui fonctionnaient dĂ©jĂ 

Au sein de l’entreprise, il existait dĂ©jĂ  deux programmes d’automatisation qui avaient Ă©voluĂ© dans des directions diffĂ©rentes.

Le premier Ă©tait un programme de gestion des congĂ©s par SMS, initialement dĂ©veloppĂ© par mon prĂ©dĂ©cesseur. Ce service calculait les congĂ©s de chaque employĂ©, envoyait des SMS d’incitation Ă  les prendre, puis interprĂ©tait les demandes reçues par SMS pour les faire suivre jusqu’à leur approbation ou leur refus. Le Web, le backend, la DB et mĂȘme le tĂ©lĂ©phone Android professionnel formaient dĂ©jĂ  un seul flux.

Le second Ă©tait le systĂšme de collecte de donnĂ©es publiques et d’automatisation des ventes que je continuais Ă  amĂ©liorer. Il recueillait des Ă©tablissements et leurs coordonnĂ©es, les reliait aux appels outbound de Vox, puis les transmettait Ă  l’activitĂ© commerciale rĂ©elle.

Au dĂ©but, je pensais qu’il suffirait de dĂ©placer les deux projets dans un mĂȘme dĂ©pĂŽt pour les intĂ©grer. Mais, en rĂ©flĂ©chissant aux fonctionnalitĂ©s que je voulais ajouter, j’ai compris que rĂ©unir les dossiers ne suffirait pas.

  • la prise en charge inbound reliĂ©e Ă  l’outbound existant
  • un flux qui reçoit les demandes des employĂ©s et les transmet aux tĂąches administratives
  • la gĂ©nĂ©ration et la remise automatiques d’attestations d’emploi
  • la rĂ©partition des droits selon les informations sur les employĂ©s, les contrats et les sites d’affectation
  • une interface opĂ©rationnelle qui regroupe les Ă©checs, les approbations, les retraitements et les journaux d’audit

La question n’était alors plus « comment rĂ©unir les deux codes ? », mais « oĂč placer les activitĂ©s qui vont se multiplier ? ».

J’ai dĂ©cidĂ© de ne pas jeter le programme existant

En regardant le programme de gestion des congĂ©s par SMS, j’avais trĂšs envie de repartir de zĂ©ro. J’y voyais une ancienne structure, des rĂ©glages provisoires et de nombreux Ă©lĂ©ments que j’aurais aimĂ© reconcevoir selon les standards actuels. Reprendre uniquement les exigences dans un nouveau code semblait pouvoir donner un rĂ©sultat plus propre.

Mais, Ă  mesure que j’examinais les documents, j’ai dĂ©couvert dans ce programme des Ă©lĂ©ments plus importants que le code lui-mĂȘme.

  • les rĂ©sultats de congĂ©s rĂ©ellement prĂ©sentĂ©s aux employĂ©s
  • la mĂ©thode de calcul des congĂ©s Ă  partir de la date d’embauche
  • les personnes concernĂ©es par les relances et le moment de leur envoi
  • les rĂšgles d’interprĂ©tation des demandes par SMS en dates et demi-journĂ©es
  • l’ordre entre demande, approbation, refus et SMS de rĂ©sultat
  • la maniĂšre dont le tĂ©lĂ©phone Android professionnel envoyait et recevait les SMS
  • les Ă©crans et la gestion des exceptions dĂ©jĂ  utilisĂ©s par les opĂ©rateurs

Si je rĂ©sumais tout cela en quelques documents avant de repartir de zĂ©ro, le nouveau code pourrait ĂȘtre propre tout en produisant des rĂ©sultats diffĂ©rents pour les utilisateurs existants. Je ne pouvais pas supprimer, par simple prĂ©fĂ©rence de conception, un flux vertical que mon prĂ©dĂ©cesseur avait rĂ©ellement achevĂ©.

J’ai donc changĂ© de direction : reproduire d’abord le service existant Ă  l’identique, conserver ses Ă©crans et ses rĂ©sultats de calcul comme rĂ©fĂ©rences de rĂ©gression, puis remplacer ses parties problĂ©matiques fonctionnalitĂ© par fonctionnalitĂ©. Le nouveau systĂšme ne devait pas commencer par effacer l’ancien programme. Celui-ci devait rejoindre une structure plus vaste sans perdre ce qu’il savait dĂ©jĂ  faire.

Les ventes et l’administration du personnel ne relevaient pas de la mĂȘme application

RĂ©unir les projets et fusionner en mĂȘme temps leurs DB et leurs Runtime aurait créé un autre problĂšme.

L’automatisation des ventes traite des donnĂ©es publiques, des coordonnĂ©es, des cibles d’appel et des rĂ©sultats commerciaux. L’administration du personnel traite des informations sur les employĂ©s, de l’émission de documents, des congĂ©s, des approbations et des messages. Les deux domaines peuvent apparaĂźtre ensemble dans une interface opĂ©rationnelle, mais la nature des donnĂ©es, les droits et l’étendue des consĂ©quences d’une panne diffĂšrent.

Je ne voulais pas qu’une migration de la DB des ventes bloque le dĂ©ploiement de l’administration du personnel, ni qu’une panne du service de congĂ©s arrĂȘte aussi la collecte commerciale. Les comptes et credentials, les queues, les backups et les rollbacks devaient eux aussi ĂȘtre sĂ©parĂ©s par activitĂ©.

J’ai finalement dĂ©cidĂ© de conserver un seul dĂ©pĂŽt, mais de sĂ©parer les ventes et l’administration du personnel en apps indĂ©pendantes. L’interface opĂ©rationnelle permet de parcourir les deux au mĂȘme endroit, mais elle ne lit pas directement leurs DB : chaque backend reste responsable de ses propres donnĂ©es et de ses droits.

De l’outbound à l’inbound et aux tñches administratives

L’automatisation commerciale existante ressemblait surtout Ă  un flux outbound, destinĂ© Ă  passer des appels vers l’extĂ©rieur. Le 15, j’ai aussi longuement rĂ©flĂ©chi Ă  la maniĂšre d’y rattacher l’inbound.

Ce n’est pas parce qu’un appel arrive que toutes les demandes doivent ĂȘtre traitĂ©es dans le systĂšme tĂ©lĂ©phonique. L’appel peut servir de point d’entrĂ©e : il recueille la demande et la transmet au bon processus. Une demande d’attestation d’emploi doit ĂȘtre envoyĂ©e vers la vĂ©rification d’identitĂ© et l’émission du document, puis le document produit doit suivre une procĂ©dure de remise distincte. MĂȘme si la mĂȘme demande arrive par le Web ou par mobile, elle doit finalement rejoindre la mĂȘme tĂąche administrative.

C’est aussi pour cela que j’ai dĂ©cidĂ© de commencer par l’attestation d’emploi. Cette premiĂšre fonctionnalitĂ© permettait d’éprouver en une seule fois tout le flux nĂ©cessaire Ă  l’automatisation opĂ©rationnelle : rĂ©ception de la demande, vĂ©rification des donnĂ©es de rĂ©fĂ©rence de l’employĂ©, gĂ©nĂ©ration du document, approbation, remise, gestion des Ă©checs et audit.

Il ne suffisait pas de bien construire une seule fonctionnalitĂ©. Les mĂȘmes frontiĂšres devaient pouvoir ĂȘtre rĂ©utilisĂ©es pour les prochaines tĂąches d’administration du personnel.

Il ne fallait pas recréer les données de référence

L’entreprise gĂ©rait dĂ©jĂ  les employĂ©s, les contrats et les affectations sur les sites dans un autre systĂšme. L’automatisation avait besoin de ces informations, mais crĂ©er de notre cĂŽtĂ© un deuxiĂšme registre maĂźtre des employĂ©s aurait rapidement entraĂźnĂ© une divergence entre les deux systĂšmes.

Le systÚme externe devait rester propriétaire des données de référence, tandis que nous ne ferions que lire les informations nécessaires et les conserver sous forme de snapshots validés. Il fallait séparer la fonction qui modifie le registre maßtre de celle qui utilise ces informations pour traiter des dossiers administratifs.

Le problĂšme Ă©tait que je n’avais encore confirmĂ© ni le format rĂ©el du fichier tĂ©lĂ©chargĂ© ni l’existence d’un identifiant stable pour les employĂ©s. Appeler « matricule » un numĂ©ro affichĂ© Ă  l’écran, ou Ă©crire que l’export Ă©tait en Excel sans mĂȘme l’avoir vĂ©rifiĂ©, aurait placĂ© tout le reste de la conception sur de fausses prĂ©misses.

J’ai donc laissĂ© indĂ©terminĂ© ce que j’ignorais.

Les frontiĂšres arrĂȘtĂ©es ce jour-lĂ 

  • Le dĂ©pĂŽt reste unique, mais les ventes et l’administration du personnel deviennent des apps indĂ©pendantes.
  • La DB, le Runtime, les credentials, les queues, les backups et les rollbacks sont sĂ©parĂ©s par activitĂ©.
  • L’interface opĂ©rationnelle intĂ©grĂ©e utilise l’API de chaque backend et ne lit pas directement les DB.
  • Le service de congĂ©s par SMS conserve ses rĂ©sultats actuels comme rĂ©fĂ©rences de rĂ©gression avant un remplacement fonctionnalitĂ© par fonctionnalitĂ©.
  • Le systĂšme existant reste propriĂ©taire des donnĂ©es de rĂ©fĂ©rence sur les employĂ©s, les contrats et les affectations ; l’automatisation ne conserve que des snapshots validĂ©s.
  • Le premier vertical slice couvre la demande d’attestation d’emploi, sa gĂ©nĂ©ration, son approbation, sa remise et la gestion des Ă©checs.

Le 15, je n’ai presque pas Ă©crit de code : j’ai surtout dĂ©fini ces frontiĂšres et l’ordre de migration du service existant.

Laisser un commentaire