swcraftmanship

Les systèmes techniques doivent en permanence être corrélés avec les systèmes sociaux. Par système social il faut entendre tout ce qui relève des organisations collectives : un système politique, un système de soin, d’éducation, une organisation du droit, du commerce, du travail, etc.

L’articulation entre les systèmes sociaux et les systèmes techniques est celle qu’a mis en évidence Bertrand Gille en expliquant que la dynamique d’évolution des systèmes techniques était à l’origine d’un désajustement entre système technique et système social. Ce qui conduit inévitablement a des périodes de troubles et de crises.

Comme les évolutions technologiques sont devenues chroniques et quotidienne, nous sommes dans un désajustement systémique.

Mais il ne faudrait pas croire pour autant que les systèmes sociaux ne sont que des systèmes passifs qui se contentent de réagir face à l’évolution du système technique.

Si l’on regarde les projets informatiques en tant qu’ils sont la mise en oeuvre (on parle d’implémentation) d’un système technique au sein de systèmes sociaux on peut constater ce désajustement, en voici quelques exemples :

  • le découpage en mode projet (build) et maintenance (run) est un découpage qui ne correspond pas au système technique lui-même : il est par exemple surdéterminé par les logiques comptables (amortissement, immobilisation, ou encore Opex versus Capex).
  • Les systèmes juridiques perturbent également le développement des produits (“on ne peut pas faire çà car c’est illégal” est une expression qui devient récurrente dès que l’on touche aux données )
  • Autre aspect significatif : la confusion régulière entre le projet et le produit (surtout dans les SSII où l’on ne connaît que les projets, jamais vraiment les produits) : ainsi les méthodes de projets peuvent aller à l’encontre du produit technique. C’est typiquement le sens des démarches Agiles que de travailler différemment pour ne pas que le mode projet tue le système technique (le produit) dans l’oeuf.

 Dans chacun des cas ci-dessus, le système technique n’est pas un rouleau compresseur qui suit son bonhomme de chemin en toute indépendance et auxquels les systèmes sociaux – c’est à dire les organisations – devraient se réajuster. Ces exemples montrent que les systèmes sociaux (systèmes comptables, juridiques, commerciaux, modes projets, etc.) peuvent également jouer une partition qui va à l’encontre de ceux qui sont au plus près du mode d’existence des objets techniques : ceux qui les conçoivent fonctionnellement et techniquement.

Le mouvement Agile, notamment celui autour de l’ eXtreme Programming,  est le fruit d’une volonté de libération de ceux qui conçoivent et développent les logiciels. Mais libération de quoi ? Libération de l’emprise des systèmes sociaux sur le développement du système technique. En ce sens, c’est un mouvement qui promeut l’idée d’un mode d’existence propre des systèmes techniques. Car prendre à rebours les logiques propres du système technique, notamment à cause de l’influence de certains système sociaux, c’est d’une part la promesse d’un logiciel qui ne peut pas fonctionner, et d’autre part c’est la garantie pour les développeurs de travailler dans de très mauvaises conditions.

En oeuvrant pour une plus grande qualité logicielle on oeuvre en même temps pour de meilleures conditions de travail (et, pour être plus précis, pour que le travail ne devienne pas un simple emploi)  : la défense du logiciel, et d’une certaine idée de celui-ci, passe par une défense des développeurs qui ne veulent pas être prolétarisés (cf. La prolétarisation dans les sociétés informatiques). “Software Craftsmanship” et mode d’existence propre des systèmes techniques vont de pair.