Article écrit par Cédric Brancourt
Libertaire, Anarchiste, Utopiste, ZADiste, Étudiant (68) … C’est la saison ! Quelle étiquette coller à un système dessiné pour privilégier l’autonomie et l’indépendance de ses composants ?
C’est une promenade philosophique, sans conclusion, qui fait le parallèle entre une « Utopie » sociale et le design d’un système.
Proudhonien ?
Ces deux dernières années mes recherches documentaires professionnelles ont porté principalement sur la composition de systèmes distribués, plus particulièrement sur la capacité à diviser ces systèmes en sous-systèmes découplés.
L’objectif est de devenir plus efficace sur des systèmes dont l’éventail fonctionnel est large, et donc d’éviter le couplage entre les différentes fonctionnalités offertes par le système.
Ces recherches ont fait écho à certaines de mes lectures sur les possibles alternatives de société et plus particulièrement la pensée de Pierre Joseph Proudhon.
Aujourd’hui quand je regarde ces systèmes avec une interprétation personnelle, ils présentent en effet des qualités et similitudes avec les aspirations de P.J. Proudhon.
De l’Utopie idéaliste ?
On peut se laisser porter par le courant, nager à contre courant, mais aussi rejoindre la berge et continuer à pied ! Cette dernière option n’est pas envisagée quand on idéalise, mais s’avère bien plus pratique.
Dans son genre, Proudhon n’était pas un idéaliste mais un pragmatique. Il donnait dans la proposition concrète. Une proposition qui tendait vers un idéal mais qui était faite aussi de compromis afin de la rendre pratique. Quitte à se contredire ! Ce qui lui a été reproché parfois.
Parmi l’énumération nombreuse des droits de l’homme que la sagesse du XIXe siècle recommence si souvent et si complaisamment, deux assez importants ont été oubliés, qui sont le droit de se contredire et le droit de s’en aller. — Charles Baudelaire
Dans la conception du système découplé il n’est point nécessaire de dogmatiser ni de réaliser l’idéal dans son intégralité. C’est une direction à suivre plus qu’un objectif à atteindre. Une force qui s’opère comme un contre-pouvoir aux processus qui sont employés par réflexe pavlovien.
L’ordre sans le pouvoir
Le pouvoir s’exerce sur des sujets, d’autres personnes ou entités. Quand il s’exerce sur soi, j’imagine qu’il doit s’appeler l’indépendance.
Dans notre système découplé l’abolition du pouvoir autoritaire peut se traduire par un passage du mode de coopération de l’orchestration à la chorégraphie.
Il n’y a plus de relation impérative entre les composants du système, mais une relation réactive, comme le montrent les études plus formelles.
La notion de contrôle de flux assurée par une cascade d’orchestrateurs disparaît au profit de l’apparition de plusieurs acteurs qui agissent de concert quand on leur donne la réplique.
Si le résultat de loin ressemble à un brouhaha, localement il est loin de brouiller l’écoute.
La décentralisation
En passant du mode orchestration au mode chorégraphie, en plus de nous affranchir de la notion de contrôle nous décentralisons la décision pour la rendre locale.
Chaque service est en charge d’opérer sur son strict périmètre de responsabilité, ses propres données. Aucun autre service ne peut faire d’ingérence dans ces dernières, ni produire d’effet de bord non maîtrisé. Il ne peut y avoir d’effets de bords sur d’autres services.
Autrement dit les décisions sont prises localement et ont un impact direct local uniquement.
La commune est par son essence… un être souverain. En cette qualité, la commune a le droit de se gouverner elle-même, de s’administrer, de s’imposer des taxes, de disposer de ses propriétés et de ses revenus, de créer pour sa jeunesse des écoles, d’y nommer des professeurs, de faire sa police, d’avoir sa gendarmerie, et sa garde civique ; de nommer ses juges ; d’avoir ses journaux, ses réunions, ses sociétés particulières, ses entrepôts, sa mercuriale, sa banque, etc. La commune prend des arrêtés, rend des ordonnances : qui empêche qu’elle n’aille jusqu’à se donner des lois ? Elle a son Église, son culte, son clergé, librement élus ; elle discute publiquement, en conseil municipal, dans ses journaux ou ses cercles, tout ce qui touche à ses intérêts ou excite son opinion… Il n’y a point de milieu : la commune sera souveraine ou succursale, tout ou rien — P.J. Proudhon
Le fédéralisme
Toutes mes idées économiques… peuvent se résumer en ces trois mots : Fédération agricole industrielle ; toutes mes vues politiques se réduisent à une formule semblable : Fédération politique ou décentralisation… Toutes mes espérances actuelles et futures sont exprimées par ce troisième terme, corollaire des deux autres : Fédération progressive — P.J. Proudhon
Pour que les systèmes puissent coopérer, ils doivent adhérer à des principes communs. L’adhésion d’un service à un système est une initiative qui est gérée dans son périmètre de décision.
En souscrivant à un bus d’événements commun, les services forment une fédération.
Le contrat de fédération, dont l’essence est de réserver toujours plus aux citoyens qu’à l’État, aux autorités municipales et provinciales plus qu’à l’autorité centrale, pouvait seul nous mettre sur le chemin de la vérité. — P.J. Proudhon
Les échanges au sein de cette fédération sont régulés par un contrat. C’est la clé de voûte du système et de la fédération.
La définition des APIs et des formats de messages échangés de manière formelle et concrète permet aux composants du système de s’intégrer sans heurts. Empaqueté et distribué, notre contrat peut être utilisé par les tests d’intégration des services qui y souscrivent pour assurer la cohésion de l’ensemble.
Voila l’aspect fédéraliste du système. Son rôle est d’assurer la composition d’entités autonomes afin de pouvoir achever collectivement des projets plus grands.
La propriété
Chaque service est seul propriétaire et exploitant de ses données internes. Il peut ainsi garantir sa cohérence interne et son autonomie.
Dans un système composé de Self-Contained Systems, dont l’intégration repose sur un flux d’événements chaque système maintient sa propre version d’une donnée plus globale.
Le flux d’événements est partagé entre les différents services, chacun constitue son jeu de données local à partir de ce flux.
La propriété dans ce cas est non privative.
Le fruit du travail d’un service, ce sont quelques effets de bords sur la donnée locale, mais surtout un nouvel événement. Événement qui sera exploité par quantité d’autres services pour en produire de nouveaux.
Échanger le fruit du travail tout en mutualisant les ressources, ça laisserait rêveur plus d’un communard !
Une majorité de minorités
Un État de 26 millions d’âmes, comme serait l’Italie, est un État dans lequel toutes les fiertés provinciales et municipales sont confisquées au profit d’une puissance supérieure, qui les gouvernent. Là, toute localité doit se taire, l’esprit de clocher, faire silence : hors le jour des élections, dans lequel le citoyen manifeste sa souveraineté par un nom propre écrit sur un bulletin, la collectivité est absorbée dans le pouvoir central… La fusion, en un mot, c’est-à-dire l’anéantissement des nationalités particulières, où vivent et se distinguent les citoyens, en une nationalité abstraite où l’on ne respire ni ne se connaît plus : voilà l’unité… Et qui profite de ce régime d’unité ? Le peuple ? Non, les classes supérieures. — P.J. Proudhon
Puisque notre système est composé d’unités indépendantes dont les choix d’implémentation se font localement. Il est possible de faire cohabiter un grand nombre de services faisant tous appel à des technologies différentes. Permettant à chaque service d’exploiter les technologies qui répondent le mieux à son périmètre de responsabilités. La seule contrainte étant de respecter le contrat.
Un système qui valorise la diversité plutôt que de cacher les différences derrière un ordre dicté à un niveau supérieur.
Liberté, Égalité, Fraternité ou choucroute ?
Au témoignage de l’histoire, la fraternité, but suprême des révolutions, ne s’impose pas : elle a pour condition la liberté d’abord, l’égalité après. Comme si la justice nous disait à tous : Hommes, soyez libres ; citoyens, devenez égaux, et puis, frères, embrassez-vous. — P.J. Proudhon
Ce qui est vrai pour le système est vrai pour l’équipe qui le développe.
Organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations. — M. Conway
Le système fonctionne plutôt bien dans des équipes autogérées.
Puisque chaque membre est autonome dans son domaine, Il est indispensable que chacun ait une bonne connaissance de l’objectif global et final. Pour que chacun ait cette maitrise et cette envie positive, ils doivent être impliqués dès le début du projet.
L’attachement au respect du contrat (API, conventions, guidelines…), est un autre pilier qui doit faire l’objet d’une grande attention. C’est ce qui garantit que le travail fourni par chacun peut s’intégrer correctement avec celui du voisin.
Finalement le ciment du tout doit être la fraternité bienveillante. Se serrer les coudes, assister, écouter, concéder, concilier et réconcilier.
Le système de l’humanité ne sera connu qu’à la fin de l’humanité. — P.J. Proudhon