Faire de la doc utilisateur, c'est souvent considéré comme une tâche ingrate, chiante à faire. Pour les utilisateurs, pas sûr que ça soit mieux, lire de la doc n'est pas la tâche la plus épanouissante du monde ...
Est-ce qu'on ne pourrait pas rendre l'écriture et la lecture un peu plus fun.
Je pense que tout le monde connait ça, que ça soit pour des tests unitaires ou pour donner des exemples d'appel à une API, on a besoin d'un dataset pour illustrer nos use cases.
On connait le bon vieux John Doe, le Pierre Dupont ou encore les jeux de mots douteux type Monsieur / Madame genre Harry Covert ou autre parfois à la limite de la blague de tonton. Ça dépanne, mais c'est perfectible.
Sur notre projet, on gère des données de personnes, de foyers et de structures juridiques, on devait rédiger de la doc sur l'utilisation de nos APIs et on se disait qu'on pourrait utiliser des personnages de série pour illustrer nos cas métiers.
Après quelques échanges pour savoir si on devait prendre les personnes de game of throne ou breaking bad, finalement, on est parti sur les Simpsons.
La doc était plutôt cool à écrire, c'est très rigolo de choisir les bons persos pour illustrer les cas et c'est rigolo de mettre certains persos en situation.
Un des avantages des Simpsons, c'est que tout le monde connait ! Ça rend donc les cas documentés facilement compréhensibles.
En plus il y a tellement des personnages, de lieux etc que c'est assez simple de trouver des cas pour toutes les situations !
Comme exemple, voici une capture de l'intro d'une doc sur la gestion des autoentrepreneurs :
Voilà, c'était tout, j'espère que ça vous donnera envie et des idées pour vos docs à écrire !
J'ai écouté pas mal de punk dans les années 90 / 2000, essentiellement du "punk à roulette", très présent comme bande son des vidéos de bodyboard et de skate.
Même si l'anarchisme est souvent associé au punk, ça n'est pas vraiment le cas pour les groupes de punk californiens.
On est plus sûr de la provocation à base de "je montre mon cul" que des revendications politiques.
Pourtant, il y a bien quelque chose qui unit beaucoup de groupes de punk et c'est le Do It Yourself.
Fanzine, la contraction de "fan" et de "magazine" est une publication élaborée par des passionnés. On y retrouve des chroniques d'albums, des reviews de concert ou n'importe quoi d'autre.
Ils sont auto-édités à base de photocopies, vendu lors des concerts ou par courrier.
Voici quelques fanzines que j'avais achetés et que j'ai retrouvés à la maison :
Il existe même à Poitier une Fanzinothèque maintenant !
On retrouve beaucoup de labels indépendants dans le punk qui fonctionnent souvent en petits commités.
Ces labels indépendants garantissent aux groupes une totale liberté de composition, de cadence, etc. Contrairement aux majors pour lesquels le groupe est vu comme un produit.
De la même manière, il existe des distros indépendantes qui s'illustre généralement par un gars dans son garage qui vend vinyles, CD ou cassette en VPC.
Qui dit musique, dit concert. Dans le punk, on retrouve les circuits classiques à travers les salles de concerts, mais également des lieux altérnatifs.
Évidements, on retrouve les bars, mais également des squats, des lieux improvisés, des champs, etc.
Dans les concerts, rien de conventionnel, il m'est par exemple arrivé de jouer le prix de mon entrée aux dés.
Dans les années 2000, j'avais vu le groupe sleeping in gethsemane à Nantes au fouloir qui était un squat.
Une maison habitée par des squatteurs, avec une véranda et une piscine qui servait de salle de concert et les groupes jouaient dans la piscine.
À travers les fanzines, les distros et les concerts, transparait un vent de libertés de prises d'initiatives.
Ça n'est pas toujours beau, pas toujours bien fait, mais ça a au moins le luxe d'exister. C'est fait avec le cœur et c'est déjà pas mal.
Dans le punk, on retrouve de tout, y compris des groupes cathos ! On va laisser ceux-là de côté pour se concentrer sur ceux qui nous intéressent.
En plus d'un goût certain pour la provocation, on retrouve pour certains groupes des prises de position plus marquées sur la politique.
Il existe le mouvement straight edge dans le punk et le hardcore.
Dans ce mouvement, ceux qui y adhérent ne consomment pas de drogues, ni alcool, ont des relations sexuelles dans les relations sérieuses et le véganisme est souvent mis en avant.
Parmi les groupes que j'ai écoutés, on peut citer Refused, AFI, Propagandhi ou encore Raein et Yage qui sont des portes paroles de ce mouvement.
Certains groupes comme Propagandhi vont encore plus loins, Anticapitaliste, Féministe, Végan, Pro LGBTQ+ etc, ils défendent les libertés de chacun et font la promotion d'auteurs, d'historiens et de médias activistes comme à l'époque Howard Zinn, Noam Chomsky, etc.
Est-ce qu'on ne se rapprocherait pas un peu de l'anarchisme ?
Alors que je bouinais tranquillement sur l'internet, youtube me suggère une vidéo "Ni dieu, Ni maitres" sur l'histoire de l'anarchisme.
Il m'en fallait pas plus pour creuser un peu plus le sujet.
L'anarchisme tente de concilier liberté et égalité : “Pleine liberté sans égalité, c'est la jungle, Pleine égalité sans liberté, c'est la prison“.
L'anarchisme né durant la révolution industrielle du 19e siecle. Alors que tout un tas d'avancées sont faites dans différents domaines (comme la médecine), les travailleurs des usines eux vivent dans des conditions désastreuses.
Ils travaillent tous les jours, 12 heures par jour, et survivent dans la misère, enfant compris.
Dans ce context, Proudhon, le théoricien de l'anarchisme sera le premier à se réclamer anarchiste en utilisant ce terme de façon positive.
Il définit 3 formes de dominations :
l'état : par la force publique
le capitalisme : par la violence sociale
le clergé : par ces règles sociales
Il souhaite la destruction de ces 3 formes de pouvoir, sans pour autant recourir à la violence.
"L'anarchie, c'est l'ordre sans le pouvoir"
Il préconise de nouvelles organisations gérées directement par le peuple sous une forme mutualiste en commençant par les banques.
Paradoxalement, il est aussi sexiste et pour l'esclavage, comme quoi, on peut être en avance sur certaines idées tout en étant un gros con.
Contrairement au communisme, qui prone une forme de pouvoir centralisé, les anarchistes sont contre et veulent installer un communisme libertaire sans état.
Bakounine, une figure de l'anarchisme dira :
“Prenez le plus grand révolutionnaire, mettez le sur le trône de toutes les Russies, vous en ferez un tyran en quelques années”
L'anarchisme est essentiellement une histoire de luttes. Pour faire court, on va rencontrer deux formes de luttes principales : la grève générale et l'action directe / propagande par le fait.
La grève générale, on connait bien, on arrête de travailler, on se rassemble, on manifeste, etc. L'idée est assez simple, en bloquant la production, on fait pression sur le patronat et l'état pour obtenir des avancées sociales.
Avec la propagande par le fait, le but est de faire un coup d'éclat, une action spectaculaire pour attirer l'attention et espérer déclencher quelque chose comme une insurrection par exemple. Dans ce mode d'action, on retrouve les attentats, notamment à la bombe.
Si on caricature un peu, on retrouve une sorte d'altérnance entre le mode grève générale et le mode action directe. La grève générale a tendance à perdre de son efficacité et certains vont se radicaliser pour gagner en impact. À l'inverse les coups d'éclat et attentats peuvent vite générer une incompréhension et un rejet de la population, ce qui va pousser à revenir vers des actions plus collectives.
Comme l'anarchisme est essentiellement une histoire de luttes, on peut se demander si ça marche ou si, il existe des exemples concrets de mise en œuvre.
Les communes sont un mouvement insurrectionnel contre le gouvernement de versailles en 1870-1871.
Les communards prennent la ville et mettent en place quelques avancées intéressantes pour l'époque.
La commune de Paris a été en avance sur le droit des femmes avec entre autre l'abolition de la prostitution, l'égalité salariale, facilitation du divorce. Le temps manque pour instaurer le droit de vote des femmes.
Probablement un des exemples le plus spéctaculaire de mise en œuvre de l'anarchisme à grande échelle.
Alors que le front populaire vient de gagner les élections en 1936, un coup d'état militaire est organisé par Franco. Des bastions de résistance se forment, notamment en Catalogne et en Aragon.
En catalogne, les anarchistes prennent le contrôle de la région et mettent en place une organisation anarchiste de la société.
Des villes entières sont prises et deviennent des terreaux d'expérimentation.
Quelques mesures et actions en vrac :
Abolition de l’argent et salaire familiale en fonction des besoins
75% des entreprises autogérées en catalogne : Cinema, théatre, boulangeries, tramway, taxis, bus, hotel, restaurant, textiles, cuir, petits commerces, petite et grandes entreprises etc, gérées de façon collective sans baisse de rendement
En 2010, suite à un projet d'aéroport à Notre-dames des landes, des opposants au projet s'installent sur le site pour empêcher les travaux.
Les zaddistes (zone à défendre) vont occuper la zone jusqu'en 2018, date à laquelle l'état décide d'évacuer la zone par la force.
Pendant 8 ans, les zadistes vont expérimenter différentes formes d'organisations collectives, agricoles, culturelles, etc.
Les habitats sont autoconstruits, notamment en torchis. Niveau agriculture, on va retrouver de l'élevage, de l'apiculture et du maraichage.
À noter qu'il n'y a aucun organe de gouvernance.
La communauté met en place un système de justice le "cycle des douze" pour gérer les conflits internes, avec un système de tirage au sort.
Loin du bordel et de la loi du plus fort l'anarchisme se traduit plutôt par de l'auto gestion, de la mise en commun et de l'éducation populaire.
La philosophie libertaire pourrait paraître très individualiste mais, lorsqu'on fonctionne sans hiérarchie, on se rend compte que la coopération et l'entraide sont indispensables.
Faisons un bon dans le temps, dans les années 2010.
En tant que développeur, nos perspectives d'évolution, c'est de devenir analyste puis chef de projet, ensuite manager.
Le développeur est considéré comme un pisseur de code qui va traduire les spécifications en code executable.
Le développement est considéré comme un coût, l'externalisation en mode forfait est la norme et ça peut même aller jusqu'à de l'offshoring.
Il n'est pas rare d'avoir des frameworks d'entreprise imposés et bien rigides et les éditeurs a license (oracle, DB2 etc) sont très implantés.
Côté méthodologie, on est sur du bon vieux cycle en V en mode tunnel, tout va bien.
Le moral des développeurs est au plus bas, on peut sentir la révolte gronder.
Dans la situation décrite plus haut, on peut identifier une liste non exhaustive de sources d'oppression :
Les deadline : elles poussent à la surproduction, au code de mauvaise qualité et à la dette technique
La hiérarchie, manager ou RH : condition de travail dégradée, pression constante, manque de reconnaissance etc
Les process : lourdeurs, rigides, inadaptés au contexte réel
Les frameworks / outils imposés : manque de flexibilité, inadéquation aux besoins réels etc
Forfaits, les centres de services : aller / retour incessant entre le client et le prestataire, perte de sens etc
Les licences propriétaires, les éditeurs : coût, manque de contrôle, dépendance aux éditeurs etc
Et bien d'autres...
Tous ces aspects nuisent au travail, les développeurs sont déresponsabilisés, le travail perd du sens. Les injonctions contradictoires sont la norme.
L'entreprise veut être productive, mais les employés sont sans cesse génés dans leur travail.
Dans les années 2010, c'est l'emérgence des conférences. La première édition de Devoxx France a lieu en 2012, on voit des JUG se créer un peu partout en France.
Un discours de rebellion arrive dans les conférences et certains speakers poussent les développeurs à la désobéissance, en les incitant à faire des tests, du code propre, etc.
Bref : de la désobéissance par le craft !
Le logo du podcast "Artisan Développeur" de Benoit Gantaume est assez évocateur
Un autre aspect qui va bousculer l'ordre établit, mais d'une façon un peu différente, c'est l'arrivée du noSql.
Le noSql et surtout les bases schemaless vont séduire les développeurs par leur simplicité d'usage, mais aussi parce qu'en reprenant la main sur la définition du schéma, on s'affranchit de la lourdeur des intéractions qui peuvent exister à cette époque entre les devs et les DBAs.
Pas mal de solutions noSql sont open source, il est donc assez simple de les tester et de les déployer (souvent du shadow IT).
La main mise des éditeurs de bases relationnelles est remise en cause et les bases opens sources noSql vont en profiter pour gagner du terrain.
PostgreSQL va également en profiter pour s'imposer comme une alternative crédible aux bases propriétaires.
Les temps changent, les pratiques de dév s'améliorent, le métier de dév devient plus valorisé et l'open source monte en puissance.
En plus de l'artisanat logiciel, on voit arriver à peu près en même temps "la mode" des méthodes agiles.
La ou avec le cycle en V, on part en mode autoroute, avec de grandes chances de se planter en éxplosant le budget,
ou bien ne livrant pas à temps ou encore en livrant un produit non conforme,
et peut-être même les 3 à la fois, les méthodes agiles promettent de remettre le client et ses besoins au centre du projet.
Mais l'agilité ça n'est pas seulement de la gestion de projet, c'est aussi une façon différente de voir son équipe et les interactions entre les membres.
Voici quelques verbatims du manifeste agile :
Les individus et leurs interactions plus que les processus et les outils
La réponse au changement plus que le suivi d'un plan
Des solutions opérationnelles plus qu'une documentation exhaustive
Construire des projets autour d'individus motivés, donnez-leur l'environnement et le soutien dont ils ont besoin, et faites-leur confiance pour accomplir le travail
Les meilleures architectures, spécifications et conceptions émergent d'équipes auto-organisées
On commence à se rapprocher de valeurs anarchistes non ?
Au niveau des grosses entreprises, des concepts novateurs comme l'entreprise libérée ainsi que l'holacratie font leur apparition.
La définition wikipédia de l'entreprise libérée est la suivante :
Le terme entreprise libérée désigne « une forme organisationnelle dans laquelle les salariés sont totalement libres et responsables dans les actions qu'ils jugent bon — eux et non leur patron — d'entreprendre. »
Ici, on n'est pas encore au niveau des usines autogérées d'Espagne car, cette organisation est imposée par les patrons, cependant des espaces de liberté existent pour les employés, et c'est quand même un point intéressant.
On regrettera quand même le retour arrière de certaines boites comme Castorama qui finalement n'ont pas réussi à maintenir ce modèle.
Avec l'engouement pour l'agilité, il fallait bien que ça arrive, le framework SAFe (Scaled Agile Framework) est né. Anti agile au possible, il séduira les grosses entreprises en quête de normalisation et de contrôle.
Contrairement à SAFe, le modèle SPOTIFY est un modèle d'organisation qui met en avant l'auto-organisation des équipes. Il n'impose pas de process rigides, mais propose des principes d'organisation.
L'idée est d'avoir des tribus qui sont responsables d'un domaine métier. Dans ces tribus, on retrouve des squads qui sont des équipes responsables de produits.
On doit retrouver dans la squad toutes les compétences nécessaires pour livrer le produit : dev, ops, BA, UX, PO, etc.
Il existe également les guildes qui sont des communautés de pratiques transverses aux squads et tribus.
À la MAIF, nous avons adopté ce modèle d'organisation depuis plusieurs années maintenant.
On était organisé en silo technique auparavant DBA, middleware, tibco, cobol, JAVA... et il fallait faire travailler tout le monde ensemble pour faire évoluer une fonctionnalité. Difficile dans ce contexte de livrer rapidement de nouvelles fonctionnalités, le time to market en prend pour son grade.
Autre aspect de l'organisation à la MAIF qui n'est probablement pas dans le modèle SPOTIFY, c'est le fait que rattachement hiérarchique soit différent du rattachement opérationnel.
Mon chef qui est le chef des leads developpeurs, ne travail pas de mon équipe produit.
Ceci a pour conséquence qu'il n'existe pas de rapport hiérarchique entre les membres de l'équipe. Chacun remplit sa fonction et les décisions sont prises collectivement ou portées par un rôle.
C'est bien d'avoir une organisation qui favorise l'auto-organisation dans l'équipe, mais pour que ça fonctionne, il faut que les équipes aient un maximum d'autonomie.
L'autonomie ça n'est pas uniquement d'avoir tous les profils dans l'équipe, c'est aussi limiter au maximum les couplages, qu'ils soient techniques ou organisationnels.
Le DDD (Domain Driven Design) est une approche qui permet à travers le concept de context borné (Bounded Context) de découper le système en plusieurs sous-systèmes les plus indépendants possibles.
Il existe plusieurs outils et ateliers pour définir les Bounded Contexts, très bien décrits sur cette page
Un des outils que j'apprécie particulièrement, c'est le context mapping.
Il permet de mettre en évidence les dépendances et les couplages qui peuvent exister entre plusieurs domaines qu'ils soient au niveau technique ou au niveau des interactions entre équipes.
À partir de ce mapping, on peut identifier les points de friction et travailler à les réduire.
Pour maximiser la liberté et l'autonomie des équipes, il faut faire la chasse à tous les couplages.
Il faut challenger l'impact des process
Il faut challenger l'impact des frameworks
Il faut challenger l'impact des normes
Il faut challenger l'impact des communs
etc
Il n'est pas inutile de faire de la mise en commun, cependant les mises en commun doivent être réfléchies et conçues pour minimiser au maximum les adhérences.
Si on met tout ça bout à bout, nous avons une équipe autonome qui gère son/ses produits. Comme vu plus tôt, tous les métiers sont représentés :
product owner
développeurs / lead développeurs
business analyst
ops
...
Il n'existe pas de rapports hiérarchiques entre les membres de l'équipe, chacun contribue à la bonne réalisation du produit et chacun doit apprendre à collaborer avec les autres.
La prise de decision est collective, les pratiques se construisent ensemble et évoluent en permanence.
Pour conserver au maximum sa liberté d'agir et sa capacité à délivrer, l'équipe fait la chasse aux couplages, qu'ils soient techniques ou organisationnelles.
Le savoir est partagé, les débutants doivent pouvoir monter en compétence et être intégré dans l'équipe.
Pour commencer, il faut trouver une boite qui accépte ce genre de fonctionnement et même quand notre employeur offre ces espaces de libertés,
il faut que l'équipe s'organise. Comme on a tendance à reproduire ce qu'on connait, certains individus vont vite chercher à jouer le rôle de chef.
Ensuite, il va y avoir certains challenges à relever.
Les équipes étant composées de profils divers et variés, il y aura forcément des conflits.
Entre ceux qui veulent aller vite, ceux qui veulent que tout soit parfait, ceux qui ont besoin de sécurité, ceux qui veulent des process et du cadre etc.
Je vous invite à voir la présentation d'Anne-Laure Gros qui montre comment l'équipe devient meilleure quand elle est variée.
Le challenge de l'équipe sera de prendre en compte les besoins et aspiration de chacun et de trouver des compromis.
Une équipe sans chef n'est pas totalement désorganisée. L'équipe est organisée par spécialisation, chaque personne de l'équipe est déjà spécialisée grâce à son rôle (dev, ba, ops, etc).
Mais je pense qu'on peut aller plus loins ! Partager correctement les informations, spécifier ensemble, prendre des decisions collectives, etc. Il y a du travail !
J'ai parcouru la chaine fouloscopie dans l'espoir de trouver des réponses, mais malheureusement même si c'est très intéressant, ce qui est montré s'applique à des groupes plus grands que nos équipes produit.
Un ex-collègue de promo d'école d'ingé me partageait l'effondrement d'une personne qui avait adoré travailler dans une équipe auto gérée et qui a très, très mal vécu de changer d'équipe et de revenir dans un fonctionnement classique.
Et oui, ce sont aussi des choses qui arrivent.
C'est connu, à chaque fois qu'un personne arrive ou qu'une personne part, l'équipe change et devra se réadapter.
Mais un changement n'est pas forcément négatif, il faudra profiter de ce nouveau membre pour amener un peu de fraicheur dans les pratiques, challenger la documentation etc.
Vous l'aurez compris, cet article, c'est une façon un peu fun de parler de punk, d'agilité et d'intelligence collective.
Est-ce qu'une équipe autogérée c'est de l'anarchie ? Probablement pas !
Ceci étant dit, on peut facilement faire des ponts entre des valeurs anarchistes et des valeurs de l'agilité.
L'agilité ça n'est pas seulement des sprints et un package de rituels à respecter, c'est avant tout de mettre le client au centre et laisser travailler l'équipe.
En plus des besoins du client, le produit doit tourner en prod (c'est le minimum), être fiable (non buggé) et évolutif (time to market).
On s'en fout de savoir si la messe est en latin ou si on a bien réspecté le sprint poker ou je ne sais quel autre rituel, laissons l'équipe et l'intelligence collective faire son travail !
Ceux qui se sentent autonome dans leur travail et qui font face au micro management un peu trop zèlé, se retrouveront très certainement dans un modèle d'organisation plus anarchiste.
Malheureusement, ces environnements, ne sont pas si courant et méritent d'être défendu quand ils existent.