Rédiger les spécifications techniques de votre projet informatique

rédiger les spécifications techniques de votre projet IT

Les spécifications techniques sont la suite logique des spécifications fonctionnelles ou spécifications fonctionnelles du besoin. L’objectif de la rédaction des spécifications fonctionnelles est d’expliciter, le plus clairement possible, les besoins de votre entreprise.

À ne pas confondre avec l’expression de besoins qui doit être rédigée en amont du cahier des charges. 

Les spécifications techniques sont indispensables à la conception de tout logiciel web ou application mobile. Elles permettent d’établir les caractéristiques techniques correspondant à vos exigences fonctionnelles.

Par spécifications techniques, on désigne toute la documentation regroupant les méthodes, procédés et technologies sélectionnées pour le projet.

Sommaire
 

Spécifications techniques, définition.

Une spécification est un ensemble explicite d’exigences auxquelles doit répondre un produit ou un service.

C’est un document de référence à la fois pour le client et pour le prestataire.

Dans la gestion de projet web, qu’il s’agisse d’un logiciel, d’un site web ou d’une application, la spécification fonctionnelle porte sur la fonctionnalité développée pour satisfaire l’expérience d’un utilisateur, tandis que la spécification technique porte sur les moyens de mettre en œuvre cette fonctionnalité, comme les technologies et l’architecture.

Les specs techniques sont basées sur votre expression de besoin et constituent un document de référence à la fois pour le client, pour vous, mais aussi pour votre prestataire.

L’objectif des spécifications techniques est de traduire vos besoins en choix techniques, tout en respectant les contraintes liées au projet.

C’est pourquoi on les appelle aussi spécifications techniques du besoin (STB). Le document traduit le besoin d’un client en exigences et contraintes techniques dans le cahier des charges.

Les spécifications techniques détaillent la manière dont une application ou un logiciel doit être développé, quels composants et outils sont nécessaires pour répondre aux besoins de l’utilisateur et fournissent une base claire sur laquelle toutes les parties prenantes s’accordent.

Les spécifications techniques peuvent être rédigées sous différents formats que nous allons voir ci-après.

Choisir le format des spécifications techniques d’un projet IT

Lors de la rédaction de votre cahier des charges, vous pouvez choisir le format de vos spécifications techniques. 

Les spécifications techniques peuvent être soit ouvertes, soit fermées. 

Dans un souci de clarté et de protection juridique, nous vous conseillons fortement d’avoir recours à des spécifications techniques fermées. 

Spécifications techniques ouvertes

Les specs techniques sont dites ouvertes lorsqu’une entreprise ou une start-up limite ses exigences à un résultat, sans préciser les moyens et technologies souhaités.

Dans ce cas, le prestataire est libre de choisir les technologies qu’il mettra en œuvre.

La prestation sera considérée comme conforme si le résultat attendu est atteint dans le délai imparti et selon un processus bien défini.

Spécifications techniques fermés

Les spécifications techniques sont usuellement rédigées au format fermé.

Ce format ne laisse pas de place à l’erreur, on précise ainsi dans le document, les outils, les méthodes et procédés ainsi que les technologies utilisées, de même que le déroulement de la production

Le cahier des charges ayant un enjeu juridique, des spécifications techniques fermées, et complètes, sont un plus. 

Leur complétude permet, en cas de litige, d’établir plus facilement les responsabilités de chacune des parties. 

Qui rédige les spécifications techniques ? 

C’est la grande question : qui rédige les spécifications techniques d’un projet IT

Vous en conviendrez, l’équipe technique de votre prestataire est la plus à même de rédiger les specs techniques. 

Le CTO ou les développeurs ont toutes les connaissances nécessaires pour rédiger vos spécifications. Leurs connaissances techniques leur permettront de proposer des solutions à vos besoins tout en prenant en compte les contraintes qui y sont associées. 

Une expertise technique est indispensable pour des spécifications techniques correctes et détaillées. 

Quelles informations trouve-t-on dans les spécifications techniques ? 

Les spécifications techniques de votre projet informatique dépendent d’une part des besoins relatifs à votre entreprise, d’autre part des contraintes auxquelles vous faites face. Ces contraintes doivent être clairement définies.

Cela permet à l’équipe en charge du développement de l’application ou du logiciel de vous proposer la solution technique la plus adaptée. 

L’importance des contraintes fonctionnelles pour les spécifications techniques

Comme tous les projets, même si vous avez des besoins précis, il existe certaines limites ou contraintes à respecter. Chaque projet répond à des contraintes qui lui sont propres et il vous appartient de les lister dans votre cahier des charges fonctionnel. Afin de vous donner quelques pistes, voici quelques contraintes récurrentes identifiées au cours de nos différents projets  :

  • Les contraintes techniques : votre projet doit être compatible avec d’autres systèmes ou un accès restreint est nécessaire pour un certain type d’utilisateur.
  • Les contraintes légales et réglementaires : votre projet requiert que le visiteur partage des informations directement liées ou relatives à son état de santé ? Renseignez-vous sur les contraintes réglementaires de chaque store, Apple est par exemple très tatillon à ce sujet.
  • Les contraintes de temps : vous devez fournir, a minima, une estimation de la date de livraison souhaitée de votre projet. Dans certains cas, comme le lancement d’un produit par exemple, il est important d’être réaliste sur les délais de production. N’hésitez pas à bien anticiper vos besoins pour le développement de votre logiciel web ou mobile.
  • Les contraintes logistiques : si par exemple, vous avez besoin de gérer un flux logistique, la gestion de vos stocks et/ou de vos commandes, n’hésitez pas à le détailler dans votre cahier des charges fonctionnel.
  • Les contraintes budgétaires : vous avez un budget à respecter et il est important d’en informer votre prestataire pour une solution sur mesure. Dans certains cas, votre fournisseur de service pourra vous préconiser, au besoin, le développement d’un MVP.

Le MVP ou Most Valuable Product, est la version d’un produit qui permet d’obtenir un maximum de retours client pour une charge de travail minimale. L’objectif est ensuite de faire évoluer votre MVP pour obtenir la version définitive décrite dans votre cahier des charges fonctionnel.

Pour en savoir plus sur la définition et la rédaction des spécifications fonctionnelles de votre projet, n’hésitez pas à consulter notre article : Définir le périmètre de votre projet grâce aux spécifications fonctionnelles

Les informations présentes dans les spécifications techniques

Les spécifications techniques regroupent l’ensemble des informations nécessaires aux développeurs pour concevoir et développer votre logiciel/application. 

Elles peuvent entre autres contenir : 

  • les choix technologiques,
  • les domaines et l’hébergement,
  • l’environnement/l’architecture (système d’exploitation, serveur web et serveur d’application),
  • les exigences de programmation (langage informatique),
  • l’accessibilité (compatibilité, navigateurs, logiciels, appareils),
  • la sécurité,
  • la maintenance et les évolutions,
  • le planning prévisionnel,
  • le glossaire des termes techniques.

Exemple de spécifications techniques

Pour comprendre ce que sont des spécifications techniques, regardons les de plus près. 

Que contiennent-elles ? C’est ce que nous allons voir dans cette section.

1. Architecture générale

On trouve ici l’architecture générale du système à concevoir.

Il faut également agrémenter la description d’un schéma de principe de haut niveau de l’architecture en faisant apparaître les composants logiciels (API, front, Mobile, DB, etc.) ainsi que les principales dépendances externes.

2. Composants logiciels

Dans cette section, il faut décrire les technologies utilisées (plateformes cibles, framework/version, etc) pour chacun des composants utilisés par l’application ou le logiciel. 

  • Application mobile
  • Back-office Web
  • API (Application Programming Interface)
  • Base(s) de données

3. Spécifications détaillées 

On arrive ici dans le coeur des spécifications techniques.

Vous trouverez ci-dessous les points indispensables à la rédaction de spécifications détaillés. 

Chacun de ces points correspond à un composant de votre logiciel ou application. 

Vous trouverez pour chacun d’eux le détail de ce qui doit apparaître dans le cahier des charges.

Base de données

Si une ou des bases de données sont à concevoir ou utiliser, vous devrez décrire en détail dans cette partie l’ensemble de(s) type(s) de base de données utilisée(s) (version, etc).

  • Diagramme(s)
  • Schéma(s)
  • Table(s)
  • Indexe(s)
  • Vue(s)
  • Triggers, Fonctions et procédures stockées

Application mobile

  • Liste des pages/modules
  • Contrôleurs et actions
  • Services
  • Modèles/Entités
  • Validateurs
  • Helpers (Classes de logique pour des contrôleurs communs entre les plateformes)
  • Librairies et bundles utilisés
  • Configuration des environnements/Paramètres

Back-office Web

  • Liste des pages/modules
  • Contrôleurs et actions
  • Services
  • Modèles/Entités
  • Validateurs
  • Commandes
  • Librairies et bundles utilisés
  • Autorisations/Rôle/Habilitations/Paramétrage firewall (Symfony)
  • Configuration des environnements/Paramètres

API

Si votre logiciel/application utilise une ou des API, vous devrez lister les routes utilisées et les décrire : 

  • Verbe HTTP
  • Autorisation nécessaire
  • Entêtes nécessaires
  • Chaîne de requête (QueryString)
  • Corps de la requête
  • Corps de la réponse
  • Code HTTP de réponse
  • Liste des erreurs
  • Format attendu
  • Liste des fixtures à développer.

Tests Unitaires 

Tester votre application est une nécessité pour assurer sa pérennité.

Dans cette section vous devrez expliciter votre plan de test.

  • Classes et méthodes testées
  • Objectifs du test
  • Framework(s) de tests utilisé(s)
  • Etc.

4. Conventions de codage

Décrire pour chaque langage utilisé pour développer les différents composants logiciels la convention de codage utilisée.

Décrire les bonnes pratiques à utiliser si nécessaire et indiquer les outils intégrés de vérification de la syntaxe.

5. Données personnelles 

La gestion et la protection des données étant devenu un enjeu crucial dans le développement d’application/logiciel, il faut décrire ici la manière dont les données personnelles sont traitées/chiffrées dans le projet. (référence RGPD, méthode de chiffrement, etc.)

6. Environnements

Cette avant dernière section, l’objectif est d’expliquer avec précision l’environnement technique dans lequel l’application (ou le logiciel) sera développée.

  • Développement 

Décrire le workflow de développement, le dépôt utilisé, les branches, les modalités de revues de code, etc.

  • Intégration 

Décrire l’environnement d’intégration des différents composants et la manière d’y accéder et le process d’intégration continue si nécessaire : étapes, erreurs possibles, etc.

  • Validation 

Décrire l’environnement de validation des différents composants par le client et la manière d’y accéder.

  • Processus de livraison 

Décrire l’environnement de validation des différents composants par le client et la manière d’y accéder.

7. Exploitation

Dans cette partie il faut détailler avec précision l’ensemble des services qui permettront de faire fonctionner votre application. 

Le type et les caractéristiques techniques de l’hébergement, les logiciels installés sur le serveur, les différentes tâches et sauvegardes à effectuer, etc. 

  • Hébergement
  • Caractéristiques
  • Logiciels installés 
  • Tâches planifiées
  • Sauvegarde

AxioCode vous accompagne de la conception au développement de votre projet

La rédaction des spécifications techniques peut toutefois se révéler être un véritable parcours du combattant pour les entreprises.

Spécialiste des applications et logiciels métier, nous accompagnons nos clients de la définition des besoins au déploiement de l’application. 

Notre méthodologie éprouvée nous permet de rédiger, pour et avec vous, les spécifications fonctionnelles et techniques de votre projet informatique

Nous assurons la complétude de la documentation technique afin de vous fournir une application de haute qualité sans surcoût ni retard de livraison. 

Notre objectif ?

Vous aider à préserver votre avantage compétitif et/ou moderniser vos processus métier dans le but de booster votre productivité et d’améliorer l’expérience utilisateur. 

Vous avez un projet d’application ou de logiciel sur-mesure ?
Réserver votre diagnostic gratuit de 30min avec l’un de nos experts.