Ce document se veut être une contribution à une réflexion sur le métier d'"ingénieur" de développement logiciel dans le milieu de la recherche, plus précisément ici un institut public de recherche en informatique.
Il s'agit d'un point de vue personnel sur mon métier.
Ce document ne couvre pas toutes mes activités mais détaille pour l'instant la seule partie "développement de logiciel", la plus importante en terme de temps passé.

Récemment, lors d'une session randori d'un coding dojo, le sujet était la lecture d'un texte pour construire un noyau de transition markovien afin de générer un autre texte qui ait l'air relativement correct, en tout cas au niveau des mots mis côte à côte. La question a été soulevée de savoir comment tester le générateur développé.

Dans "Le programme est un logiciel punk", je différenciais un logiciel d'un programme par le fait qu'un logiciel est muni d'un potentiel d'évolution, d'un avenir. Ce potentiel est orienté selon une ou plusieurs directions. Un logiciel est donc logiciel selon certaines directions d'évolution, et est par ailleurs programme, c'est-à-dire avec un faible potentiel d'évolution, selon d'autres directions.
Voyons ce qui donne ce potentiel d'évolution.

Je viens de regarder avec un grand intérêt la conférence donnée par Jean-Claude Guédon au séminaire d'Alembert le 14 décembre dernier.
Suite à cela, je me pose la question suivante, peut-être naïve: La recherche a-t-elle encore besoins de revues ? Je m''explique. J'accueillerai volontiers les remarques pour me corriger.

Dans Ce que sait la main de Richard Sennett, l'auteur rappelle que l'apprentissage passe par la répétition des gestes.

Le discours sur l'excellence dans la recherche française a fait bien des dégâts, véritable "plan social de la recherche" comme cela a été dit. A tel point que les personnels, notamment les chercheurs, s'interrogent à juste titre sur l'attitude de leurs directions: sont-elles complices ? hypocrites ? ne se rendent-elles pas compte des effets des politiques qu'elles mettent en oeuvre, alors qu'elle sont issues en partie du milieu de la recherche ?
J'avance ici une hypothèse qui peut paraître provocante, pour essayer de comprendre.

J'ai découvert en Novembre dernier seulement le Manifesto for software craftsmanship qui revendique l'aspect artisanal de l'activité de développement logiciel.

Pour faire suite à "Une forge, des forges... ou autre chose ?", prenons l'image de l'artisan menuisier et son atelier.

Dans "Une forge, des forges... ou autre chose ?" et "Slow dev ?", j'évoquais respectivement le phénomène de prolétarisation du développeur par des outils imposés et la prescription de rythme par les principes de base des méthodes agiles.

La question des forges de développement logiciel agite pas mal les différents établissement de l'enseignement supérieur et de la recherche (ESR). Certains voudraient une forge pour leur établissement, d'autres plutôt une forge nationale, ...
Pourtant, il me semble qu'une forge unique, qu'elle soit nationale ou par établissement, est une mauvaise réponse aux besoins divers de la communauté des développeurs.

Nous sommes en guerre mondiale économique, bien que cette guerre n'ait fait l'objet d'aucun débat dans les représentations citoyennes. Nous sommes donc tenus à un effort de guerre qui ne dit pas son nom, et qui absorde et met en péril notre avenir tel un tourbillon. Je propose de montrer quelques parallèles entre guerre "classique" et la guerre économique actuelle.

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.
