↑ La méthode · web-book

Playbook studio · Complexité & estimation

Combien pèse vraiment un SaaS ?

La complexité réelle de DeepWorkGraph, objectivée — puis l'estimation, métriques à l'appui, de l'équipe qu'il aurait fallu avant l'IA. Le dénominateur qui donne son sens au « 12 jours ».

Chiffres versionnés COCOMO · points de fonction · LOC/jour Compagnon des « 12 jours »
~78k
Lignes de code
53
Écrans
26
Entités de données
~600
Tests

Pourquoi cette analyse

Dans le playbook « 12 jours », j'avance que l'IA compresse énormément le temps de build. Une affirmation pareille mérite un dénominateur : compresse par rapport à quoi ? Ce document répond en chiffrant, aussi honnêtement que possible, ce que DeepWorkGraph aurait coûté à une équipe traditionnelle.

Deux garde-fous d'entrée : les modèles d'estimation (COCOMO, points de fonction) datent et sur-estiment les stacks modernes — on les donne en fourchette. Et le nombre de lignes n'est pas la valeur — c'est un proxy de complexité, pas un trophée.

😅 Franchise avant les jolis chiffres : non, ça n'a pas été un long fleuve tranquille. Un multi-tenant qui fuit au signOut, des invitations parties chez les abonnés absents, des cookies qui changent de nom entre dev et prod… il y a eu quelques soirées où je me suis copieusement pris la tête. Les ~78 000 lignes ne sont pas tombées du ciel : l'IA écrit vite, mais c'est encore moi qui devais comprendre pourquoi ça cassait.

01 La complexité mesurée

Sur le code versionné uniquement (zéro artefact, zéro généré, zéro node_modules) — via git ls-files + wc.

Volume de code

NatureLignesDétail
Code applicatif (hors tests)65 783dont IA/agents 4 704
Tests (unit + e2e Playwright)10 290~600 cas
Migrations SQL84230 migrations
CI/CD (GitHub Actions)9069 workflows
Infra (Chatwoot, PostHog, backups…)81814 scripts
Total code d'ingénierie≈ 78 600hors doc & données
Documentation (markdown)13 69341 documents

Non compté : ~208 k lignes de JSON — surtout les 16 templates d'organisation seedés et les lockfiles. C'est de la donnée, pas du code.

Complexité fonctionnelle

DimensionQuantité
Écrans / pages53
Endpoints API45
Composants React82
Entités de données (modèles)26
Migrations de schéma30
Agents IA (génération, tissage, Pouls, extraction duale…)~6
Intégrations externes~8
Cas de test · articles KB~600 · 14
Ce n'est pas un CRUD

Multiplicateurs qu'aucun compteur de lignes ne capture : multi-tenant strict (isolation par workspace sur chaque requête), 3 modes de jeu (démo / role-play / réel), streaming IA temps réel, paiement récurrent + webhooks signés, conformité RGPD (hard delete cascade, pages légales), sorties IA structurées, session replays masqués, CI/CD + staging + auto-healing.

Les briques assemblées — la complexité cachée

Le nombre de lignes ne dit pas tout. DWG, c'est aussi une trentaine d'outils et de services à apprendre, câbler, sécuriser et maintenir — chacun un sous-système à part entière, totalement invisible dans le décompte de LOC. Et un fait à mettre en avant : la très grande majorité est européenne ou auto-hébergée (🇪🇺 ci-dessous) — c'est le « souverain à plus de 90 % » en pratique, pas en slogan.

Front & app
Next.js 15 (App Router, RSC, standalone), React, react-flow (graphe), Tailwind 4
Données
PostgreSQL 16 🇪🇺 (auto-hébergé), Prisma (ORM + migrations)
Authentification
Better Auth 🇪🇺 (open-source, auto-hébergé), magic links, OAuth Google
Paiement
Stripe + plugin billing, webhooks signés, script de setup idempotent
IA — runtime dual
Claude (Anthropic) 🇺🇸 · Voxtral / Mistral 🇪🇺 (voix), tool-use structuré
Emails
Resend (domaine vérifié SPF/DKIM), IMAP OVH 🇪🇺 (support entrant)
Analytics
PostHog 🇪🇺 auto-hébergé (ClickHouse + Kafka + …, ~28 conteneurs) · Plausible 🇪🇺
Support
Chatwoot 🇪🇺 auto-hébergé : widget HMAC, base de connaissance, webhook → Issues GitHub
Monitoring
Sentry (erreurs), healthchecks cron, ping uptime externe
Tests
Vitest (~600 unitaires), Playwright (smoke e2e)
Infra & Ops
Hetzner 🇪🇺 (VPS), Docker, systemd (app natif), Nginx, Let's Encrypt, UFW, swap
CI/CD & sécurité
GitHub Actions (9 workflows) + runner auto-hébergé 🇪🇺, Semgrep, pnpm audit, backups restic 🇪🇺 hors-site
Le point à retenir

Chacune de ces briques est, à elle seule, un projet : l'apprendre, l'intégrer, la configurer, la sécuriser, la surveiller, la sauvegarder. Un solo assisté par l'IA a orchestré l'ensemble — et l'a fait tenir, à plus de 90 %, sur une chaîne souveraine. C'est cette intégration, encore plus que le code, que les modèles d'estimation classiques peinent à chiffrer.


02 Trois méthodes d'estimation

Chacune répond à : « combien de personnes-mois pour une équipe traditionnelle ? » — et chacune a ses biais.

Méthode 1 — COCOMO basique (borne haute, modèle historique)

Effort = a · KLOC^b. DWG a des parties « semi-détachées » (sécurité multi-tenant, IA, temps réel). Modèle calibré sur assembleur/C → sur-estime le TypeScript.

KLOCOrganicSemi-détaché
55161 p.-mois · ~9 pers.267 p.-mois · ~15 pers.
66195 p.-mois · ~11 pers.327 p.-mois · ~17 pers.
76226 p.-mois · ~12 pers.383 p.-mois · ~19 pers.

~160 à 380 personnes-mois. Clairement gonflé pour du TS moderne, mais utile comme borne haute « entreprise ».

Méthode 2 — Points de fonction (backfiring, ~48 LOC/FP)

~1 370 FP. À 10-20 FP par personne-mois → ~69 à 137 personnes-mois.

Méthode 3 — Productivité LOC/jour (la plus intuitive)

76 000 LOC (code + tests) à 20-50 lignes nettes/jour/dev (tout compris : design, debug, review, tests, rework) → ~72 à 181 personnes-mois.

Comparaison des méthodes · en personnes-mois (échelle 0 → 400)
0100200300400

Hors COCOMO semi-détaché (le plus daté), les trois méthodes se recoupent autour de ~70 à 180 personnes-mois.


03 Le verdict

En tirant vers le bas (stack moderne, pas de legacy, équipe compétente), la lecture réaliste « startup agile ».

🎯 Estimation retenue — pré-IA

Une équipe de ~4 à 6 personnes (2-3 devs, 1 design/produit, 1 QA/DevOps partagé) pendant ~12 à 18 mois — soit ~60 à 110 personnes-mois — pour atteindre exactement cet état : feature-complete en prod, testé, CI/CD, support, analytics, légal.

Borne basse optimiste : ~4 pers. × ~9 mois (~35-40 p.-mois). Borne haute « entreprise » (COCOMO) : 12-20 mois, équipe élargie.

Le contraste

ApprocheEffort
DWG réel — 1 personne + IA~0,6-0,9 pers.-mois (~110 h)
Estimation équipe pré-IA (central)~60-110 pers.-mois

Compression de l'ordre de plusieurs dizaines de fois — ~80-120× en effort brut sur la borne centrale, ~40× même sur l'hypothèse la plus optimiste.


04 Le garde-fou — ce n'est pas « l'IA seule »

Si on attribuait ce facteur à 100 % à l'IA, un lecteur tech le verrait tout de suite. Il agrège quatre leviers.

  1. L'IA. Écriture, tests, docs, exploration à coût marginal quasi nul. Probablement le levier le plus fort — mais pas le seul.
  2. La stack moderne. Next.js / Prisma / Better Auth donnent un levier énorme qu'une équipe des années 2010 n'avait pas. COCOMO l'ignore complètement.
  3. Zéro coût de coordination. Un solo n'a ni réunions, ni handoffs, ni specs à négocier. Une bonne part des « personnes-mois » d'une équipe, c'est de l'overhead d'équipe, pas de la production.
  4. Un décideur produit expert. 30 ans d'XP → arbitrages in/out sans gâchis, pas de features mortes, pas d'allers-retours.
✱ La formule défendable

« Une personne expérimentée, outillée d'une stack moderne et de l'IA, a produit en ~110 h ce que les modèles classiques chiffrent à plusieurs dizaines de personnes-mois pour une équipe. » L'IA est le multiplicateur central — pas le seul.


05 Les limites de l'analyse

Transparence — parce qu'un chiffre sans ses limites est du marketing.

  • Le LOC n'est pas la valeur. Compter des lignes mesure un volume, pas l'utilité ni la difficulté. Un bon code fait moins de lignes.
  • Les modèles sont datés. COCOMO/FP sont calibrés sur une autre époque ; ils sur-estiment le high-level moderne.
  • DWG est un cas particulier : solo + expert + IA + stack moderne. Pas « n'importe qui obtient ce ratio ».
  • L'estimation d'équipe est contrefactuelle : personne n'a vraiment refait DWG à l'ancienne pour comparer. C'est un ordre de grandeur, pas une mesure.
Reproductible

git ls-files riffs/deepworkgraph/ + wc -l pour le volume, comptage page.tsx / route.ts / model pour la structure, COCOMO / FP / LOC-jour pour l'estimation. Tout est recalculable.