Musique et Programmation

Les spécifications sont à la programmation ce qu’une partition est à la musique. La véritable performance ne se réalise qu’à partir du moment où l’on arrive à s’en détacher.

Avez-vous déjà demandé à un ordinateur de jouer une partition de musique ? J’ai essayé, ça ne fonctionne pas. Avec du bon matériel, on obtient un air juste, mais sans âme, sans émotion. Un logiciel informatique n’est pas seulement le produit d’une activité rationnelle, c’est pour cette raison que la génération automatique d’un logiciel à partir d’un modèle UML ne fonctionne pas.

Cuisine et Programmation

Les spécifications sont à la programmation ce qu’une recette est à la cuisine. On dit souvent que pour faire un bon gâteau, il faut une bonne recette.

Premièrement, ce n’est pas suffisant. Si vous ne me croyez pas, venez manger une fois chez ma tante.

Pourtant, il est vrai qu’une bonne recette aide beaucoup. L’idéal pour un projet informatique serait de trouver les personnes capables d’écrire ces bonnes recettes.

Quand un livre de cuisine veut se donner du crédit, il ajoute la photo d’un maître cuisinier sur la couverture. Il est entendu de tout le monde qu’il faut un bon cuisinier pour faire une bonne recette. Mais alors, pouquoi en informatique s’acharne-t-on à faire écrire les spécifications par des non-informaticiens ? Les spécifications, ou d’une manière générale la gestion des projets informatiques, sont faites par des personnes qui n’ont soit jamais fait d’informatique soit en ont fait dans leur jeunesse mais ont fui cette activité “dégoûtante”.

La solution n’est bien sûr pas non plus de tout confier aux informaticiens car la connaissance du métier pour lequel on désire écrire le programme est indispensable. Ce qu’il faut éviter, c’est la spécialisation des tâches 1.

Si vous voulez produire un bon programme, constituez une équipe composée à la fois de développeurs et de personnes “métier” et faites travailler ces personnes ensemble pendant toute la durée du projet. Et croyez-moi, il y aura du travail à plein temps pour tout le monde.


  1. Cette idée de spécialisation est directement issue de la métaphore industrielle où l’on considère que le logiciel est un produit qui doit passer par différentes étapes de production : spécifications, développement, tests, et que ces étapes sont dissociables et réalisables par des personnes différentes. le livre Software Craftmanship explique très clairement cette idée. [return]