Proposition pour la création d'une académie du développement logiciel dans un institut de recherche en informatique. Je décris les besoins de l'institut en terme de savoir-faire en développement logiciel d'une part et en quoi consiste la formation pour les développeurs de logiciel d'autre part. Partant de là, je présente ce que devrait être une académie du développement à l'institut.
Il convient de garder à l'esprit que par "développeurs", j'englobe toutes les personnes ayant une activité de développement logiciel, pas uniquement des ingénieurs de développement fonctionnaires.
L'institut a une importante activité de développement logiciel, notamment pour implémenter les travaux de recherches ou fournir des plateformes logicielles permettant des expérimentations.
Par ailleurs, l'une des missions de l'institut est le transfert technologique, et donc notamment faire en sorte qu'une partie de la production logicielle soit utilisable dans la société.
Pour ces raisons, l'institut souhaite développer des logiciels d'une certaine qualité (quoi que cela signifie) et offrant une certaine confiance. Pour des raisons économiques, l'institut souhaite également être efficace en terme de dépenses consacrées à cette activité.
Le développement logiciel est réalisé par une population importante, variée (chercheurs, doctorants, ingénieurs) et dont la présence à long terme n'est pas garantie (personnels permanents ou non, mobilité, ...).
Pour atteindre les objectifs cités plus haut concernant la production logicielle, les développeurs doivent posséder les savoir-faire nécessaires.
De plus, le domaine du développement logiciel, par la multitude des technologies et leur évolution constante, nécessite de fait une évolution constante des savoir-faire des développeurs.
L'institut souhaite donc agir pour garantir la présence de ces savoir-faire afin de supporter dans la durée son activité de développement logiciel.
Une précision de vocabulaire est d'emblée nécessaire.
La formation au sens des services de ressources humaines a une forme précise: un formateur face à des participants qui doivent être formés à la fin de la session. Nous appellerons cette forme "formation-rh".
La formation au sens général dans notre contexte est l'ensemble des processus participant à l'acquisition de connaissances et savoir-faire chez le développeur de logiciel.
La formation-rh n'est donc qu'une forme de formation parmi d'autres.
Cependant, appréhender la formation des développeurs par la seule formation-rh représente une dérive qui occulte les autres processus de formation, pourtant bien plus importants.
Au final, le processus de formation apparaît alors comme discontinu et les savoir-faire sont discrétisés sous le terme de "compétences", compétences dont la définition précise et les grilles qui les utilisent enferment le développeur dans une hétéronomie qu'il subit.
Le développeur est au contraire en perpétuelle formation. Lorqu'il développe, il cherche et trouve des solutions; ces expériences sont une forme de formation. Lire des articles, des documentations, assister à des exposés de retour d'expérience, lire le code d'un autre développeur, discuter avec d'autres développeurs des problèmes qu'ils rencontrent, ... toutes ces autres formes participent de la formation du développeur.
Le développeur, comme l'artisan, apprend en faisant. Il est illusoire de penser qu'en sortant d'une formation-rh il ait acquis un savoir-faire suffisant. Au mieux la formation-rh lui met le pied à l'étrier, le place sur le bon chemin pour débuter dans un domaine.
Au développeur ensuite de faire son chemin, par sa pratique, s'inspirant des pratiques des autres et se les appropriant pour construire son propre savoir-faire, un savoir-faire personnel car résultant du chemin parcouru par le développeur, intégrant son passé, ses expérience, ses rencontres, ses intérêts.
Le développeur doit donc être appréhendé non pas comme une identité munie de compétences, mais au contraire comme un processus apprenant sans cesse, de la même façon qu'il est plus pertinent de s'intéresser au processus d'individuation qu'à l'individu lui-même (cf. Gilbert Simondon), ou au processus d'hominisation plutôt qu'à l'Homme1.
Il s'agit donc de s'appuyer sur la façon dont les développeurs acquièrent et font évoluer leur savoir-faire pour satisfaire les besoins de l'institut en terme de présence continue de ces savoir-faire.
Une académie semble être le "lieu" permettant cette articulation. En effet, une académie est une
Par extension, une académie du développement sera composée de développeurs, i.e. des gens de l'art, transmettant et faisant vivre les usages et savoir-faire de leur discipline.
Une académie implique que ses membres prennent soin des savoir-faire en les transmettant et en les faisant vivre aux travers des générations, ce par différents moyens, notamment des supports écrits mais pas seulement. Ce n'est pas une machine à former mais un milieu de transindividuation.
N'est-ce pas ce que souhaite l'institut ? Construire de nouveaux savoir-faire sur les précédents, de façon à suivre l'évolution des techniques et technologies d'une part, tout en permettant l'intégration de nouveaux développeurs pour remplacer ceux qui partent, sans perdre le savoir-faire associé, d'autre part.
Comme nous l'avons décrit plus haut, les formes d'expériences dont se nourrit le développeur pour continuer de devenir développeur sont variées.
Les supports écrits ne sont qu'une partie, importante, des moyens de transmission de connaissances et savoir-faire. Des gestes, habitudes et démarches des développeurs se transmettent directement en travaillant ensemble ou en regardant les autres faire.
D'autre part, un temps long est nécessaire pour acquérir un savoir-faire: le temps de la pratique, celui de la lecture, celui de la discussion, celui de la réflexion, ...
Or, une académie n'a de sens que si sont réunies les conditions pour que ses membres participent et la fasse vivre. Cela signifie que pour une académie de développement, les développeurs doivent avoir non seulement la possibilité de créer et diffuser des supports écrits mais également le temps nécessaire pour les autres moyens de partage.
Ces différentes activités doivent donc être reconnues, encouragées et valorisées en tant que soin apporté à l'activité globale de développement logiciel à l'institut. Cela signifie qu'on ne doit pas sacrifier la transmission au profit de la production logicielle, car la transmission est une condition nécessaire à une production logicielle de qualité sur la durée.
Beaucoup de développeurs de l'institut ont déjà cette activité de partage, via des exposés, des conseils, des discussions, ...
Cependant, cette activité n'est pas vraiment encouragée par rapport à l'activité de développement elle-même. Il n'est pas rare de culpabiliser de préparer une formation ou un exposé: est-ce bien ce qu'on attend de moi ? On ne se sent pas non plus forcément un "expert" dans son domaine, et donc pas légitime pour conseiller les autres.
D'autre part, l'information sur les différentes actions organisées doit circuler, ce qui nécessite la mise en place d'outils et formats pour permettre à chacun d'une part de publier cette information et d'autre part de savoir ce qui est organisé, sur quel thème, où, quand, etc., avec la possibilité de filtrer selon ses centres d'intérêts s'il lé désire.
J'ai bien conscience que cette orientation ne va pas dans le sens des idées de rationalisation, optimisation, ressources humaines et toutes ces idées mortifères qui nous enferment et aboutissent au contraire des objectifs visés. Je pense que cette idée d'académie est l'occasion de rompre avec cette vision déhumanisante de nos métiers.