Les spécifications techniques décrivent l’implémentation du programme. Quelle va être la base de données ? Son organisation ? Quel langage va-t-on choisir, quel framework ? L’objectif de ce document est de préparer en amont tous les éléments techniques dont les développeurs auront besoin pour coder.
Lorsque le projet suppose la création, à partir de zéro, d’un nouveau programme, les spécifications techniques se concentrent sur tous les éléments nécessaires à cette mise en place.
Mais parfois ce nouveau programme s’inscrit dans un système qui existe déjà. Par exemple, ajouter l’inscription à une newsletter sur le site des impôts. Dans ce cas, les spécifications techniques font également lieu de documentation : elles expliquent comment fonctionne le système actuel et comment les développeurs peuvent interagir avec l’existant.
Dans tous les cas, la première partie est, en général, dédiée à l’architecture générale du projet. Nous y retrouvons notamment le schéma d’architecture, c’est à dire l’organisation des serveurs qui permettra aux utilisateurs d’accéder aux données. Les parties suivantes entrent dans le détail et varient selon la taille du projet.
Architecture technique générale
Si vous ouvrez le modèle de spécifications techniques dont je vous ai donné lien quelques lignes plus haut, vous y retrouverez une présentation générale du projet et un schéma d’architecture (page 6).
Nous pourrions également y lire un éventuel schéma UML (pour la base de données) et toute information qui s’appliquerait au projet de manière globale (les langages choisis par exemple).
Batchs / Interfaces
Un batch est un “traitement par lots”. C’est un bien grand mot pour désigner une tâche qui est effectuée automatiquement sur un ensemble de données. Par exemple, envoyer un mail à tous les étudiants de votre promo pour les informer de la prochaine soirée “Video killed the radio star” !
Ici l’auteur spécifie, notamment, les traitements éventuels des données entrantes (les mails dans notre exemple) et des données sortantes (les messages envoyés).
Description des données
Ici nous détaillons la manière dont nous allons utiliser les données. Par exemple, comment modifie-t-on le nom d’un aliment ? Sous quel format ? Comment Nadine met-elle un aliment en favoris ?
Description du code
Nous voyons dans cette section notamment la version du langage utilisé, du framework et des guides de style (quelle est la règle pour écrire une variable, déclarer une nouvelle fonction, …).
Plateforme matérielle
Cette section se concentre sur l’aspect matériel (hardware) du projet. Attend-on beaucoup de trafic et, par conséquent, doit-on prévoir des performances élevées ? Va-t-il y avoir beaucoup de calculs à traiter ? Quelle mémoire vive est nécessaire ? Etc.
Notre projet étant maintenant bien détaillé, nous pouvons passer le relais aux développeurs qui vont se mettre à coder.