samedi 24 novembre 2012

SVN

Le monde du logiciel est au coeur de la transformation du monde, et pas seulement de l'entreprise. On connaît les "anonymous" et l'imagerie de hackers révolutionnaires qu'ils véhiculent. J'aimerais attirer l'attention sur une autre dimension, moins connue, plus paisible : la manière dont les développeurs stockent et partagent le code source des logiciels qu'ils écrivent, et comment leur représentation du monde en est affectée. Il existe plusieurs outils liés à cette pratique, l'un d'entre eux, très utilisé encore même si d'autres vont le remplacer, s'appelle SVN.

Les développeurs parmi vous peuvent vaquer, ils ne vont rien apprendre. Pour les autres, il faut savoir que la production de logiciel s'apparente à l'écriture de textes dans une langue étrangère dont la grammaire serait particulièrement pointilleuse et les lecteurs -comprendre les ordinateurs- particulièrement vifs et stupides à la fois. Comment peut-on être vif et stupide à la fois ? Et bien disons que cela consiste à lire très vite et comprendre très sûrement mais sans avoir aucune distance, aucun second degré, aucune propension à l'ironie, aucun sens de l'ellipse ou du sous-entendu. Notez que cela n'exclu pas une certaine aptitude poétique, plutôt dans la catégorie surréaliste, et une tendance à refuser de comprendre certaines phrases pourtant claires avec une obstination sadique. C'est la raison pour laquelle les textes doivent être repris, modifiés, corrigés à de nombreuses reprises : cent fois sur l'écran l'informaticien remet son ouvrage.

Il faut reconnaître pourtant aux machines un grand sens de l'équité : ils traitent de façon parfaitement impartiale les auteurs, et la même consigne donnée par des personnes différentes sera interprétée de la même façon. Seulement voilà, les textes en question, qu'on appelle communément le code source, sont élaborés presque toujours à plusieurs, et donc en plus des machines, d'autres hommes vont relire le code produit par un auteur donné. Or pour en être confrères, ces relecteurs n'en sont pas moins hommes et ils n'hésiteront pas, eux, à interpréter de travers, à commettre des erreurs dans leur propre partie puis à faire preuve de mauvaise foi vis à vis les uns des autres. Comment identifier clairement les responsabilités ?

C'est là que l'outil SVN intervient. Il va garder la trace de toutes les modifications apportées au code source depuis l'origine des temps, en se souvenant du jour, de l'heure, de la seconde de chacune de ces modifications, mais aussi de leurs auteurs sans aucun doute possible. Ainsi est-il possible, si besoin, de détricoter l'énorme travail collectif que constitue souvent un programme informatique, et de revenir, par exemple, à une version donnée pourvu que l'on en donne la date précise. Grâce à cet outil, les auteurs, sans même parfois ne s'être jamais vus car habitant à des milliers de kilomètres les uns des autres, se reconnaissent et s'estiment : untel écrit vite mais de façon illisible, untel produit peu de code mais d'excellente qualité, tel autre encore a des idées brillantes mais génère du code peu stable. Les réputations se font car la moindre incise sur l'oeuvre collective est signée, comme l'étaient par les tailleurs de pierre chaque bloc du château en construction.

Tel le châtelain, le manager se soucie peu de ces graffiti qui sont invisibles sur le produit fini. Il peut penser que chaque développeur est interchangeable. Il ne voit pas qu'émerge par des outils qui lui sont souvent inconnus une conscience des individus sur leur propre valeur, leur force, leur complémentarité, leur style même. Et plus les oeuvres sont collectives, larges, et plus le phénomène s'accentue : un réseau souterrain et informel relie ces individus, et un champignon sort parfois au grand jour, comme par exemple ici

En résumé, les développeurs sont des artisans, et les outils comme SVN, créés pour des raisons pratiques, leur permettent de revendiquer un statut d'auteur, et de là une connaissance et une reconnaissance de leur oeuvre. Avec internet, leur réseau informel s'élargit et ils prennent conscience de leur importance, ils se parlent directement, en langage humain. Ils sont dangereux. Il faudrait les arrêter mais comment remettre de l'opacité dans le système ? Comment aller effacer ces signatures qui donnent aux mutins potentiels tant d'assurance ? Il faudrait modifier le système, il faudrait demander... à des développeurs. Argh, nous sommes faits !

Oh, j'allais oublier : que signifie SVN ? Ce n'est pas un acronyme, mais un condensé pour "Subversion". Et ça, ça ne s'invente pas...