Aller au contenu

SaaS série A — cycle de PR et flakiness CI

⚠️ Ceci est un récit scénario anonymisé. Il illustre la forme d’un engagement. Ce n’est pas l’histoire d’un vrai client et il ne contient ni nom réel, ni métrique réelle, ni affirmation sur une entreprise précise.

Le problème

L’équipe utilisait un assistant de code IA dans l’éditeur depuis environ six mois. La vélocité avait l’air correcte sur les dashboards, mais deux choses continuaient à gêner :

  • Les cycles de PR s’étaient allongés. Le temps de première review avait à peu près doublé sur le trimestre précédent.
  • La CI était flaky d’une façon que personne ne pouvait expliquer. Les ingénieurs avaient appris à cliquer sur « rerun » et ne faisaient plus confiance au rouge.

Un fondateur semi-tech soupçonnait le code généré par IA d’être une partie de l’histoire, mais n’avait pas l’évidence pour agir.

Ce qu’on a fait

Audit Express (2 jours ouvrés)

Accès en lecture seule au repo, aux configs CI, aux retros, et à deux semaines de logs d’incidents. Un court entretien avec le tech lead.

Conclusions, par ordre de priorité :

  1. Les PRs générées par IA passaient à côté de la suite de tests existante sur environ un tiers des merges. La config CI avait une branche opt-out utilisée comme raccourci.
  2. Plusieurs « corrections IA » introduisaient des dépendances sans mettre à jour le lockfile, ce qui menait à des builds locaux incohérents.
  3. Le template de review n’exigeait pas de preuve d’exécution locale, donc les reviewers n’avaient rien pour s’ancrer.

Sprint de Delivery (10 jours ouvrés)

  • Correction de l’opt-out CI pour qu’il exige un commentaire d’override.
  • Ajout d’un hook pre-commit qui échoue sur la dérive de lockfile et sur l’absence d’exécution de tests.
  • Réécriture du template de PR pour exiger une ligne « comment j’ai testé » et une capture ou un extrait de log.
  • Pair programming avec trois ingénieurs sur leurs prochaines PRs assistées par IA. Review des autres.

Le résultat (qualitatif)

  • Les cycles de PR sont redescendus pendant le sprint. Nous n’avons pas mesuré de pourcentage parce que la baseline était bruitée — l’équipe l’a remarqué, c’est ce qui compte.
  • Les flakes CI sont passées d’une plainte quotidienne à une plainte occasionnelle.
  • Les ingénieurs ont arrêté de cliquer « rerun » par réflexe.
  • Le tech lead a gardé les changements de template de PR après la fin du sprint.

[Voir la page Audit Delivery IA pour le format qui a démarré cet engagement.]