Rôle de la compréhension dans le génie logiciel/Équilibre généraliste et spécifique
Hors les sujets de culture générale tel que les langages informatiques, l'artisan développeur doit choisir le temps qu’il consacre à apprendre les techniques qui lui permettent de résoudre un problème. Prenons l'exemple de l'animation dans un jeu vidéo. Comment séquencer des animations ? Comment faire qu'un personnage passe un objet à un autre en synchronisant l'animation des deux personnages et de l’objet ? Un extrême consiste à écrire des lignes de code résolvant ce problème particulier sans aucune généricité. L'autre extrême serait de concevoir une boîte à outil de séquencement d'animation avec une interface de programmation et une interface permettant de visualiser l'état d'un gestionnaire d'animations non linéaire.
Le choix du développeur est toujours de se situer entre les deux, même lorsqu’il verse dans l'un des deux extrêmes. C'est-à-dire que celui qui pêche par excès de simplification, tout comme celui qui cède au delà du raisonnable à la généralisation sont dans le déni de ce qu’il font et soutiendront mordicus avoir trouvé le juste équilibre. Mais, même si l'équilibre est le bon au moment T, l'important est de se souvenir que c’est un équilibre instable. L'idéal, ce que tous les développeurs désirent, est de disposer d'une librairie généraliste. Par conséquent le compromis qu’il font à un moment est destiné à être remis en question. Une dimension supplémentaire doit s'ajouter lorsqu'on cherche l'équilibre : combien de temps va-t-il durer et dans quelle direction doit-il évoluer ?
Il y a donc quelque chose d'inquiétant et d'incomplet à choisir un équilibre sans y ajouter une durée de vie et une évolution probable. Et ces deux paramètres sont directement fonction de la compréhension générale du problème technique que l’on cherche à résoudre. Comme pour la culture générale, la recherche d'une solution technique à une composante concrète qui se manifeste sous la forme modifications et création de logiciels et une composante théorique qui est destinée à évoluer en pointillé afin de préparer le prochain équilibre.