« Software Engineering & Architecture » - Tech Trends 2024

Au printemps, nos experts et expertes OCTO vous proposent une série « Modern Software Engineering & Architecture ». Pour découvrir le programme et ne rien rater, inscrivez-vous sur notre page Modern Software Engineering & Architecture.

Prologue

Cette année 2024 s’annonce sous le signe de la complexité

Dans ce contexte, il est important de bien avoir en tête les Tech Trends 2024 du « Software Engineering & Architecture » afin que vous puissiez sereinement délivrer vos produits stratégiques en production.

OCTO Technology lance sa campagne « Modern Software Engineering & Architecture », qui se déroulera sur plusieurs semaines. Nous explorerons cinq thématiques principales à travers des publications et des événements :

  1. GenAI & Software Engineering
  2. Des architectures composables et continues
  3. Efficience opérationnelle & Sustainable
  4. Des organisations performantes et scalables
  5. Une sécurisation en profondeur de vos applications

Nous espérons vous compter nombreux afin de partager ensemble autour de ces thèmes. Voici une description des principaux enjeux que nous aborderons.

1. GenAI & Software Engineering

Alors que nous étions en plein petit-déjeuner dans un restaurant, la générative AI a réalisé fin 2023 un véritable hold-up, sans crier gare, en s'exclamant « I love you honey bunny… Everybody be cool this is a robbery »

La générative AI a réalisé fin 2023 un véritable hold-up

Or la GenAI impacte sans nulle doute l’écosystème du Software Engineering, principalement à deux niveaux :

1.1. Intégrer la GenAI dans la toolbox des développeurs

Lorsque l'on évoque l'impact de la GenAI chez les développeurs, on parle d'une nouvelle ère d'outils assistants comme Github Copilot, Google Gemini (ex Duet AI) ou Tabnine qui, non seulement vous suggèrent du code en auto-completion dans l'IDE, mais engagent également la conversation en mode Chat pour mieux coller aux contextes des développeurs.

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é :

  • Un développeur peu expérimenté risque de diminuer la qualité en acceptant des suggestions de code qui comportent des bugs aux limites ou qui suivent des mauvaises pratiques alors qu’un développeur aguerri aura le recul suffisant pour rejeter les suggestions de l’IA et rechercher des approches alternatives d’implémentations quand cela est nécessaire
  • Les développeurs expérimentés sont donc essentiels dans vos équipes, pour déployer la culture SOFTWARE CRAFTSMANSHIP et DevOps, dont les pratiques deviennent FONDAMENTALES, pour sécuriser le déploiement de la GenAI. (Pair programming, Peer review, TDD, DDD, CI/CD, etc )

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 :

1.2. Savoir comment upcycler nos architectures et nos usines de développement pour utiliser la GenAI au sein des nouvelles applications et en retrofit des applications existantes

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.

2. Des architectures composables et continues

Concernant l’architecture, l’année 2024 comportera 3 enjeux phares :

  • Bâtir des architectures MACH découplées et cloud-native afin de répondre aux enjeux de flexibilité et d’évolutivité de vos systèmes, avec une stratégie « Going headless » qui permet de combiner une approche BUILD & BUY pour sortir vos frontaux digitaux des solutions éditeur monolithiques, tout en conservant leur coeur de métier.
  • Tirer parti de l’état de l’art des technologies front-web & mobile pour répondre aux enjeux d’omnicanalité.
  • Déployer le principe de Continuous architecture qui consiste à transformer le rôle de l'architecte pour faire évoluer et grandir - sans rupture - les systèmes informatiques au fur et à mesure des besoins avérés, avec un prisme terrain.

2.1. Bâtir des architectures MACH

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.

Is MACH architecture a divine intervention ?

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 !

  • Parfois, commencer par développer un monolithe est totalement pertinent : s’il est modulaire (prêt à être découpé), le monolithe peut être majestic 🤩
  • Par ailleurs, si on découpe, la question de la granularité est primordiale, et il faut à tout prix éviter un hyper-découpage par services/ressources. Nous reviendrons sur cette notion de « bonne granularité » qui est souvent plus celle d’un découpage par domaines métier (DDD).

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.

« Zed’s dead baby »… et le monolithe aussi ?

2.2. Les technologies front-web & mobile au service de l’omnicanalité

Si l'omnicanalité raisonne pour vous, nous partagerons notre vision :

  • Sur l’état de l’art des technologies web-front, notamment via la mise en œuvre d’un chantier « Going headless », qui est souvent l'opportunité de construire un front en spécifique pour répondre aux enjeux business de time to market. Nous aborderons les site web « Responsive » et accessible, conforme aux exigences RGAA, les architectures Front Universal / Isomorphic capable de s'exécuter en CSR (Client-Side Rendering) et SSR (Server-Side Rendering), les RIA (Rich Internet Application), les design systems, les Micro Frontends, etc.
  • Sur l’état de l’art des technologies mobile et des enjeux de rationalisation des filières de développement en déployant des technologie hybride comme Flutter, ou React Native, ou bien de faire le choix du full-web via les progressive web apps (PWA).

2.3. Essor de la « Continuous architecture »

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.

3. Efficience opérationnelle & Sustainable

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.

3.1. De la Loi de Moore à Loi d’erooM

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 !

  • C’est à dire d’un contexte ou « Le matériel double de puissance tous les 24 mois »
  • Vers un contexte où les limites planétaires vont nous amener à devoir « Optimiser nos applications et systèmes d’un facteur 2 tous les 2 ans ! »

3.2. Essor de l’approche « Brownfield »

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.

3.3. Essor du développement hybride

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 ?

3.4. Essor de l’accessibilité

Des décrets imposent que toute nouvelle application soit accessible dès 2025, suivi d’une mise en conformité pour les parcs existants. Trois échéances légales de mise en accessibilité

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 :

  • Quelles sont les alternatives aux longs et coûteux audits RGAA/WCAG pour entamer une démarche d’accessibilité?
  • Quelles sont les bonnes pratiques ?

Nous vous proposerons également une feuille de route pragmatique pour gravir la montagne de l’accessibilité, marche après marche.

4. Des organisations performantes et scalables

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é ».

Une situation socio-économique sous tensions : la fin des milkshakes à 5 dollars

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.

5. Une sécurisation en profondeur

5.1. Zero Trust : abolition de la sécurité périmétrique

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.

5.2. Préparer son SI à l’arrivée du Web3 et de ses portefeuilles numériques

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.

🚀 Épilogue : Plongez dans le futur avec OCTO Technology !

Nous hésitons à conclure sur l’Ézéchiel 25:17, mais finalement, non…

Ezekiel 25:17 « The path of the righteous man… »

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.