Aller au contenu

Pas de balle en argent

Un article de Wikipédia, l'encyclopédie libre.
Frederick Brooks

« Pas de balle en argent » (traduction littérale de « No Silver Bullet », et dont le sens est « pas de baguette magique » ) est une expression introduite en génie logiciel dans les années 1980 par Frederick Brooks lorsqu'il a publié No Silver Bullet — Essence and Accidents of Software Engineering. Brooks désigne ainsi l'ensemble des « techniques miracles » censées permettre magiquement d'augmenter la productivité des programmeurs et de diminuer la quantité de bugs dans les programmes produits, et ainsi de tuer le monstre redouté, le dépassement des délais, lors de la réalisation des projets informatiques.

L'expression est un jeu de mots entre d'une part le fait que dans une présentation, les puces au début de chacune des phrases s'appellent en anglais bullet(s), d'autre part le fait qu'une balle d'argent est, dans les légendes, le seul projectile capable d'abattre un lycanthrope, et a donc le statut d'arme miraculeuse.

Brooks, qui a relaté son expérience dans Le Mythe du mois-homme, a par la suite écrit un article marquant, No Silver Bullet, où il met en doute les « technologies miracles » de son temps. L'expression Silver Bullet est depuis entrée dans le langage du génie logiciel.

L'opinion de Brooks est que les difficultés de réalisation des logiciels se divisent en difficultés accidentelles (langages de programmation et systèmes laborieux et malaisés à utiliser) et en difficultés essentielles (inhérentes à la production de logiciels). Or, selon lui, les difficultés accidentelles ont déjà été en grande partie éliminées, par exemple par l'adoption de langages de haut niveau ; il n'y aura donc pas dans l'avenir de nouveaux progrès permettant des gains importants de productivité.

Il cite ensuite un certain nombre de technologies présentées comme devant révolutionner l'industrie logicielle (le langage Ada et la programmation orientée objet) et explique que si ces technologies permettent d'encore diminuer les difficultés accidentelles de la programmation, elles ne peuvent en supprimer les difficultés essentielles.

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]