Rendre le développement de logiciels ennuyeux pour générer de la valeur commerciale
Étant donné qu’il y a une limite à nos capacités cognitives et à notre compréhension des systèmes complexes, Corstian Boerman soutient que le développement de logiciels devrait devenir ennuyeux. Il suggère de déplacer l’infrastructure afin qu’elle ne pèse pas sur le processus de développement quotidien et de se concentrer sur la création de valeur commerciale de manière prévisible et reproductible.
Corstian Boerman a donné une conférence sur l’impact des logiciels complexes sur nos capacités cognitives au NDC Oslo 2023.
Boeman a mentionné que puisque notre mémoire est finie et faillible, il y a une limite à notre compréhension des systèmes complexes. C’est important pour deux raisons, a-t-il expliqué :
Premièrement, il est coûteux de former les développeurs à mémoriser les détails. Cela ne se manifeste pas seulement lors de la formation initiale, mais également lors du développement continu, où une faible vélocité en est également un symptôme.
De plus, la limite de complexité est atteinte plus rapidement avec un système irrationnellement complexe qu’avec un système complexe naturel, et je dirais donc que nous devrions nous inspirer davantage de la nature pour le développement de nos systèmes.
Il existe une distinction claire entre les systèmes complexes naturels et les systèmes complexes créés par l’homme, a déclaré Boerman. Grâce à la physique, les phénomènes naturels peuvent être expliqués par un certain nombre d’équations, tandis que pour les systèmes créés par l’homme, nous devons prendre en compte le contexte, a-t-il ajouté. Ce contexte – peut-être irrationnel – ne peut pas nécessairement être généralisé dans la même mesure que cela est possible avec les systèmes naturels.
Boerman a soutenu que le développement de logiciels devrait devenir ennuyeux. Il a fait la distinction entre les logiciels ennuyeux et les logiciels passionnants :
Les logiciels ennuyeux dans cette catégorisation ressemblent à tous les logiciels qui ont été construits d’innombrables fois, et le seront un milliard de fois plus. Dans ce contexte, je pense spécifiquement aux systèmes back-end, même si cela vaut également pour les systèmes front-end. Les logiciels passionnants sont tous les projets qui nécessitent de la créativité pour être construits. Pensez aux algorithmes spécialement conçus, aux automatisations, aux intégrations d’IA, etc.
Pour rendre le développement de logiciels à nouveau ennuyeux, il faut se concentrer avant tout sur la création de valeur commerciale et rendre la livraison de ces aspects prévisible et reproductible, a expliqué Boerman. Cela nécessite de déplacer l’infrastructure de manière à ce qu’elle soit toujours là, sans pour autant alourdir le processus de développement quotidien :
Même si l’infrastructure prend la majeure partie du temps de développement, elle offre techniquement le moins de valeur commerciale que l’on puisse trouver dans les données et les opérations exécutées sur celles-ci.
Les nouvelles expériences passionnantes peuvent être rapides et instables, tandis que le noyau de forage est censé être et rester de haute qualité, de manière à pouvoir résister aux perturbations extérieures, a conclu Boerman.
InfoQ a interviewé Corstian Boerman sur la création de systèmes logiciels complexes.
InfoQ : À quoi ressemble la relation entre complexité logicielle et capacités cognitives ?
Corstien Boerman: La capacité cognitive comprend trois éléments principaux : les pensées, les expériences et les sens. Ensemble, nous les utilisons pour comprendre tout ce qui se passe autour de nous.
Nos pensées en tant que telles peuvent inclure à la fois le système rationnel conscient et lent et le système émotionnel inconscient et rapide. Les expériences peuvent identifier de manière unique un être humain parmi ses pairs, et nous utilisons nos sens pour percevoir le monde qui nous entoure. Pris ensemble, ceux-ci définissent nos capacités cognitives, ainsi que nos handicaps.
Comme la cognition elle-même comporte de multiples aspects, les capacités extraordinaires et les handicaps débilitants ne s’excluent pas mutuellement et peuvent tout aussi bien coexister au sein d’une même personne, a déclaré Boerman, qu’il s’agisse de sens (un membre manquant), d’expériences (expériences traumatisantes) ou nos pensées (maladie mentale).
La complexité et la cognition ne sont pas directement liées l’une à l’autre. Alors que la complexité est une caractéristique certaine de nos environnements, la cognition concerne la façon dont nous interagissons avec nos environnements. Nos capacités cognitives nous permettent alors de comprendre des systèmes complexes, ainsi que de créer des systèmes complexes.
InfoQ : Comment gérer les logiciels ennuyeux et passionnants ?
Fermier: La plupart des systèmes d’analyse suivent le même paradigme : nous avons des données et nous voulons exécuter une opération sur ces données. Lorsque nous travaillons avec des systèmes comme ceux-ci, nous passons beaucoup de temps à mettre en place l’infrastructure appropriée. Requêtes de base de données, instructions de journalisation, intégration de systèmes et bien plus encore.
Contrairement aux logiciels ennuyeux, il existe également ce que je considère comme des logiciels passionnants, ce qui est tout aussi important pour que les logiciels ennuyeux restent ennuyeux. Ce sont tous des projets qui nécessitent de la créativité pour se construire.
Dans cette symbiose, la partie ennuyeuse contient les processus commerciaux les plus importants pour une entreprise, sans fioritures. Cette fonctionnalité de base est ensuite enrichie par des logiciels externes plus intéressants. Lorsque ces éléments passionnants interagissent avec les processus définis par le noyau de forage, il devient possible d’automatiser le travail manuel ou de prendre manuellement le relais de l’automatisation. Cela offre une liberté dans la manière dont un système peut évoluer.