288 lines
21 KiB
Markdown
288 lines
21 KiB
Markdown
# Estimation de l'effort de développement — Projet Omika (ex-BATIK)
|
||
|
||
> **Objet** : estimer le temps qu'aurait nécessité le développement de ce projet **réalisé entièrement par un humain** (sans IA), afin de confronter cette estimation à l'hypothèse posée :
|
||
> **« 28 jours avec activité ≈ 28 journées actives × 6 h = 168 h »**.
|
||
>
|
||
> **Date d'analyse** : 11 septembre 2026 · **Méthode** : mesures objectives du livrable + reconstruction de la chronologie réelle + estimation bottom-up par composant, croisée par un modèle de productivité.
|
||
> **Aucun fichier du projet n'a été modifié.**
|
||
|
||
---
|
||
|
||
## 1. Verdict en une page
|
||
|
||
| Question | Réponse |
|
||
|---|---|
|
||
| Les 28 jours d'activité sont-ils réels ? | **Oui, et vérifiables.** Le projet a été construit du **06/08/2026 au 11/09/2026**, avec **22 jours réellement actifs** (tous du mardi au vendredi ; aucun lundi, aucun week-end). |
|
||
| Les 168 h décrivent-elles bien le travail effectué ? | **Oui, comme temps de travail *assisté par IA*.** Les mesures donnent ≈ **200 à 210 h** d'activité outillée, soit l'ordre de grandeur de 28 × 6 h. |
|
||
| Ces 168 h sont-elles une estimation valable du **développement humain** ? | **Non.** Pour produire ce livrable à la main, l'estimation est de **≈ 630 à 1 000 jours-homme**, valeur centrale **≈ 800 jours-homme** (≈ **3 800 à 6 000 h**, centrale ≈ 4 800 h). |
|
||
| Écart avec l'hypothèse | **×22 à ×36**, valeur centrale **≈ ×29**. |
|
||
| Traduction projet | 1 développeur senior seul : **≈ 3 à 4,5 ans**. Petite équipe de 3 : **≈ 13 à 21 mois**. |
|
||
|
||
**En une phrase** : les 28 jours mesurent correctement le **temps écoulé pour piloter une IA** qui a produit le code ; ils ne mesurent pas — et ne peuvent pas mesurer — l'**effort de développement humain équivalent**, qui se situe autour de **800 jours-homme**.
|
||
|
||
---
|
||
|
||
## 2. Méthode et pourquoi trois approches
|
||
|
||
Une estimation unique sur un projet de cette taille n'est pas fiable. Trois méthodes indépendantes ont été croisées :
|
||
|
||
1. **Mesure du livrable** (ce qui existe réellement : lignes, composants, tables, endpoints, tests, documentation, corpus legacy analysé).
|
||
2. **Reconstruction de la chronologie** (horodatages des fichiers, journaux de session des assistants, journaux de build/test) → mesure de l'effort réellement écoulé.
|
||
3. **Estimation bottom-up** par composant (5 analyses indépendantes par couche), puis **contre-vérification par un modèle de productivité** (lignes effectives / jour-homme).
|
||
|
||
**Convention** : 1 jour-homme (j-h) = **6 h de travail effectif**, conformément à l'hypothèse posée.
|
||
|
||
**Nature de l'estimation** : il s'agit du coût de **reproduction à neuf de l'existant, à qualité et périmètre identiques**, en incluant conception, tests et documentation — c'est-à-dire ce qu'un humain aurait dû fournir.
|
||
|
||
---
|
||
|
||
## 3. Ce que contient réellement le livrable (mesuré)
|
||
|
||
### 3.1 Volumétrie du code
|
||
|
||
| Périmètre | Fichiers | Lignes |
|
||
|---|---|---|
|
||
| `src/Omika.Core` (domaine, contrats, services, sync mobile) | 321 | 16 229 |
|
||
| `src/Omika.Data` (HFSQL, bi-schéma Batik/Omika) | 267 | 36 197 |
|
||
| `src/Omika.App` (UI Avalonia) | 136 + 51 `.axaml` | 14 402 + 7 728 |
|
||
| `src/Omika.App.Local` (SQLite, SyncEngine, Outbox) | 136 | 13 613 |
|
||
| `src/Omika.Api` (web service) | 24 | 3 549 |
|
||
| `src/Omika.Worker` (service de synchronisation) | 8 | 1 106 |
|
||
| Hôtes Desktop / Android / iOS | 5 | 106 |
|
||
| **Sous-total production** | **897 `.cs` + 51 `.axaml`** | **85 202 C# + 7 728 XAML** |
|
||
| `tests/Omika.Tests` | 164 | 43 824 |
|
||
| `tools/` (17 sondes de rétro-ingénierie) | 25 | 2 893 |
|
||
| **TOTAL code** | **≈ 1 137** | **≈ 139 650** |
|
||
|
||
### 3.2 Qualité et densité réelle du code
|
||
|
||
Analyse ligne à ligne (hors lignes vides, commentaires, accolades et déclarations) :
|
||
|
||
| Nature | Lignes | Commentaire |
|
||
|---|---|---|
|
||
| **Logique réelle** | **71 357** | algorithmes, SQL, sync, règles métier |
|
||
| **Déclaratif / boilerplate** | **33 485** | modèles, DTO, entités, interfaces, attributs, propriétés auto |
|
||
| **Balises XAML** | **7 249** | mise en page et design system |
|
||
| **Total brut** | **166 478** | |
|
||
|
||
Sur les 118 classes de modèles HFSQL (11 846 lignes), **seules 377 lignes sont de la logique** : le reste est déclaratif, et **107 des 118 fichiers sont auto-générés** par `tools/generate_models.py` depuis le dictionnaire de compatibilité. C'est un point important : ce volume ne se traduit pas en effort humain proportionnel.
|
||
|
||
### 3.3 Completude du livrable (facteur rassurant pour l'estimation)
|
||
|
||
- **0 `NotImplementedException`**, **0 `TODO` réel**, **0 `HACK`/`FIXME`**, **0 test ignoré** dans tout `src/`.
|
||
- 8 agrégats métier documentés `VERIFIED` (CRUD complet testé sur bases réelles).
|
||
- Réserves identifiées (à traiter avant production, non comptées ci-dessous) : base SQLite locale **non chiffrée**, jeton Bearer stocké **en clair**, pas de rate limiting sur les endpoints publics de licence, pas de framework de validation.
|
||
|
||
### 3.4 Surface fonctionnelle
|
||
|
||
| Indicateur | Valeur |
|
||
|---|---|
|
||
| Projets dans la solution | 13 |
|
||
| Écrans applicatifs distincts | **29** |
|
||
| ViewModels / Vues XAML / contrôles personnalisés / convertisseurs | 42 / 51 / 14 / 15 |
|
||
| Endpoints HTTP | **97** |
|
||
| Tables HFSQL physiques distinctes manipulées | **65** (118 classes de modèles, 113 attributs `[HfSqlTable]`) |
|
||
| Couples table-rubrique mappés (dictionnaire de compatibilité) | **720** |
|
||
| Méthodes publiques de repositories | **≈ 330** |
|
||
| Instructions SQL brutes | **≈ 500** |
|
||
| Transactions explicites | 186 |
|
||
| Bases HFSQL distinctes (Business / Service / WebService / Licence / Sync) | 4-5 |
|
||
| Tables SQLite locales + repositories locaux | 29-30 / 18 |
|
||
| Tests | **2 038** méthodes (2 020 `[Fact]`, 18 `[Theory]`) |
|
||
| Fakes / stubs écrits à la main (aucune lib de mock) | 100+ |
|
||
| Documentation produite | **≈ 8 200 lignes** rédigées (22 documents) + dictionnaire de compatibilité JSON **19 021 lignes** + maquette HTML 593 lignes |
|
||
|
||
### 3.5 Ampleur du legacy rétro-ingénieré
|
||
|
||
| Corpus | Lignes |
|
||
|---|---|
|
||
| `docs/BATIK.md` (export WINDEV du legacy `Isis_BO`) | 303 801 |
|
||
| `docs/OMIKA.md` (export WINDEV de la refonte `Batik`/Omika) | 271 909 |
|
||
| Documentation des 3 web services / services legacy | 24 582 |
|
||
| **Total corpus legacy analysé** | **≈ 600 300 lignes** |
|
||
|
||
Système legacy à remplacer (mesuré dans les exports) : **≈ 1 600 procédures** (1 009 + 614 comptées), **140 fenêtres** `FEN_*`, **≈ 380 classes**, **46 états d'impression**, **48 / 58 tables** selon la génération (59 en union), **3 web services / services**, **4 variantes clients**. Soit un capital de développement historique estimé à **10-20 personnes-années sur ~8 ans**.
|
||
|
||
---
|
||
|
||
## 4. Chronologie réelle du projet (mesurée, pas déclarée)
|
||
|
||
### 4.1 Fenêtre et jours actifs
|
||
|
||
Le projet a été intégralement créé entre le **06/08/2026** et le **11/09/2026** (aucun contenu antérieur : tous les fichiers du dépôt — code *et* documentation — portent une date ≥ 06/08/2026).
|
||
|
||
| Indicateur | Valeur |
|
||
|---|---|
|
||
| Période calendaire | 37 jours |
|
||
| Jours ouvrés (lun-ven) dans la période | 27 |
|
||
| **Jours réellement actifs** | **22** |
|
||
| Jours avec écriture de code source | 21 |
|
||
| Jours actifs hors mardi-vendredi | **0** |
|
||
| Jours ouvrés actifs / jours ouvrés disponibles | **22 / 22 (100 %)** |
|
||
|
||
Motif parfaitement net : activité du **mardi au vendredi** ; les 5 lundis et tous les week-ends de la période sont **inactifs**. Les 22 jours « mardi-vendredi » de la fenêtre ont **tous** été travaillés.
|
||
|
||
### 4.2 Volume de travail outillé
|
||
|
||
| Source de mesure | Valeur |
|
||
|---|---|
|
||
| Sessions d'assistant CodeWhale (07/08 → 20/08) | 17 sessions, **2 515 messages humains**, 607 M tokens, 52 140 s de temps de génération |
|
||
| Sessions d'assistant DSH (20/08 → 11/09) | 31 sessions, 442 messages humains, 769 711 événements, 183,6 Mo compressés |
|
||
| Amplitude horaire des journées (horodatages) | **8 h à 13 h** de fenêtre, moyenne ≈ 9,6 h/jour |
|
||
| Campagnes de build/test laissées dans le dépôt | **108 journaux**, 36 exécutions de tests |
|
||
| Croissance de la suite de tests | **260 → 1 859 tests** en 36 exécutions successives |
|
||
| Effort outillé total estimé | **≈ 200 à 210 h** |
|
||
|
||
### 4.3 Points de contrôle sur l'hypothèse « 28 jours × 6 h »
|
||
|
||
- **Les 28 jours** : la mesure donne 22 jours actifs. Le chiffre de 28 est légèrement supérieur mais du **bon ordre de grandeur** ; il a vraisemblablement été obtenu en comptant aussi les journées de faible activité (12-14/08 : builds et mise en place VPN ; 28/08 ; 04/09).
|
||
- **Les 6 h/jour** : les journées réellement observées couvrent 8 à 13 h d'amplitude. 6 h de travail **effectif** net est donc une hypothèse prudente et plausible.
|
||
- **Conclusion partielle** : *28 jours × 6 h = 168 h est une description correcte et même plutôt prudente du travail assisté par IA.*
|
||
|
||
---
|
||
|
||
## 5. Estimation de l'effort humain — décomposition bottom-up
|
||
|
||
Cinq analyses indépendantes par couche, chacune fondée sur le code réel, les preuves et la complexité intrinsèque.
|
||
|
||
| # | Composant | Contenu | Basse | Haute | Central |
|
||
|---|---|---|---|---|---|
|
||
| 1 | **Analyse & rétro-ingénierie legacy** | Inventaire des 2 générations, rétro-ingénierie du schéma HFSQL (48 → 58 tables, 720 rubriques, zombies, mappings de types, liaisons), lecture du code WINDEV (≈ 1 600 procédures, 140 fenêtres, ≈ 380 classes), rétro-ingénierie des 3 web services (206 procédures), sondage réel OLE DB, rédaction des specs (architecture, 7 lots, modèle canonique, CRUD) | 50 | 80 | 60 |
|
||
| 2 | **`Omika.Core`** | Domaine (38 entités, 5 value objects, 21 commandes), 125 DTO, 61 interfaces, 17 services CRUD, moteurs document/rapport (PDF/DOCX, parseur RTF/CP1252, parseur JSON WINDEV 305 l.), **Services/Mobile** (licence AES-256 rétro-ingénierée, jeton HMAC-SHA256, résolution d'identité GUID↔PK, snapshot, sync idempotente) | 55 | 96 | 80 |
|
||
| 3 | **`Omika.Data` — couche HFSQL** | 20 classes de connexion (dualité **ODBC / OLE DB `PCSOFT.HFSQL`**), 118 modèles physiques, 29 classes de mapping, **19 repositories Batik + 20 Omika + 22 adaptatifs**, ≈ 330 méthodes, ≈ 500 requêtes SQL brutes, 186 transactions, détection de schéma par canaris, dérivation MD5 des mots de passe de fichiers HFSQL, topology 4 bases | 230 | 380 | 300 |
|
||
| 4 | **`Omika.App` + `Omika.App.Local`** | 29 écrans, 42 ViewModels, design system 755 l., 14 contrôles, 15 convertisseurs, Shell responsive 2 layouts, 3 hôtes plateformes ; côté local : schéma SQLite 29-30 tables, 18 repositories, **SyncEngine** (4 étapes, états, reprise après crash), **Outbox**, **réconciliation d'identité A→B + 5 réécrivains de payloads**, SnapshotApplier atomique, offline-first multi-entités, documents multipart | 148 | 189 | 170 |
|
||
| 5 | **`Omika.Api`** | 97 endpoints, DI multi-connexions, middleware Bearer, service de permissions + périmètre planning, licence (activation/validation + émission de jeton), sync (3 endpoints), bootstrap, documents base64, emails/rapports | 20 | 30 | 25 |
|
||
| 6 | **`Omika.Worker`** | Boucle de polling, ordonnancement CREATE→UPDATE→DELETE, déduplication intra-cycle, **idempotence à 2 niveaux** (OperationId + résultat terminal MobLog), transaction unique multi-bases, isolation par opération, retry/rejet, 4 handlers (dont refus explicite de tout SUCCESS par défaut) | 10 | 16 | 13 |
|
||
| 7 | **Suite de tests** | 2 038 tests, 43 824 lignes, 100+ fakes ADO.NET/HTTP écrits à la main, fixtures `WebApplicationFactory`, intégrations **réelles** HFSQL (7 fichiers, cycle CREATE→UPDATE→ARCHIVE→ROLLBACK), **E2E multi-processus** (HTTP → API → TOSRV → Worker externe → MobReception → handler → MobLog → statut) | 50 | 80 | 65 |
|
||
| 8 | **Outils de sondage** | 17 programmes d'investigation (audit de schéma, audit de modèle, dérivation de mots de passe, idempotence, détection N+1, résolution d'identité) | 3 | 6 | 5 |
|
||
| | **Sous-total composants (après dédoublonnage des tests et de la rétro-ingénierie déjà comptés en ligne 1)** | | **531** | **812** | **≈ 670** |
|
||
|
||
### 5.1 Charges transverses (non attribuables à un composant)
|
||
|
||
| Poste | Justification | Basse | Haute | Central |
|
||
|---|---|---|---|---|
|
||
| Architecture & conception globale | 13 projets, protocole de sync mobile, stratégie bi-schéma Batik/Omika, multiplateforme, modèle d'identité canonique | 10 | 20 | 15 |
|
||
| Environnement & infrastructure | Serveur HFSQL, installation et déverminage des providers ODBC **et** OLE DB `PCSOFT.HFSQL`, accès VPN (FortiClient installé les 12-13/08), SDK/émulateur Android, chaîne iOS, bases de test BATIK_TEST / OMIKA_TEST, configuration de développement | 15 | 30 | 22 |
|
||
| Intégration & débogage | 36 campagnes de tests successives (260 → 1 859 tests), cycles réels contre bases réelles, E2E multi-processus, correction d'encodage Windows-1252, contournement des limites du provider (marshalage `DateOnly`, colonnes calculées, padding `\0` des mémos) | 40 | 70 | 55 |
|
||
| Pilotage, clarification du besoin, validation | Documents de lot avec points d'arrêt et divergences (« STOP » sur la base Licence), matrices de couverture CRUD, points de validation fonctionnelle | 20 | 40 | 28 |
|
||
| Packaging, service Windows, builds mobiles | Service Windows du Worker, APK Android, déploiement desktop | 10 | 20 | 15 |
|
||
| **Sous-total transverse** | | **95** | **180** | **≈ 135** |
|
||
|
||
### 5.2 Total
|
||
|
||
| | Basse | Haute | **Central** |
|
||
|---|---|---|---|
|
||
| Composants | 531 | 812 | 670 |
|
||
| Transverse | 95 | 180 | 135 |
|
||
| **TOTAL (jours-homme)** | **≈ 630** | **≈ 1 000** | **≈ 800** |
|
||
| **TOTAL (heures à 6 h/j)** | **≈ 3 780 h** | **≈ 6 000 h** | **≈ 4 800 h** |
|
||
| **TOTAL (personnes-années à 1 400 h)** | 2,7 | 4,3 | **3,4** |
|
||
|
||
---
|
||
|
||
## 6. Contre-vérification par la productivité
|
||
|
||
Modèle indépendant : lignes **effectives** produites ÷ productivité réaliste d'un développeur senior (code final, intégré et débogué, hors temps de réunion).
|
||
|
||
| Nature | Lignes effectives | Productivité retenue | Jours-homme |
|
||
|---|---|---|---|
|
||
| Déclaratif / boilerplate (modèles, DTO, entités, interfaces) | 33 485 | 250-400 l./j | 84-134 |
|
||
| Logique de production (SQL, sync, métier, UI) | 43 158 | 60-120 l./j | 360-719 |
|
||
| Logique de test | 28 199 | 100-180 l./j | 157-282 |
|
||
| XAML (mise en page, design system) | 7 249 | 80-150 l./j | 48-91 |
|
||
| Documentation rédigée (`docs/*.md`) | 8 169 | 250-500 l./j | 16-33 |
|
||
| Dictionnaire de compatibilité (JSON/CSV, produit par outillage) | ≈ 19 300 | outillé | 5-10 |
|
||
| **Sous-total production** | **≈ 139 500** | | **670-1 269** |
|
||
|
||
Ce sous-total **ne comprend pas** la rétro-ingénierie du legacy (≈ 600 000 lignes lues pour ≈ 139 500 lignes produites) ni les charges transverses. En intégrant un abattement raisonnable pour ces postes déjà couverts par la ligne « analyse legacy », on converge vers :
|
||
|
||
- **Fourchette du modèle de productivité : ≈ 600 à 1 100 j-h**
|
||
- **Fourchette du bottom-up : ≈ 630 à 1 000 j-h**
|
||
|
||
Les deux méthodes **convergent vers une valeur centrale de l'ordre de 800 jours-homme**, ce qui donne confiance dans l'ordre de grandeur.
|
||
|
||
---
|
||
|
||
## 7. Mise en perspective avec l'hypothèse de 168 h
|
||
|
||
| Grandeur | Valeur |
|
||
|---|---|
|
||
| Effort assisté par IA mesuré (réel) | ≈ 200-210 h |
|
||
| Hypothèse utilisateur (28 j × 6 h) | **168 h** |
|
||
| Effort humain équivalent estimé (central) | **≈ 4 800 h** (800 j-h) |
|
||
| **Écart central** | **≈ ×29** |
|
||
| Écart minimal (hypothèse basse 630 j-h vs 168 h) | **×22** |
|
||
| Écart maximal (hypothèse haute 1 000 j-h vs 168 h) | **×36** |
|
||
|
||
### Pourquoi l'écart est aussi important (et pourquoi ce n'est pas une erreur)
|
||
|
||
En ≈ 210 h de travail outillé, le projet a produit **≈ 194 000 lignes** (code, tests, documentation, artefacts) — soit **≈ 925 lignes par heure**. Un développeur humain produit, selon la nature du code, **5 à 50 lignes par heure** de code final intégré et débogué.
|
||
|
||
Autrement dit, l'écart ne vient pas d'une sous-estimation des 28 jours : il vient du fait que **l'IA a produit du volume à une cadence qu'un humain ne peut pas atteindre**, en particulier sur tout ce qui est mécanique et répétitif :
|
||
- 107 modèles de tables générés automatiquement ;
|
||
- 125 DTO et 61 interfaces quasi déclaratifs ;
|
||
- 2 038 tests dont une large part de structure répétitive ;
|
||
- 8 200 lignes de documentation rédigée + un dictionnaire de 19 000 lignes ;
|
||
- les 289 classes de mapping et la duplication bi-schéma Batik/Omika (15 800 lignes d'implémentations jumelles).
|
||
|
||
Un humain qui aurait fait ce projet « à la main » n'aurait pas produit ces 194 000 lignes : il aurait pris des raccourcis (génération de code, factorisation, moins de tests, moins de documentation). **C'est pourquoi l'estimation retenue est celle de la reproduction du périmètre et de la qualité observés, et non une simple conversion lignes → heures.**
|
||
|
||
---
|
||
|
||
## 8. Traduction en scénarios projet
|
||
|
||
| Scénario | Durée |
|
||
|---|---|
|
||
| **1 développeur senior seul** (à ~220 j-h/an) | **≈ 2,9 à 4,5 ans** (central ≈ 3,6 ans) |
|
||
| **2 développeurs** | ≈ 1,5 à 2,3 ans |
|
||
| **Petite équipe de 3** (1 senior + 2 confirmés, coordination incluse) | **≈ 13 à 21 mois** |
|
||
| **Équipe de 4-5** (dev + analyste + QA à temps partiel) | ≈ 9 à 14 mois |
|
||
|
||
Répartition indicative d'une équipe de 3 : 1 senior sur le socle Data/sync/identité (≈ 300 j-h), 1 développeur sur l'UI et le local (≈ 200 j-h), 1 développeur sur le Core/API/Worker/tests (≈ 200 j-h), plus l'analyse legacy (≈ 60 j-h) et le transverse (≈ 135 j-h) partagés.
|
||
|
||
---
|
||
|
||
## 9. Sensibilité, limites et précautions d'usage
|
||
|
||
### 9.1 Ce qui fait varier le résultat
|
||
|
||
| Facteur | Impact |
|
||
|---|---|
|
||
| **Périmètre des tests** | C'est le premier levier : 2 038 tests et 100+ fakes représentent ≈ 50-80 j-h. Un projet sans cette discipline tombe de 10-15 %. |
|
||
| **Rétro-ingénierie du legacy** | 50-80 j-h d'analyse pure, non compressibles, et prérequis à tout le reste. |
|
||
| **Dualité de schéma Batik/Omika** | ≈ 15 800 lignes d'implémentations jumelles : c'est le principal multiplicateur de coût de la couche Data. |
|
||
| **Documentation** | ≈ 8 200 lignes rédigées + dictionnaire produit : 21-43 j-h selon l'exigence. |
|
||
| **Maturité visée** | Le livrable n'est pas encore « production mobile » (chiffrement de la base locale, coffre de jeton, rate limiting, validation). Une version durcie ajouterait **+15 à +30 j-h**. |
|
||
| **Connaissance préalable** | L'estimation suppose l'apprentissage du legacy HFSQL **inclus**. Un développeur déjà expert HFSQL/OLE DB pourrait gagner 10-15 %. |
|
||
|
||
### 9.2 Limites de l'estimation
|
||
|
||
- **Aucun dépôt Git** : la chronologie a été reconstruite à partir des horodatages de fichiers, des journaux de session et des journaux de build ; elle est cohérente mais ne remplace pas un historique de commits.
|
||
- **Les messages humains comptés** (2 515 + 442) incluent les messages de pilotage d'outil ; ils mesurent l'intensité de la supervision, pas des heures de développement.
|
||
- **Les estimations par composant proviennent de cinq analyses distinctes** avec des hypothèses propres ; le dédoublonnage (tests et rétro-ingénierie comptés une seule fois) a été appliqué explicitement, mais une incertitude de ±10 % subsiste sur les frontières entre lots.
|
||
- **Le code a été produit par IA** : il peut contenir des défauts non détectés par la suite de tests. Un humain repartant de zéro pourrait rencontrer des difficultés différentes — mais il n'aurait pas non plus à découvrir et corriger ces défauts.
|
||
|
||
### 9.3 Recommandation de présentation
|
||
|
||
Si l'objectif est de communiquer un chiffre défendable, distinguer explicitement **deux mesures qui ne répondent pas à la même question** :
|
||
|
||
1. **Temps de production assistée par IA** : **≈ 28 jours d'activité, ≈ 170-210 h** — mesure du temps de pilotage et d'itération réel.
|
||
2. **Équivalent de développement humain** : **≈ 630 à 1 000 jours-homme (≈ 3 800 à 6 000 h)**, valeur centrale **≈ 800 j-h (≈ 4 800 h)** — mesure de l'effort qu'aurait exigé la construction du même livrable sans IA.
|
||
|
||
Présenter le premier chiffre comme du « temps humain de développement » conduirait à une sous-évaluation d'un facteur **≈ 25 à 30**, ce qui fragiliserait l'ensemble de l'estimation si elle devait être auditée.
|
||
|
||
---
|
||
|
||
## 10. Synthèse finale
|
||
|
||
| | Valeur |
|
||
|---|---|
|
||
| Jours d'activité mesurés | **22** (hypothèse posée : 28) |
|
||
| Heures assistées par IA mesurées | **≈ 200-210 h** (hypothèse posée : 168 h) |
|
||
| **Effort humain équivalent (estimation)** | **630 – 1 000 j-h** |
|
||
| **Valeur centrale retenue** | **≈ 800 j-h ≈ 4 800 h ≈ 3,4 personnes-années** |
|
||
| Écart avec l'hypothèse de 168 h | **×22 à ×36 (central ≈ ×29)** |
|
||
| Traduction la plus parlante | **1 développeur senior : ≈ 3 à 4,5 ans · équipe de 3 : ≈ 13 à 21 mois** |
|
||
|
||
**L'hypothèse « 28 jours × 6 h » n'est pas réaliste comme estimation de développement humain**, mais elle est cohérente comme mesure du temps réellement passé à produire le projet **avec l'aide d'une IA**.
|