Le cahier des spécifications techniques (CST) est un document de référence destiné aux développeurs, intégrateurs et architectes techniques, qui décrit comment le système ou le site sera construit, en précisant les contraintes, choix technologiques, environnements, intégrations et standards à respecter.
Il ne décrit pas ce que le système doit faire (c’est le rôle du CSF), mais comment il doit être réalisé :
- Les technologies utilisées (ex. : PHP 8.2, WordPress 6.7, React 18, Node.js…),
- L’architecture logicielle (monolithique, microservices, headless…),
- Les environnements (dev, staging, production — hébergeur, serveur, base de données),
- Les intégrations externes (CRM, API REST, OAuth, SSO, plugins obligatoires…),
- Les standards de code (PSR, WCAG, SEO sémantique, accessibilité),
- Les contraintes de performance (temps de chargement, nombre d’utilisateurs simultanés),
- Les sécurité (HTTPS, authentification, sauvegardes, RGPD),
- Les spécifications d’hébergement (CPU, RAM, stockage, backup, monitoring),
- Les délais techniques (mises à jour, déploiement continu).
Le CST est souvent rédigé par l’équipe technique ou le chef de projet technique, en lien étroit avec le maître d’œuvre, et validé en amont pour garantir que la solution envisagée est réalisable, pérenne et alignée sur les besoins fonctionnels.
Différence claire : CST vs CSF
| Critère | Cahier des spécifications fonctionnelles (CSF) | Cahier des spécifications techniques (CST) |
|---|---|---|
| Objectif | Définir ce que le système doit faire | Définir comment il va être construit |
| Public cible | Maître d’ouvrage, AMOA, utilisateurs finaux | Développeurs, architectes, prestataires techniques |
| Contenu | Fonctionnalités, cas d’usage, règles métier, parcours utilisateur | Technologies, architecture, intégrations, performances, sécurité |
| Langage | Compréhensible par les non-techniques | Technique, orienté développement |
| Statut | Validé par le client → base de la recette fonctionnelle | Validé par l’équipe technique → base du développement |
| Exemple | « L’utilisateur peut exporter ses données au format CSV » | « Export via API REST, format UTF-8, limite de 10 000 lignes, export asynchrone » |