La fonction la plus importante d'une spécification est de concevoir le programme . Même si vous travaillez vous-même sur du code et que vous écrivez une spécification uniquement pour votre propre bénéfice, le fait d'écrire la spécification - décrivant comment le programme fonctionne dans les moindres détails - vous obligera à réellement concevoir le programme ...
... lorsque vous concevez votre produit dans un langage humain, il ne faut que quelques minutes pour réfléchir à plusieurs possibilités, réviser et améliorer votre conception. Personne ne se sent mal quand il supprime un paragraphe dans un traitement de texte. Mais lorsque vous concevez votre produit dans un langage de programmation, il faut des semaines pour réaliser des conceptions itératives. Pire encore, un programmeur qui vient de passer 2 semaines à écrire du code va être très attaché à ce code, peu importe à quel point c'est faux ...
... Lorsque vous écrivez une spécification, il suffit de communiquer la façon dont le programme est censé fonctionner une fois . Tout le monde dans l'équipe peut simplement lire la spécification. Les personnes chargées de l'assurance qualité l'ont lu pour savoir comment le programme est censé fonctionner et pour quoi tester. Les responsables marketing l'utilisent pour rédiger leurs vagues livres blancs vaporware à publier sur le site Web sur des produits qui n'ont pas encore été créés. Les gens du développement commercial l'ont mal lu pour faire tourner des fantasmes étranges sur la façon dont le produit guérira la calvitie et les verrues et autres, mais cela attire les investisseurs, donc ça va. Les développeurs l'ont lu pour savoir quel code écrire. Les clients l'ont lu pour s'assurer que les développeurs construisent un produit qu'ils voudraient payer. Les rédacteurs techniques l'ont lu et écrit un beau manuel ...
Lorsque vous n'avez pas de spécification, toute cette communication se produit toujours, car elle doit l'être , mais elle se produit de manière ponctuelle . Les gens de l'AQ s'amusent avec le programme bon gré mal gré, et quand quelque chose semble étrange, ils vont encore une fois interrompre les programmeurs pour leur poser une autre question stupide sur la façon dont la chose est censée fonctionner ...
sans un cahier des charges détaillé, il est impossible de faire un planning ... Dans trop d'organismes de programmation, à chaque fois qu'il y a un débat sur le design, personne ne parvient jamais à prendre une décision, généralement pour des raisons politiques. Les programmeurs ne travaillent donc que sur des choses non controversées. Au fil du temps, toutes les décisions difficiles sont poussées jusqu'au bout ... La rédaction d'une spécification est un excellent moyen de clouer toutes ces décisions de conception irritantes, grandes et petites, qui sont couvertes si vous n'avez pas de spécification. ..