Sous les premiers rayons du soleil à Chicago, j'ai eu le privilège de m'entretenir avec Robert Martin, plus connu sous le pseudonyme "Uncle Bob". Figure emblématique de la programmation depuis 1970, cofondateur de la plateforme de formation en ligne cleancoders.com, il s'est distingué comme un orateur acclamé lors de conférences internationales. Auteur de plusieurs ouvrages de référence tels que "The Clean Coder", "Clean Code", et "Agile Software Development: Principles, Patterns, and Practices", il a aussi enrichi la littérature informatique avec de nombreux articles, essais et blogs. Ancien rédacteur en chef du C++ Report et premier président de l'Agile Alliance, Uncle Bob a durablement marqué la communauté du développement logiciel.
Outre ses contributions littéraires, M. Martin a enseigné les principes de la conception orientée objet et les design patterns à des institutions et entreprises de renom telles que le Stanford Linear Accelerator Center, Lawrence Berkeley National Labs, et la NASA en Caroline du Nord, témoignant ainsi de son engagement envers l'éducation et le partage de connaissances.
Uncle Bob, d'où vient ce surnom que tout le monde vous connaît ?
Robert Martin : Ce surnom m'a été donné par un collègue en 1988. À l'époque, je le trouvais plutôt irritant. Après avoir quitté cette entreprise, j'ai commencé à l'utiliser dans ma signature d'email, un peu par nostalgie. Lors d'une conférence au début des années 90, il a été adopté par la communauté internationale des développeurs, et depuis, je suis mondialement connu sous ce nom.
Pouvez-vous nous expliquer les fondements de la Clean Architecture et son impact sur l'organisation des systèmes d'information par les développeurs ?
Robert Martin : La Clean Architecture se base sur la séparation des composants du logiciel selon un modèle d'interdépendance. L'objectif est de créer un système logiciel qui peut être facilement modifié en séparant les problématiques de haut niveau des détails de bas niveau. Ce faisant, les détails de bas niveau dépendent des enjeux de haut niveau et non l'inverse. Cela facilite les modifications et prévient la dégradation des systèmes sur le long terme.
Avec l'avènement du cloud computing et de l'intelligence artificielle, voyez-vous le besoin d'adapter la Clean Architecture ?
Robert Martin : Non, pas vraiment. Je ne considère pas le cloud computing ni l'IA comme des changements fondamentaux dans le développement de logiciels. Il s'agit plutôt d'une évolution dans le déploiement. Les principes de la Clean Architecture restent pertinents et applicables, quelle que soit la plateforme.
Comment répondez-vous aux critiques concernant la complexité présumée de vos méthodes, comme le développement guidé par les tests (TDD) ?
Robert Martin : Les nouvelles idées attirent souvent des critiques. Ce qui m'importe, c'est de savoir si ces critiques sont constructives. Le TDD et la Clean Architecture sont des approches qui ont fait leurs preuves, préconisant la prudence et la préparation plutôt que la complexité inutile.
Quels sont les avantages concrets de la Clean Architecture pour les entreprises ?
Robert Martin : Un des principaux avantages est la réduction des coûts de modification. Par exemple, dans le projet Fitness et d'autres projets similaires, une architecture bien pensée a permis de localiser les modifications nécessaires en un seul endroit plutôt que de les disperser à travers tout le code, rendant ainsi les mises à jour moins coûteuses et risquées.
Comment la Clean Architecture s'intègre-t-elle avec des méthodologies modernes de développement logiciel comme Agile ou DevOps ?
Robert Martin : Il n'y a aucun point de friction. La Clean Architecture s'intègre parfaitement dans des environnements Agile ou DevOps. Elle complète ces méthodologies en facilitant la collaboration et l'automatisation, qui sont essentielles à ces approches.
En regardant vers l'avenir, quelles tendances ou technologies vous impressionnent le plus aujourd'hui et quelle est votre vision pour l'avenir, notamment en termes d'écologie ?
Robert Martin : Ce qui m'impressionne le plus n'est pas une technologie spécifique, mais la manière dont la communauté logicielle gère son expansion rapide. Je suis particulièrement préoccupé par la consommation énergétique croissante de l'industrie technologique et les récentes déclarations d'Elon Musk sur les pénuries d'électricité dues à l'IA. Nous devons développer des pratiques plus durables et prendre en compte l'impact écologique de nos avancées technologiques pour garantir un avenir plus vert et plus responsable. Le crash récent de Microsoft, par exemple, souligne l'importance de la fiabilité et de la robustesse dans notre infrastructure logicielle, et illustre comment les principes solides de la Clean Architecture peuvent aider à éviter de tels désastres.
Un grand merci Uncle Bob pour cet entretien des plus inspirants !