Mais attention, tout n'est pas rose dans ce monde futuriste du développement assisté. Les avantages sont indéniables pour les tâches standardisées et relativement répétitives (type boiler plate) : générer des parties de code, rédiger des tests, ou même produire de la documentation. Mais lorsque vient le temps de bâtir des applications complexes ou de transformer un projet existant, les limites se font sentir.
Et que dire de la productivité tant vantée ? Certes, les gains sont réels sur certains types de tâches du développeur. Les éditeurs et cabinets de conseil crient au miracle, mais selon l’étude « Today was a Good Day : The Daily Life of Software Developers », coder ne représente au mieux que 40% de la journée d'un développeur parmi plusieurs activités, et donc les gains potentiels ne s'appliqueraient que sur sur un sous-ensemble de cette tâche.
Pour réussir le déploiement des assistants de développement, la maîtrise du processus de développement pèse lourd dans la balance. Un développeur non sensibilisé à la validation rigoureuse du code généré par les assistants peut introduire du code qui dysfonctionne (des hallucinations) ou de mauvaise qualité, et dont la correction sera d’autant plus coûteuse que cela aura été tardivement détecté dans le cycle de vie du logiciel. Il faut donc être vigilant sur la maîtrise du processus de développement (revues, stratégie de tests et de déploiement), la pyramide de séniorité de vos équipes de développement, et leur niveau de maturité :
Si la GenAI peut être une alliée précieuse, elle peut aussi réserver quelques surprises. En prenant les bonnes précautions, son apport dans le développement logiciel semble prometteur. Concernant son intégration dans l'écosystème IT, un second sujet impacte fortement le Software Engineering :
Les technologies de GenAI ne se limitent pas à être de simples outils de recherche et de synthèse. Elles agissent comme de véritables moteurs de raisonnement, comme le souligne Sam Altman, fondateur d'OpenAI. Leur intégration dans les applications permet d’offrir aux utilisateurs des nouvelles fonctionnalités ou bien constitue une alternative à des implémentations actuelles complexes.
La mise en œuvre de la GenAI dans les applications repose sur l’utilisation de composants de GenAI prêts à l’emploi tels que les LLM (Large Language Model) et les systèmes de RAG (Retrieval Augmented Generation). Ces composants sont intégrés dans les applications de manière classique par appels d’API. L’enjeu se situe dans l’identification de cas d’usages intéressants pour les utilisateurs, la maîtrise des solutions disponibles et leur intégration dans vos SI, en tenant compte de vos enjeux de scalabilité et de cet environnement qui est encore en mouvement.
La maîtrise des technologies clés, telles que le prompt engineering (PE) et le RAG, sont alors essentielles pour personnaliser les réponses.
L’intégration de la GenAI dans les applications ouvre le champ des possibles pour les utilisateurs de nos applications. Sa mise en place n’est pas une révolution d’un point de vue engineering, technologique ou architecture, mais dans la capacité à maîtriser un écosystème en très forte évolution.
Concernant l’architecture, l’année 2024 comportera 3 enjeux phares :
Il n’est aujourd’hui plus nécessaire de démontrer l’importance des architectures composables, évolutives, scalables, pour pouvoir répondre aux enjeux d’agilité et d'innovation de nos produits. Mais pourquoi en parler en 2024 ? S’agit-il d’une intervention divine, puisque historiquement, nous construisons des produits selon ces principes depuis la nuit des temps : la POO (~1980), la SOA (~2000), le cloud (2006), l’essor des API REST (~2010), les microservices (~2014), etc.
Mais force est de constater que le marché des solutions éditeurs a fait naître, au fil des années, bon nombre de solutions vendor intégrées, qui voient avec l’essor du headless la probable fin des solutions « ALL-IN-ONE », ou « pack pot-au-feu » : le monolithe solution éditeur intégrée a semble t-il fait son temps, il ne répond plus aux enjeux d’agilité et de composabilité. Alors, « Zed’s dead baby »… et le monolithe aussi ? Nous verrons que oui et non, en abordant plusieurs pièges à éviter et embardées loupées !
Quoi qu’il en soit, plusieurs éditeurs de solutions se sont associés pour former la MACH alliance qui porte ces convictions d’une architecture composable avec des capabilités essentielles en termes d'interopérabilité, de scalabilité, de commutabilité.
Nous détaillerons ces enjeux et en particulier, nous zoomerons sur la mise en œuvre de chantiers « Going headless » pour partager nos expériences et les leçons que nous avons tirées pour mener à bien cette transformation.
Si l'omnicanalité raisonne pour vous, nous partagerons notre vision :
Dans un système d’information en constante mutation et avec le déploiement quasi généralisé de l’agilité à l’échelle et de l’approche produit, les architectes (qui semblent avoir été les grands oubliés de cet élan pour l’agilité) embrassent progressivement la continuous architecture, afin d’être plus résilients face à ces changements et en adoptant un prisme terrain. Pour cela, nous allons vous partager plus en détail notre vision de l’architecture continue qui devrait s’étendre en 2024.
L’année 2024 démarre avec un contexte socio-économique sous tensions et de forts enjeux sur le « Sustainable » et la régulation IT.
Nous pensons qu’à cet instant précis, au risque de casser votre concentration, nous basculons d’un paradigme de la Loi de Moore à Loi d’erooM !
Ainsi, non seulement allons nous devoir optimiser nos applications, mais l’épuisement des ressources matérielles et l’augmentation du prix de l’énergie vont nous amener à considérer une approche Brownfield : c'est-à-dire de ne plus jeter nos applications ou nos systèmes legacy pour lancer des refontes, mais de recycler et de reprendre le contrôle ! Effectivement, c’est assez fréquent qu’après plusieurs années d’exploitation, on se retrouve dans la situation où il est de plus en plus difficile d’ajouter ou de faire évoluer les fonctionnalités de son application ou système. Et c’est en général à ce moment-là que se pose la question de réécrire complètement nos assets legacy via un développement dit Greenfield.
Et pourtant ce n’est pas toujours un bon calcul. Car ce legacy a de la valeur : c’est la représentation la plus tangible de vos règles métiers déployées en production. Une réécriture entraîne le risque de perdre une partie du métier, de déployer en trajectoire des stratégies de double run. Alors qu'une reprise sous contrôle du code existant de manière progressive peut être économiquement plus intéressante et avec une mise en exploitation plus rapide. Enfin, les approches Greenfield et Brownfield peuvent être combinées. Nous donnerons des exemples concrets de mise en œuvre d’une approche Brownfield en situation réelle et des gains apportés.
Dans ce contexte de volonté d'efficience opérationnelle et de stabilisation des écosystèmes techniques, la promesse du développement mobile hybride est alléchante, puisqu’elle permettrait de rationaliser les filières de développement Web et mobile natif et donc d’optimiser vos coûts en les divisant par deux ou par trois, tout en consommant moins de ressources !
En effet, les technologies hybrides mobiles actuelles offrent une belle expérience utilisateur, proche de celle offerte par les technologies mobiles natives. On estime aujourd’hui que 20% (sources appbrain et Google) des apps sur les stores sont réalisées en Flutter et en React Native, avec en exemple des superstars des stores comme les apps Skype, Google Pay et Amazon qui sont faites en cross-platform. Alors au final, vaut-il mieux considérer 5 développeurs Android et 5 développeurs iOS, ou bien préférer un scénario avec 5 développeurs hybrides sur le même scope fonctionnel, ou bien 10 développeurs hybrides qui produisent plus de features ?
Enfin, qu’en est-il d’une approche full-web via les progressive web apps (PWA) qui permettrait de ne considérer qu’une seule filière de développement pour le web et le mobile ? Quelles sont les contraintes technologiques et les gains avérés en termes de coûts et de ressources hard et soft ?
Des décrets imposent que toute nouvelle application soit accessible dès 2025, suivi d’une mise en conformité pour les parcs existants.
Derrière ce qui peut apparaître comme une contrainte, nous proposons d’échanger sur les opportunités offertes par l’accessibilité !
En ce qui concerne la mise en œuvre de la démarche d’accessibilité, nous expliquerons :
Nous vous proposerons également une feuille de route pragmatique pour gravir la montagne de l’accessibilité, marche après marche.
Dans ce contexte où nous constatons une archipélisation des lieux de travail suite au Covid-19 et ou la situation socio-économique sous tensions induit une pression sur les prix (probablement la fin des milkshakes à 5 dollars), nous constatons une généralisation du « delivery distribué ».
Nous partagerons autour des bonnes pratiques de mise en œuvre du delivery distribué : quelle organisation des équipes ? Quel lien avec l’architecture ? Quel incidence sur les compétences : séniorité, expertise, T-shaped ? les modèles « centre de services » vs modèle « open-source distribué », etc.
Nous en profiterons pour vous présenter notre vision d’un career path attractif pour les développeurs ! Sur le modèle des Big Tech, il offre des perspectives d’évolution en cohérence avec le marché, répondant aux besoins de nos équipes produit et axées sur deux majeurs que sont l’expertise et le management.
L'hégémonie du Web et du ATAWAD (Any Time, AnyWhere, Any Device) remet en question le modèle traditionnel de défense périmétrique. Avec les architectures MACH, basées sur des API exposées sur le Web et le cloud-native, avec l’archipélisation des lieux de travail post Covid-19, les techniques sécuritaires traditionnelles comme les pare-feux, le cloisonnement, la multiplication des VPN ou des solutions logicielles « ALL-IN-ONE » rencontrent leurs limites !
Le modèle Zero Trust propose de renforcer nos pratiques en s’appuyant sur l’architecture pour sécuriser en profondeur l’accès aux ressources en réduisant la « confiance implicite » via des contrôles systématiques, dynamiques et granulaires en utilisant des protocoles d’authentification et d’autorisation standardisés. Nous aborderons l’impact sur les logiciels et les architectures que nous bâtissons. En particulier, nous détaillerons l’état de l’art des protocoles d’authentification et d’autorisation : OpenID Connect, OAuth2, etc. ainsi que des solutions IAM du marché (open-source ou éditeur).
En outre, pour renforcer la sécurité de nos SI, nous avons besoin de renforcer nos pratiques d’authentification, en disant au revoir à ce cher mot de passe, si facile à voler, à deviner ou à oublier. Nous avons assisté à l’émergence des applications de type “Authenticator” pour s’assurer d’un second facteur. Mais le secteur se dirige vers l’authentification sans mot de passe (passwordless), basée sur des clés d’accès (passkeys) et, le plus souvent, la biométrie. Cette méthode permet de valider plusieurs facteurs d’authentification (multi-factor authentication - MFA) tout en simplifiant l’expérience utilisateur, et cela a déjà commencé à remplacer les formulaires de saisie de mot de passe.
Le WEB3 arrive avec de belles promesses de décentralisation des contrôles grâce à l'utilisation de blockchains, comme on peut le voir avec les cryptomonnaies et les NFT. Mais il propose aussi des changements concernant l’identité numérique, tant au niveau de ses clients que de ses employés.
Les utilisateurs pourraient à terme avoir un contrôle complet sur les données personnelles qu’ils confient aux services sur le web : on parle de Self-Sovereign Identity (souveraineté personnelle de l'identité), où comment l'utilisateur final (re)devient maître de son identité numérique et de ce qui en est fait. Pour y parvenir, les utilisateurs pourront se constituer un portefeuille numérique (digital wallet) avec différents éléments d’identité (passeport, diplômes, attestation de domicile, badge professionnel, etc.), dont l'authenticité pourra être assurée par des fournisseurs d'identité décentralisés basés sur des blockchains.
Les entreprises ont tout intérêt à d’ores et déjà se préparer à ce changement de paradigme concernant les données personnelles, dans la lignée du Règlement général sur la protection des données (RPGD).
Aujourd'hui, certains services proposent de certifier son identité de manière numérique, via sa carte d’identité dématérialisée. C’est le cas du wallet “France Identité Numérique” qui peut être utilisé pour confirmer une procuration pour les élections européennes 2024. Le permis de conduire vient aussi d’être dématérialisé, pour faciliter l’interopérabilité des titres au niveau européen. Cette nouvelle étape dans la dématérialisation va être de plus en plus présente et attendue par les utilisateurs de services numériques.
Nous verrons ensemble comment intégrer ces aspects du WEB3 dans votre entreprise.
Nous hésitons à conclure sur l’Ézéchiel 25:17, mais finalement, non…
L'année 2024 s'annonce comme une période de transformation sans précédent dans le monde du Software Engineering et de l’Architecture. Avec l'émergence de technologies révolutionnaires telles que la GenAI, les défis socio-économiques croissants et l'impératif de durabilité, il est temps d'embrasser le changement et d'innover pour prospérer dans ce nouveau paysage technologique.
Chez OCTO Technology, nous vous invitons à rejoindre notre campagne "Modern Software Engineering & Architecture" pour explorer les tendances technologiques les plus en vogue de 2024. Avec des thèmes captivants et des discussions approfondies, cette initiative vous offre une opportunité unique de rester en avance sur la courbe et de transformer votre approche du développement logiciel et de vos systèmes d’information.
Découvrez comment la GenAI révolutionne le processus de développement et nos applications, offrant des possibilités infinies tout en relevant les défis de qualité et de sécurité. Explorez les architectures MACH, conçues pour l'agilité et l'innovation, et apprenez à les intégrer dans votre stratégie IT pour rester compétitif sur le marché.
Mais ce n'est pas tout ! Plongez dans le monde de l'efficacité opérationnelle et de la durabilité, en découvrant comment optimiser vos ressources existantes tout en réduisant votre empreinte écologique. Explorez de nouvelles approches de développement hybride et découvrez comment elles peuvent révolutionner votre façon de bâtir des applications.
Rejoignez-nous également pour explorer les meilleures pratiques en matière d'organisation d'équipes décentralisées et découvrez comment sécuriser en profondeur vos applications avec le Zero Trust, et en préparant votre entreprise à l'avenir du Web et ses nouvelles approches d'authentification.
Ne manquez pas cette opportunité de façonner l'avenir du développement logiciel avec OCTO Technology. Rejoignez-nous dès maintenant pour une expérience immersive et inspirante dans le monde passionnant du Software Engineering et de l’Architecture !
🔗 Inscrivez-vous dès aujourd'hui sur notre site web pour ne rien manquer de cette aventure passionnante ! #ModernSEA2024 🌟
Conclusion NOT generated by ChatGPT 4 with ❤️ and your personal data 🤑
Pour ne rien rater de notre série « Modern Software Engineering & Architecture », inscrivez-vous sur notre page Modern Software Engineering & Architecture.