Une passe à l’avant ! Le droit de faire une et une seule passe à l’avant ! C’est à partir de cette simple règle que le football américain s’est définitivement démarqué du rugby. De là, il fallut tout revoir. Mettre un casque, changer la taille du ballon, ajouter des protections, inventer de nouveaux postes, définir de nouvelles stratégies et même changer certaines règles.
En anoblissant le citizen dev, en le positionnant au cœur du système informatique, en faisant ce simple réajustement, nous pensons reconfigurer complètement, et pour son bien, l’animation d’une IT corporate.
L’IT dans sa manufacture est souvent présentée en un rapport de forces entre deux idéologies :
L’une corporate, l’autre digitale. Gregor Hohpe articule cette différenciation tout au long de son ouvrage The Software Architect Elevator. Cette dichotomie est insoluble et vouloir la résoudre est irréaliste. Les enjeux qui sous-tendent ces deux IT diffèrent de façon profonde. Les géants du web sont pour l’essentiel confrontés à des enjeux qui leur sont propres : scalabilité réelle, software product, simplicité fonctionnelle, développement de standard. Dans l’autre univers, les informaticiens sont cachés des responsables métiers, ils œuvrent à automatiser les tâches, à implémenter des contrôles et à assurer des traitements métier dans une marre bureaucratique visqueuse. Ils jalousent forcément comme dans un stade freudien les libertés de ceux qui travaillent chez les grands acteurs du web et essaient maladroitement de capturer leurs pratiques, sans en saisir leurs inadéquations. Une informatique qui produit de la valeur ne peut être comparée dans son organisation à une IT qui se limite à un centre d’optimisation des coûts, donc à un centre de coûts. Une fois ce deuil terminé et cette situation acceptée, il est temps d’envisager une autre voie.
Et cette troisième voie existe, elle consiste à continuer de positionner son IT corporate au service du métier, mais d’un métier qui serait constitué dans une extrême majorité de citizen dev.
L’ Ultimate Citizen Dev (UCD) se veut une reconsidération d’une IT d’entreprise qui met comme première loi “le Citizen Dev d’abord”.
Nous sommes convaincus que cette transformation est devenue essentielle et irréversible. Aussi nous voulons proposer ici un chemin. Un chemin tracé par une volonté et assisté de trois valeurs.
Pour commencer, cette volonté est une volonté émancipatrice qui veut décloisonner le code et la technologie, pour les déployer au-delà du territoire des experts. Plus jeune nous disions : “le code appartient à tout le monde”. Nous n’imaginions pas à quel point cela allait être vrai.
Des trois valeurs qui accompagnent cette volonté, nous avons la simplicité, l’indépendance et le self-improvement. Avec pour centre le code. Elles encadreront les choix qui amèneront une entreprise à devenir un royaume de citizen dev.
Dans la suite de cet article, le terme IT fera référence à une IT d’entreprise, considérée comme un département intégré à une organisation industrielle ou financière. Les remarques et recommandations ne s’appliquent ni aux IT digitales ni aux startups.
Le Business est un software développeur
Le citizen dev n’est pas comme certains le pensent, un apostat renvoyé de la secte des informaticiens pour trouver refuge dans l’open space du métier. Ce n’est pas non plus un data scientiste, ou encore une sorte de développeur espion qui oeuvre masqué et lutte pour le bien des utilisateurs, contre une IT dévorante et maléfique.
A la base le Citizen dev décrit un profil métier, c’est un collaborateur comme un autre qui revêt un don assez excentrique… il sait coder. Il a subi une mutation favorable qui augmente ses capacités. Ce spécimen, si l’on peut dire, inquiète.
Il inquiète ses collègues qui ne partagent pas son alacrité technologique, quoique heureux de ses productions. Il inquiète l’IT qui l’associe à ce shadow IT (Shadow IT mesure par excellence de l’efficience de l’IT) qu’il faut absolument éliminer. Aussi se chargera-t-elle de lui restreindre les accès, de limiter ses outils et de retarder aux calendes grecques l’application de patchs évolutifs pour ses outils.
Le Citizen Dev est né d’une incapacité de l’IT à répondre rapidement ou à moindre coût à certaines demandes spécifiques. En effet, la taylorisation a transformé les départements IT en grands navires, capables de traversées ambitieuses, mais trop lourds et maladroits pour naviguer efficacement sur des trajets courts et précis.
L’idée centrale en ce qui concerne l’organisation est de considérer que tous les acteurs métiers sont ou doivent être des citizen dev.
C’est ici la première grande transformation culturelle. Le code, la capacité à développer devient une compétence commune. Cela ne veut pas dire que tout le monde a les mêmes facultés. Nous ne pensons pas comme Scrum qu’un chiffrage est identique peu importe qui le capturera. C’est aussi pour cela que nous décrirons plus loin une échelle d’aptitude autour de l’identité du citizen dev.
L’idée centrale en ce qui concerne l’organisation est de considérer que tous les acteurs métiers sont ou doivent être des citizen dev. En disant cela nous ne transformons pas l’organisation, nous enrichissons les rôles existants.
Autrefois, mon père avait une secrétaire. Il écrivait au stylo plume et chargeait celle-ci de transposer le tout à la machine à écrire. Aujourd’hui il est impensable d’imaginer un cadre fonctionner ainsi. En effet avec l’émergence du PC de bureau, tout un chacun, à différents degrés, sait dactylographier. Il en est de même pour le code, toute une génération de moins de 30 ans a été initiée à la programmation. Cette vulgarisation avait commencé très tôt dans les universités scientifiques, où il est d’usage d’avoir un module en informatique (Pascal, C, Delphy). Mais cela s’est déployé aujourd’hui au-delà, à tous les cursus, économiques, techniques, logistiques. Dans de nombreux pays, l’informatique est enseignée avant l’entrée dans le supérieur, tout comme les maths, l’anglais ou l’histoire. Cerise sur le gâteau, l’IA génératrice est un assistant hors pair pour construire du code python ou du SQL à partir d’instructions humaines.
Ces changements culturels vont et sont en train de se diffuser dans les entreprises, il devient de moins en moins envisageable d’avoir des collaborateurs sans connaissance informatique. L’habileté de la nouvelle génération à connaître SQL, Python, JSON, HTML modifie les règles du jeu. Dans un futur plus lointain, le rôle de citizen dev devrait même être amené à disparaître, à l’avantage du profil métier dont on implicite ses capacités à développer. Si tous sont des citizen dev c’est qu’il n’y a plus de citizen dev.
Allégorie de la lecture
Dans l’Empire romain, un soldat sachant lire et écrire était exempté des tâches laborieuses au sein du camp, une compétence rare qui le distinguait de ses camarades. La maîtrise de la lecture et de l’écriture était essentielle pour assurer la circulation des informations et le bon déroulement des opérations. Toutefois, il n’était pas nécessaire que tous les soldats soient lettrés, car un petit groupe d’hommes suffisait pour gérer le flux d’informations. Cet état de fait a perduré après l’Empire.
Au XVe siècle, l’Angleterre, comme la plupart des pays européens, avait un taux d’alphabétisation d’environ 5% (https://ourworldindata.org/grapher/cross-country-literacy-rates). Seule une élite restreinte, composée principalement de religieux, d’aristocrates intellectuels, savait lire et écrire. Le reste de la population dépendait de ces intermédiaires pour toute tâche écrite. Une minorité savante dominait une majorité analphabète.
Cette situation ne rappelle-t-elle pas celle de nos entreprises actuelles ? Dans de nombreuses organisations, les développeurs représentent souvent moins de 5% des effectifs. Bien que ce soit une estimation, on peut raisonnablement affirmer que, tout comme l’Anglais du XVe siècle pensait que sa société resterait figée ainsi pour des siècles, beaucoup d’employés aujourd’hui s’imaginent que la capacité à coder restera l’apanage d’une poignée de spécialistes. Cependant, tout a changé et aujourd’hui le Royaume-Uni atteint désormais un taux d’alphabétisation de plus de 99%. Un parallèle frappant qui suggère que, de la même manière, la connaissance du code pourrait se généraliser à l’avenir.
Mais comment cela a-t-il été rendu possible ? D’où vient cette brutale transformation ? Comment 2 siècles ont pu en effacer plus de 300 ans ? Pour deux raisons.
La première est technologique, avec l’apparition de l’imprimerie. La seconde est politique, c’est l’idée qu’une nation éduquée et instruite serait meilleure.
La rupture technologique pour ce qui nous intéresse s’est produite grâce à l’arrivée des data as product, des APIs et du LLM. La seconde, politique, est le déploiement sociétal du code et son inscription dans toutes les études supérieures et autres événements (Hour of code, Code Combat, Code First Girls) .
Mais n’oublions pas une chose, malgré la démocratisation de l’alphabétisation, il existe toujours une séparation entre une population qui fait de l’écriture et de la lecture un savoir-faire surérogatoire et une seconde population, minoritaire, qui en vit. Nous pensons par exemple aux journalistes, enseignants et écrivains.
Des Citizen Dev
Comme l’allégorie précédente a pu le montrer, il existe dans ce monde et pour n’importe quel sujet différent niveaux d’expertise. Si un citizen dev ne sera jamais aussi talentueux qu’un développeur professionnel – et ce n’est pas sa vocation ! – il existe néanmoins au sein des citizen dev différents grades qu’il faut décrire dans la mesure où ceux-ci participent à la bonne marche de l’organisation. En définissant une échelle, l’entreprise comprendra ce qu’elle peut attendre d’eux et leur offrira les conditions de formation et d’évolution.
Nous proposons ici une modélisation de ce barème à trois niveaux en s’inspirant du manga “Saint Seiya”. Nous aurons donc des chevaliers de bronze, d’argent et d’or.
Libre à chaque organisation de proposer autre chose que cette mythologie moderne. Il faut par contre proposer une grille claire sur les capacités attendues.
Ici un chevalier de bronze doit :
- Avoir une compréhension simple d’un langage procédural (variables, boucles, fonctions)
- Pouvoir piloter une IA pour écrire du code ou du SQL
- Savoir utiliser un IDE (run, debug)
- Maîtriser élémentairement du SQL
- Maîtriser élémentairement de Git (pull, commit, push)
Un chevalier d’argent doit :
- Etre à l’aise avec du code procédural sur des projets de moins de 3’000 lignes
- Avoir des notions de programmation objet
- Connaître les fondamentaux de REST (GET/PUT/POST/DELETE)
- Manipuler et comprendre les formats Json/Csv
- Maîtriser intermédiairement du SQL (jointure, fonction d’agrégat, indexes)
- Maîtriser intermédiairement de Git (branch, cherry picking, fork)
Un chevalier d’or doit :
- Etre à l’aise avec la programmation Objet et fonctionnelle
- Bien comprendre les éléments de sécurité (Basic Auth, Oauth2, Encryption)
- Avoir des notions d’infrastructures (Réseaux, Gestion de la mémoire/CPU)
Bien entendu ces listes de compétences sont données à titre illustratif, elles doivent être enrichies, en tenant compte des enjeux et du contexte technologique de l’entreprise.
Dans le manga, les chevaliers qu’ils soient d’or, d’argent ou de bronze avaient pour protectrice Athéna. Celle-ci, bien que supérieure à tous, fait en permanence passer son intérêt après celui de ses chevaliers. De la même façon, les citizen dev ont besoin de leur Athéna !
Athéna vient de l’IT et se charge de combler les limites de ses chevaliers. A ce titre, elle va aider pour tout ce qui est coding, db, déploiement et environnement de dev
Méthodologie : Vous avez dit Agile ?
Le citizen dev produit du code, il produit de la valeur technologique. Comme toute production elle induit forcément une méthodologie, consciente ou non. Si les pratiques agiles ont gagnées aujourd’hui, faut-il pour autant transférer tel quel un de ces différents framework (Scrum, Kanban, Extrem Programming, The Heart of Agile) aux citizen dev ?
Il ne faut jamais oublier que les citizen dev sont avant tout des collaborateurs dont la mission principale est de se concentrer sur leur métier. L’autonomie acquise par leurs compétences technologiques n’est pas une fin en soi. Il ne faut surtout pas leur compliquer la tâche. A ce titre un framework comme Scrum est à bannir, car il vient avec son empreinte bureaucratique (cérémonies, scoping itératif, goal). En fait, même Kanban est trop lourd. Illustrons cela par un cas pratique. Un vendeur veut savoir si les articles les plus vendus ces trois derniers jours correspondent à ceux que ses clients achètent, afin d’ajuster ses recommandations et promotions. A partir d’un script python qu’il écrit, il se connecte aux data as product : CRM, Articles, Trades. Valide avec Athéna les requêtes, publie toujours en python le rapport en csv dans un S3, et appelle l’API de notification de l’entreprise si certains seuils sont atteints. Athéna après une petite review de code, se charge de l’automatiser, ce qu’il aurait pu faire lui-même mais il avait un meeting. Voilà, y a-t-il vraiment besoin d’une méthodologie agile ?
Non ! Seulement de certaines valeurs qui articulent et justifient ses choix. Ces valeurs forment un framework, une méthodologie de toute évidence, mais ne s’inscrit en aucun cas dans l’univers de l’agilité.
Simplicité
Si une chose vous parait simple à utiliser c’est certainement que quelqu’un a dû en gérer la complexité. La simplicité est une valeur que Kent Beck a pris soin de développer lorsqu’il a fondé “Extrem Programming”. Il voulait apaiser la peur des développeurs qui anticipent des abstractions imaginaires: “Assume simplicity—Treat every problem as if it can be solved with ridiculous simplicity. The time you save on the 98% of problems for which this is true will give you ridiculous resources to apply to the other 2%.“
Dans notre cas, la simplicité va chercher à offrir au citizen dev une expérience simplifiée. C’est d’ailleurs ici que le partenariat entre l’IT traductionnelle et cette nouvelle famille de codeurs doit prendre tout son sens :
L’IT devra mettre à disposition un environnement de développement clef en main. On pourra par exemple imaginer des Virtual Machine avec VsCode + plugin installé, Python 3.x, Postman, git, et DBeaver avec les principales DB configurées.
L’IT devra mettre à disposition un certain nombre de librairies, faciles à utiliser particulièrement pour tout ce qui est non fonctionnel. On pense ici à la sécurité, au logging, aux performances.
L’IT s’assurera de déployer un ubiquitus langage dans toutes ses œuvres de modélisation. La sémantique des APIs, data as product ou encore événementiel doit être comprise par ces citizen dev. Pour cela il faut parler leur langage et donc un langage métier.
Indépendance #FreeBritney
Toute mise sous tutelle procède d’une bonne intention, malheureusement il arrive quelquefois que celle-ci devienne, avec le temps, un obstacle aux libertés fondamentales. C’est ce qui est arrivé à Britney Spears, qui, après un long combat a fini par s’émanciper du joug de son père. Bien sûr nous nous souvenons de la fin et de la manière dont celle-ci a dû lutter, mais cela ne doit pas nous faire oublier qu’il y eut un moment où cela avait du sens.
Bref le métier ne devrait pas avoir à quémander la data ou les outils lui permettant de la manipuler
Nous avons pendant des années infantilisé le métier et c’était plutôt entendu. Pourquoi avons-nous à ce point confisqué l’outil de moyen de production software ? C’était avant tout une question historique qui est devenue culturelle. Le métier conscient de son besoin de voir son parc logiciel se déployer, ne cherchait pas à investir ces nouvelles technologies dans un sens plus profond. Du côté IT, il y avait la crainte de voir contaminé son bloc opératoire. On ne fait pas piloter un Airbus par un enfant, fut-il l’héritier de la compagnie. Alors on a mis des firewall organisationnels et technologiques entre l’IT et le métier.
Une des contre-mesures les plus percutantes utilisées par le métier est l’utilisation du SaaS. Ainsi suivre l’évolution du nombre de SaaS par rapport au home made peut être vu comme un indicateur de défiance entre ces deux univers.
Bref le métier ne devrait pas avoir à quémander la data ou les outils lui permettant de la manipuler. Seule une vision d’une IT qui met en place une offre self-service, serait à même d’assurer l’indépendance aujourd’hui nécessaire aux citizen dev. Dans cette configuration un rôle tampon comme “Athena” est primordial.
Self-improvement
L’amélioration et la formation continue font partie des valeurs d’un Citizen Dev. Autrefois les meilleurs Citizen Dev maniaient à merveille le VBA, les macro excels, SOAP et les bases de données access. A présent ils doivent se tourner vers le python, comprendre les data as product, les APIs REST, les cloud data storage et les outils BI. L’IT doit mettre en place les formations pour permettre au Citizen dev, d’une part d’embrasser les nouvelles tendances, mais aussi de pouvoir intrinsèquement progresser. Permettre ainsi à un Citizen Dev au rang bronze de passer au rang Silver. Il faut aussi penser à maintenir les compétences et ajuster le tout pour ne pas entraver l’essence de leur travail. Encore une fois, un profil comme “Athéna” joue un rôle fondamental, pour animer des formations, faire circuler la documentation, organiser des révisions.
Conclusion
Les géants du WEB sont constitués majoritairement de citizen dev. Bien sûr ils ne portent pas ce nom, on les appelle software developer et l’on admire leur pratique, envie leur autonomie et jalouse leur organisation. Nous voulons les mimer sans capturer intrinsèquement ce qu’ils sont.
Un développeur sur gmail comprend parfaitement ce qu’est un email, une pièce jointe, un spam. Ce sont des développeurs qui créent du code pour construire des outils qu’ils utilisent ensuite au sein de leur entreprise. Nous définissons usuellement le citizen dev comme un acteur métier qui sait coder. En quoi un software développeur qui pratique un métier donnerait une définition différente ?
Nous allons passer à une nouvelle espèce de citizen dev, d’une façon ou d’une autre. Cette mutation portée par une démocratisation du code et une infrastructure self-service va demander un accompagnement organisationnel.
Principalement au sein du département informatique qui devra offrir à ces citizen dev un écosystème technologique cohérent et simple, une plateforme self-service et une éducation technologique continue. Le métier fort de cette nouvelle liberté devra quant à lui, en assimiler les limites, mais surtout gérer les tensions entre une nouvelle génération désireuse et l’autre sceptique.
Ultimate Citizen Dev est notre proposition, une version possible. Nous avons essayé dans les limites de l’exercice de poser une gouvernance légère, d’activer une gamme technologique réduite, et d’y apposer une méthodologie portées par l’indépendance, le self-improvement, la simplicité.
Le citizen dev est citoyen d’une démocratie qui lui a adjoint le statut de mineur et ce statut va changer par une approche plus ambitieuse, plus forte, plus ultime.
Voici le visuel qui résume à merveille UCD
Vous verrez dans l’article qui suit comment implémenter UCD