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.