## Intro

L’Analyse Build vs Buy est une méthode structurée pour décider s’il vaut mieux développer une capacité en interne ou adopter une solution externe. Pour les CTO, CIO, responsables ingénierie et produit, elle fournit une vue partagée et exploitable de la stratégie, du coût, du délai de mise en valeur, du risque et de la capacité organisationnelle. Bien utilisée, elle aligne les équipes, accélère les décisions sans sacrifier la diligence, et relie directement les choix technologiques aux résultats d’affaires.

À retenir en pratique : utilisez une grille multicritère transparente, un modèle de coût total de possession (TCO) sur 3–5 ans intégrant coût d’opportunité et coûts de changement, et une courte preuve de concept (PoC) pour réduire les risques d’intégration et d’exploitation avant de vous engager.

## Quand l’utiliser, quand s’en abstenir

Utilisez Build vs Buy lorsque :

- Vous ajoutez une nouvelle capacité (p. ex., identité, analytique, messagerie, facturation).

- Les exigences de fiabilité, de sécurité ou de conformité évoluent (p. ex., SOC 2, ISO 27001, HIPAA, PCI-DSS demandés par des clients).

- Des enjeux d’échelle ou de coûts exigent un saut qualitatif plutôt qu’un simple réglage incrémental.

- Un renouvellement fournisseur ou un refactoring d’architecture est sur la table.

Évitez ou différez lorsque :

- Le problème n’est pas clairement cadré en termes d’utilisateurs et de résultats d’affaires.

- Il vous manque des données minimales de décision (charge de travail, SLO, périmètre de données, portée conformité, enveloppe budgétaire).

- La réponse est prédéterminée ; l’analyse ne ferait que de la mise en scène. Recadrez d’abord.

Prérequis :

- Une page unique décrivant le problème, les critères de succès et les contraintes.

- Propriétaire de la décision, conseillers et approbateur nommés (RACI (Responsible, Accountable, Consulted, Informed) : matrice des rôles pour clarifier qui exécute, qui est redevable, qui est consulté et qui est informé).

- Ligne de base de l’état actuel : historique d’incidents, coûts, SLA/SLO, capacité de l’équipe.

Limites et idées reçues :

- Ce n’est pas un choix ponctuel. Réévaluez lorsque le contexte change (marché, échelle, réglementation, économie).

- « Build est moins cher » ou « Buy est plus rapide » ne sont pas des vérités universelles ; tout dépend de l’adéquation fonctionnelle, de l’intégration et des coûts de cycle de vie.

- L’open source n’est pas gratuit. Il déplace la dépense vers l’intégration, l’exploitation, les mises à niveau et la sécurité.

## Un modèle rigoureux de décision Build vs Buy

Notez chaque option sur la même échelle (p. ex., 1 = faible, 5 = excellent), pondérez selon les priorités d’affaires, puis calculez le score pondéré.

Critères centraux (à adapter à votre contexte) :

- Différenciation stratégique : cette capacité crée-t‑elle un avantage durable?

- Adéquation fonctionnelle : couverture actuelle et alignement de la feuille de route à 12–36 mois.

- Délai de mise en valeur : délai jusqu’au premier incrément livrable, puis jusqu’au périmètre complet.

- Effort d’implémentation : efforts ingénierie, sécurité, données, QA et gestion du changement.

- Complexité d’intégration : API/SDK, alignement modèle de données, impact performance.

- Sécurité : identité, accès, chiffrement, secrets, posture de vulnérabilités.

- Conformité : capacité à réussir audits, attestations, résidence des données.

- Gouvernance des données : propriété, portabilité, traçabilité, rétention, frontières PII.

- Fiabilité et passage à l’échelle : SLO, marge de capacité, modes de défaillance.

- Personnalisation et extensibilité : flexibilité des règles sans forks.

- Talents et capacité : disponibilité des compétences, besoins d’embauche/formation, coût d’opportunité.

- Support et opérations : charge d’astreinte, SLA, observabilité, réponse aux incidents.

- Viabilité du fournisseur : santé financière, références, transparence de la feuille de route.

- Risque de lock-in : modèles propriétaires, pièges à données, friction de migration.

- Options de sortie : droits contractuels, formats d’export, solutions de repli.

Conseil : limitez le nombre de critères à ceux qui pilotent vraiment la valeur et le risque ; surpondérer le bruit dilue le signal.

## Modèle économique : TCO sur 3–5 ans, coût d’opportunité et analyse de sensibilité

Modélisez chaque option sur l’ensemble du cycle de vie. Utilisez des fourchettes (bas/médian/haut) en cas d’incertitude, puis réalisez une analyse de sensibilité pour voir quelles variables influencent le plus la décision.

Composantes du TCO (à adapter) :

- Coûts ponctuels : découverte, design, construction/intégration, migration de données, revue sécurité, formation, gestion du changement.

- Coûts récurrents (annuels) : licences/abonnements, hébergement/compute/storage, niveaux de support, services professionnels, monitoring, sauvegardes, audits.

- Coûts de personnel : ingénierie, SRE, sécurité, QA, produit, gestion fournisseur (ETP ou sous-traitance, coûts chargés).

- Coûts ajustés au risque : valeur attendue des incidents, pénalités d’indisponibilité, brèches et constats de conformité.

- Coûts de bascule : double run, export des données, réintégration, frais de résiliation, reformation, communications clients.

- Coût d’opportunité : valeur des éléments de feuille de route retardés ou annulés si vous mobilisez des ingénieurs rares.

Formules simples (illustratives) :

- TCO sur 3 ans = Coûts ponctuels + Somme(Coûts annuels années 1..3) + Coûts de bascule (le cas échéant)

- Coût d’opportunité (build) = Valeur des fonctionnalités de la feuille de route non livrées en raison de la réaffectation

- Coût d’incident attendu = Probabilité × Impact (somme des types d’incidents matériels)

Analyse de sensibilité :

- Identifiez les 3–5 principaux moteurs (p. ex., taux ETP, paliers de prix du fournisseur, volume de tickets attendu, egress de données).

- Montrez la robustesse de la décision : si un seul moteur évolue défavorablement de 20 %, l’option recommandée reste‑t‑elle gagnante?

## L’ensemble des options à comparer

- Build (interne) : contrôle maximal ; valeur initiale plus lente ; propriété continue plus élevée.

- Buy (COTS, solution du marché) : valeur plus rapide ; risques d’abonnement et de lock‑in ; dépend de l’adéquation fonctionnelle.

- Open source : pas de frais de licence ; intégration/maintenance plus élevées ; support communautaire ou éditeur.

- Service managé (SaaS/PaaS) : déleste l’exploitation ; frontières d’intégration et résidence des données à examiner.

- Externalisation (build sur mesure par un partenaire) : accélère la dotation ; vous restez propriétaire du cycle de vie ; PI et qualité variables.

- Hybride : cœur éditeur + extensions/adaptateurs ciblés en interne pour réduire le lock‑in et couvrir les cas limites.

## Procédure pas à pas

- Cadrer le problème : utilisateurs, résultat d’affaires, incontournables, « nice-to-haves », contraintes et limites du périmètre.

- Définir les rôles de décision : propriétaire, approbateur, contributeurs et conseillers.

- Sélectionner les options : inclure au moins build, buy et une autre (open source, managé, externalisé ou hybride).

- Choisir les critères et les poids : alignés sur la stratégie et l’appétit pour le risque ; somme des poids = 100.

- Recueillir les preuves : démos, références, revues d’architecture, questionnaires sécurité, intégrations échantillons.

- Estimer le TCO (3–5 ans) : inclure coût d’opportunité et coûts de bascule ; documenter les hypothèses.

- Noter les options : 1–5 par critère ; calculer les totaux pondérés ; exécuter l’analyse de sensibilité.

- Lancer un court PoC : prouver les intégrations critiques, la performance, les contrôles de sécurité et l’opérabilité.

- Décider et documenter : la raison, les responsables, le calendrier, les garde‑fous et le plan de sortie.

- Piloter et étendre : mise en production limitée, mesurer les résultats, itérer, puis déployer.

## Exemple détaillé : gestion des identités et des accès pour clients entreprise

Contexte (illustratif) : une entreprise B2B SaaS a besoin de SSO (SAML/OIDC), MFA, provisioning SCIM, RBAC fin et journaux d’audit pour conclure des ventes entreprise ce trimestre. Deux développeurs back-end sont partiellement disponibles. Un audit SOC 2 est visé dans 6 mois.

Options évaluées :

- Build en interne

- Acheter une plateforme d’identité commerciale (SaaS)

- Open source cœur avec auto‑hébergement

- Service managé du fournisseur cloud

- Externaliser la construction sur mesure

- Hybride : éditeur pour l’auth + RBAC et UX admin en interne

Hypothèses (purement illustratives) :

- ETP chargé : 220 k$ US/an (~105 $/h). Prix éditeur listés « mid‑market ». 20 % de contingence sur inconnues.

- SLO requis : 99,9 % de disponibilité auth. Pic à 1 000 connexions/min. PII limitées aux adresses e‑mail et identifiants utilisateur.

Poids (somme = 100) :

- Différenciation stratégique 15

- Temps à valeur 15

- TCO (3 ans) 15

- Sécurité & conformité 10

- Intégration & données 10

- Talents & capacité 10

- Viabilité & support du fournisseur 7

- Personnalisation & extensibilité 5

- Fiabilité & échelle 5

- Lock‑in & sortie 8

Scores illustratifs (1–5, plus haut = mieux) :

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Option</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Différenciation</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">TtV</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">TCO</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Séc/Conform.</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Intégr.</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Talents</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Fourn.</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Personnal.</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Fiabilité</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Lock-in</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Build</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">2</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">2</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">2</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Buy (SaaS)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">2</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Open source</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Service managé</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">2</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Externalisation</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">2</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Hybride</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">4</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">3</td></tr></tbody>
</table>
</div>
Total pondéré (illustratif) :

- Build : 3,2/5

- Buy (SaaS) : 4,1/5

- Open source : 3,4/5

- Service managé : 4,0/5

- Externalisation : 3,1/5

- Hybride : 4,2/5 (légère victoire sur l’adéquation d’intégration et la flexibilité de sortie)

Synthèse TCO sur 3 ans (illustratif, k$ US) :

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Composante</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Build</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Buy (SaaS)</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Open source</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Service managé</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Externalisation</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Hybride</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Ponctuel (design, build/intégr., sécurité)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">180</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">45</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">120</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">50</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">250</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">70</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Licence/abonnement annuel</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">0</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">120</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">0</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">110</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">0</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">110</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Run/ops/support annuel</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">120</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">35</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">100</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">30</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">80</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">45</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Coût d’opportunité (feuille de route)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">200</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">40</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">140</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">40</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">80</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">60</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Coût d’incidents ajusté au risque</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">60</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">25</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">50</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">25</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">50</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">25</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Coûts de bascule (si changement ultérieur)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">80</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">60</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">70</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">60</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">90</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">50</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">TCO sur 3 ans (cas de base)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">820</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">520</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">550</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">525</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">720</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">540</td></tr></tbody>
</table>
</div>
Plages de scénarios (illustratives) :

- Build : bas 650, base 820, haut 1 100 (moteurs : vélocité des ingénieurs, durcissement sécurité)

- Buy (SaaS) : bas 430, base 520, haut 640 (moteurs : paliers de contrat, complexité d’intégration)

- Hybride : bas 470, base 540, haut 660 (moteurs : périmètre RBAC sur mesure, dépassements tarifaires éditeur)

Sensibilité (exemples) :

- Si le prix éditeur augmente de 20 % au renouvellement, Buy monte de +72 k$ sur 3 ans ; Hybride de +66 k$. Hybride reste favori sur l’adéquation d’intégration.

- Si la livraison Build dérape de 8 semaines, le coût d’opportunité +90 k$ et le risque d’audit augmente, creusant l’écart.

PoC et éléments collectés (période de 2 semaines, illustratif) :

- Intégration SSO/MFA en staging ; SCIM avec deux locataires échantillons.

- Test de performance à 1 200 connexions/min avec 95e percentile < 300 ms.

- Contrôles sécurité validés : mappage des rôles, exhaustivité des événements d’audit, rotation des clés.

- Opérabilité : journaux dans le SIEM, tableaux de bord, alertes, runbooks rédigés.

Garde‑fous contractuels recherchés (illustratif) :

- SLA disponibilité auth 99,95 % avec crédits ; résumés trimestriels de tests d’intrusion ; délais de notification et de remédiation en cas de brèche.

- Protection de prix : plafond d’augmentation annuelle à CPI + 3 %, remise de palier verrouillée pendant la durée.

- Résiliation pour convenance avec préavis 60 jours ; fenêtre d’export de données de 90 jours ; format d’export documenté.

- Clause en cas de changement de contrôle ; transparence sur les sous‑traitants ; droits d’audit des contrôles de sécurité.

Décision (illustrative) : adopter l’option Hybride maintenant (auth éditeur + mappage RBAC et UX admin en interne) pour respecter les délais entreprise, limiter le lock‑in et garder la différenciation dans la logique produit.

Responsables et plan (illustratif) :

- Produit : exigences et clients pilotes ; Ingénierie : intégration et mappage RBAC ; Sécurité : contrôles et revues ; SRE : SLO, runbooks ; Finance : suivi TCO ; Gestion fournisseur : hygiène contractuelle.

- Périmètre pilote : 3 locataires entreprise ; critères de succès : provisioning < 1 jour, intégration < 10 jours‑ingénieur, zéro incident P1 sécurité sur 30 jours, consommation du budget d’erreurs < 5 %.

- Réévaluation : à 18 mois ou lors d’un x3 d’échelle ou d’un changement contractuel majeur.

## Listes de vérification de diligence raisonnable pour fournisseurs et solutions

Diligence fournisseur

- Sécurité : chiffrement en transit/au repos, gestion des clés, gestion des secrets, gestion des vulnérabilités, réponse aux incidents, SDLC sécurisé, cadence des tests d’intrusion.

- Posture conformité : attestations SOC 2/ISO, options de résidence des données, clauses DPA, revendications « privacy by design ».

- Fiabilité : disponibilité historique, page de statut publique, fenêtres de maintenance, engagements RTO/RPO.

- Viabilité : financement, rentabilité/visibilité de trésorerie, références, concentration client, rotation des dirigeants.

- Feuille de route et support : notes de version, politique de dépréciation, SLA, heures de support, disponibilité d’un ingénieur support attitré.

- Juridique et données : liste des sous‑traitants, clauses de changement de contrôle, droits d’audit, indemnisations, propriété intellectuelle.

Liste PoC (proof of concept)

- Intégrations : API/SDK, flux d’authentification, SCIM/mappage des rôles, webhooks.

- Données : schémas, frontières PII, export/import, anonymisation des tests.

- Performance : charge représentative, cibles de latence, comportements retry/backoff.

- Opérabilité : logs, métriques, traçage, tableaux de bord, alertes, runbooks.

- Sécurité : moindre privilège, rotation des secrets, complétude des audits, isolation multi‑locataire.

- Critères de succès : seuils explicites de réussite/échec et plan de repli.

Liste de négociation

- SLA/SLO et crédits ; SLA de communication d’incident.

- Protections de prix, paliers de volume, plafonds de renouvellement, paliers de montée en charge.

- Durée, résiliation pour convenance, frais de résiliation anticipée.

- Propriété des données, format d’export, rétention, délais de suppression.

- Protections en cas de changement de contrôle ; notification/approbation des sous‑traitants.

- Taux services professionnels et plafonds « not‑to‑exceed » ; livrables de transfert de connaissances.

Liste d’adéquation à l’architecture

- Alignement au modèle de domaine et aux frontières ; couche d’anti‑corruption claire.

- Budgets de latence et chemins synchrones vs asynchrones.

- Idempotence, retries, coupe‑circuits et backpressure.

- Isolation multi‑locataire ; contrôles par locataire ; limites de taux.

- Couverture d’observabilité et intégration à votre outillage.

- Reprise après sinistre : sauvegardes, tests de restauration, RTO/RPO, bascule régionale.

Liste du plan de sortie

- Déclencheurs : violations de SLA, chocs de prix, incidents de sécurité, M&A, pivot stratégique.

- Playbook : calendrier de double run, étapes d’export/migration des données, bascule, communications clients.

- Contrat : droits de résiliation, assistance à l’export, escrow (si applicable).

- Ressources : capacité d’équipe réservée pour les exercices de sortie ; budget pour l’exécution en parallèle.

- Test : exercice table‑top ou répétition limitée annuelle ; suivi du temps‑à‑la‑sortie.

## Mesures reliées aux résultats

Définissez un petit ensemble pertinent et classez‑le.

- Indicateurs avancés : taux de complétude des briefs de décision ; dépendances levées avant l’intégration ; taux de réussite des PoC ; garde‑fous contractuels en place.

- Mesures diagnostiques : cycle des PR d’intégration ; densité de défauts ; volume de tickets support et délai moyen d’accusé ; taux d’échec des changements.

- Mesures garde‑fous : SLO de disponibilité auth et budget d’erreurs ; dépense cloud mensuelle vs budget ; respect des SLA par le fournisseur ; complétude des revues d’accès.

- Résultats retardés : temps jusqu’à première valeur (du début au premier locataire en production) ; temps jusqu’au périmètre complet ; impact sur le taux de gain entreprise ; rétention nette de revenu.

- Vanité (à éviter) : lignes de code ; nombre de fournisseurs ; nombre de fonctionnalités démo sans adoption.

## Pièges courants et comment les éviter

- Ignorer le coût d’opportunité : incluez explicitement la valeur de feuille de route déplacée dans le TCO.

- Surajuster au trimestre en cours : fixez des jalons de court terme mais modelez 3–5 ans et incluez les coûts de sortie.

- Traiter le PoC comme de la production : gardez‑le court avec des seuils tranchés ; n’accumulez pas de dette opérationnelle cachée.

- Sous‑estimer l’exploitation : assignez dès le départ des responsables pour l’astreinte, l’observabilité et les playbooks d’incident.

- Exigences sécurité vagues : écrivez des contrôles testables (p. ex., MFA imposée pour tous les admins, déprovisionnement SCIM < 15 min, journaux d’audit immuables 1 an).

## Modèles à recopier

Grille de décision (exemple)

<div class="my-stack-md overflow-x-auto">
<table class="w-full min-w-[42rem] border-collapse text-left">
<thead><tr><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Critère</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Poids</th><th scope="col" class="border border-outline-variant bg-surface-container-low px-4 py-3 text-left font-label-md font-semibold text-on-surface">Notes</th></tr></thead>
<tbody><tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Différenciation stratégique</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">15</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Lien clair avec l’avantage produit</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Temps à valeur</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">15</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Plus petit incrément viable et périmètre complet</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">TCO (3–5 ans)</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">15</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Inclure coût d’opportunité et coûts de bascule</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Sécurité &amp; conformité</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">10</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Tests de contrôle et préparation audit</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Intégration &amp; données</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">10</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Adéquation au domaine et aux flux</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Talents &amp; capacité</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">10</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Compétences et risque de focus</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Viabilité &amp; support fournisseur</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">7</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Finances, références, SLA</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Personnalisation &amp; extensibilité</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Règles/logique sans forks</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Fiabilité &amp; échelle</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">5</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">SLO et marge de croissance</td></tr>
<tr><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Lock‑in &amp; sortie</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">8</td><td class="border border-outline-variant px-4 py-3 align-top text-body-md text-on-surface-variant">Sortie contractuelle et technique</td></tr></tbody>
</table>
</div>
Feuille TCO (trame)

- Ponctuel : design, build/intégration, migration, revue sécurité, formation

- Annuel run : licence/abonnement, hébergement, support, monitoring, sauvegardes, audits

- Personnel : Ing, SRE, Sec, QA, PM, gestion fournisseur (ETP × coût)

- Incidents ajustés au risque : probabilité × impact par risque

- Coût d’opportunité : valeur de feuille de route déplacée

- Bascule : double run, export, réintégration, frais de résiliation

## Conclusion et prochaines actions

L’Analyse Build vs Buy est un outil de leadership pour transformer l’ambiguïté en clarté exploitable. Utilisez une grille pondérée alignée sur la stratégie, un TCO transparent sur 3–5 ans incluant le coût d’opportunité et les coûts de bascule, et un PoC pour valider l’adéquation et l’opérabilité. Documentez la décision, les garde‑fous et le plan de sortie. Réévaluez sur des déclencheurs significatifs plutôt qu’au calendrier.

Prochaines actions :

- Sélectionnez cette semaine une capacité candidate et rédigez un brief d’une page (problème, résultats, contraintes).

- Choisissez 6–10 critères et assignez des poids qui reflètent votre stratégie actuelle.

- Identifiez 3–5 options (build, buy, open source, managé, externalisé, hybride) et collectez les preuves.

- Construisez le TCO 3–5 ans avec scénarios et sensibilité ; explicitez le coût d’opportunité.

- Exécutez un PoC de 1–2 semaines avec seuils tranchés et plan de repli.

- Décidez, nommez les responsables et les garde‑fous, pilotez avec limites, et planifiez un déclencheur de réévaluation.

## FAQ

- Comment éviter le verrouillage fournisseur si je dois livrer vite? Adoptez une approche hybride : protocoles standards (OIDC/SAML/SCIM), couche d’adaptateurs et clauses de sortie contractuelles. Gardez la logique métier personnalisée hors de l’éditeur.

- Quand revisiter une décision passée? À des déclencheurs matériels : échelle > x3, chocs de prix, violations de SLA, changements de stratégie produit, évolutions réglementaires ou événements de M&A.

- Et si aucune option ne l’emporte clairement? Prolongez le PoC sur les deux premières options, affûtez les exigences, ou timeboxez un spike pour réduire l’incertitude clé qui crée l’égalité.