Comme tout développeur de logiciels, il m'est arrivé, en relisant le code d'un autre ou même mon propre code, de me demander ce que l'auteur a voulu faire, quelle était son intention, ce que fait ce code ou plus précisément ce qu'il est supposé faire.
Il y a bien sûr les commentaires, censés aider à la compréhension, mais ils peuvent manquer, ou bien être présents et ne pas être à jour, sans bien sûr aucune indication sur ce décalage potentiel.
Idéalement, j'aimerais donc assister à la création du code et aux pensées qui ont présidé à son écriture. Le sens de lecture (par la machine) d'un code est relativement linéaire, alors que son écriture (par l'humain) est faite d'allers et retours incessants pour ajouter ici une variable, ici découper une fonction, ...
Le 25 mai 2011, Christian Fauré, de l'association Ars Industrialis, présentait des concepts philosophiques sous-jacents à l'activité de développement logiciel.
Dans le cadre d'une réflexion sur le métier d'ingénieur de développement logiciel dans le milieu de la recherche, il est utile de préciser ce que l'on entend par programme et par logiciel, les deux termes n'étant pas, pour moi, synonymes, et la distinction entre les deux devrait permettre de comprendre l'activité de développement.