IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un ingénieur Google recommande de s'en tenir à une architecture ennuyeuse aussi longtemps que possible dans les nouveaux projets
Afin de se concentrer sur les besoins réels des clients

Le , par Stéphane le calme

30PARTAGES

9  0 
Dans un billet, Addy Osmani, ingénieur logiciel chez Google dans la division chargée du développement de Chrome, explique le principe du « point d’innovation », qui consiste à n’utiliser qu’une seule technologie ou architecture « excitante » par projet, et à se baser sur des outils stables et bien compris pour le reste. Il souligne l’importance de prioriser la valeur pour les clients plutôt que la créativité pour les ingénieurs.

L’architecture, qu'elle soit logicielle ou physique, est un domaine qui suscite de nombreuses passions et controverses. Certains prônent l’innovation et la créativité, d’autres préfèrent la stabilité et la simplicité. Quels sont les avantages et les inconvénients de ces deux approches ? Comment trouver le bon équilibre entre l’ennui et l’excitation ?

L’architecture ennuyeuse : une valeur sûre

Dans le monde du développement web, il existe une règle non écrite qui dit : Stick to boring architecture for as long as possible (Restez avec une architecture ennuyeuse le plus longtemps possible). Cette règle de Kelsey Hightower a été prônée par Addy Osmani, un ingénieur chez Google, dans un billet portant le même titre. Selon lui, il faut éviter de se laisser séduire par les technologies ou les architectures « excitantes », c’est-à-dire celles qui sont nouvelles, tendances, complexes ou originales. Il faut plutôt se baser sur des outils « ennuyeux », c’est-à-dire ceux qui sont éprouvés, stables, simples et bien compris.

L’argument principal de Osmani est que l’innovation a un coût. Choisir une technologie ou une architecture excitante implique de prendre des risques, de faire face à des bogues, de perdre du temps à apprendre et à se former, de dépendre de la communauté et de la documentation, de gérer la compatibilité et la maintenance. Tous ces facteurs peuvent nuire à la qualité du produit final, à la satisfaction des clients et à la productivité des ingénieurs. Osmani propose donc de limiter l’innovation à un seul point par projet, qu’il appelle le « point d’innovation ». Ce point doit être choisi en fonction de la valeur ajoutée qu’il apporte au projet, et non pas en fonction du plaisir qu’il procure aux ingénieurs.

L’architecture ennuyeuse présente donc plusieurs avantages :
  • Elle assure une meilleure fiabilité, performance et sécurité du produit.
  • Elle facilite la collaboration, la communication et le partage des connaissances entre les ingénieurs.
  • Elle permet de se concentrer sur les besoins réels des clients plutôt que sur les envies personnelles des ingénieurs.



Les mots d'Osmani

Lorsque nous démarrons de nouveaux projets, il y a un attrait indéniable pour les derniers langages, frameworks et bibliothèques. En tant qu'ingénieurs, nous sommes, par nature, attirés par les solutions innovantes. Cependant, il est essentiel de discerner ce qui est excitant et ce qui convient à votre cas d'utilisation. Souvent, la technologie «ennuyeuse» - ces outils stables, bien compris et peut-être de la génération précédente - a beaucoup à offrir. Ils sont généralement testés et éprouvés, ont une évolutivité éprouvée et sont accompagnés d'une documentation complète et d'un support communautaire.

La folie du FOMO (Peur de manquer quelque chose)

Dans le monde de la tech, le FOMO peut être un moteur de nos choix (nous y sommes souvent allés). Cependant, ce n'est pas forcément productif. Bien qu'il soit important d'être conscient des technologies émergentes, les poursuivre sans une proposition de valeur claire peut entraîner une complexité inutile, une dette technique et une fuite des ressources.

Avant d'adopter une nouvelle technologie, demandez-vous : « Résout-elle un problème spécifique ou améliore-t-elle considérablement mon produit ? Cela vaut-il la courbe d'apprentissage et l'instabilité potentielle ? Cela va-t-il nous aider plus tard ?

Le principe du point d'innovation

Un concept utile qui peut guider le choix technologique est le « principe du point d'innovation ». Imaginez que pour chaque projet, vous ayez un « point d'innovation » que vous pouvez dépenser pour adopter une technologie ou une architecture « excitante ». Ce point unique vous oblige à faire un choix délibéré et judicieux. Dépensez-le sagement; utilisez-le lorsqu'une nouvelle technologie ajoute clairement une valeur substantielle à votre projet.

Sinon, fiez-vous à ce que vous savez qui fonctionne.

Recadrer votre état d'esprit : de la créativité à la valeur

En tant qu'ingénieurs, nous recherchons souvent une expression créative à travers notre travail. Cependant, il est essentiel de reconnaître que dans un cadre professionnel, notre objectif principal est d'offrir de la valeur aux clients.

Cela ne signifie pas que la créativité n'a pas sa place ; elle devrait plutôt être canalisée vers la création de solutions innovantes que les clients aiment et sont prêts à payer.

La progression stratégique

Commencez votre projet avec une base solide basée sur une technologie bien comprise. Au fur et à mesure que votre projet évolue et que vous comprenez parfaitement vos défis, évaluez s'il existe une raison impérieuse d'intégrer des technologies plus avancées. C'est une progression intentionnelle : commencer ennuyeux, puis innover stratégiquement.

Donner la priorité à la création de valeur en s'appuyant initialement sur des technologies stables et bien comprises. Innover sélectivement et intentionnellement. En fin de compte, la satisfaction de construire quelque chose qui fait vraiment la différence pour vos clients est plus gratifiante que toute excitation éphémère qui vient de sauter dans le dernier train technologique.

Alors, envisagez d'adopter « l'ennuyeux » comme point de départ sensé et utilisez les « points d'innovation » à bon escient pour créer de bons produits.


L’architecture excitante : une source d’émotion

Si l’architecture ennuyeuse a ses mérites, elle n’est pas sans défauts. Elle peut aussi être source de frustration, de lassitude et de démotivation pour les ingénieurs, qui peuvent se sentir bridés dans leur créativité et leur curiosité. Elle peut aussi être perçue comme fade, monotone et impersonnelle par les clients, qui peuvent se lasser d’un produit trop uniforme ou trop conventionnel.

Dans le monde de l’architecture physique, il existe une critique similaire à l’encontre de l’architecture urbaine actuelle. Thomas Heatherwick, un designer britannique, a donné une conférence TED intitulée The rise of boring architecture – and the case for radically human buildings (La montée de l’architecture ennuyeuse – et le plaidoyer pour des bâtiments radicalement humains). Selon lui, l’architecture urbaine moderne est dominée par des bâtiments standardisés, répétitifs et sans âme. Il déplore le manque d’originalité et d’expression des architectes, qui se contentent de copier des modèles préexistants ou de suivre des normes imposées.

L’argument principal de Heatherwick est que l’architecture a un impact émotionnel sur les habitants. Choisir une architecture excitante implique de créer des bâtiments uniques, originaux, complexes ou audacieux. Ces bâtiments peuvent susciter l’émerveillement, la joie, la surprise ou l’attachement chez les habitants. Ils peuvent aussi refléter la personnalité, la culture ou l’histoire d’un lieu ou d’une communauté. Heatherwick propose donc de privilégier l’architecture excitante pour rendre les villes plus vivantes, plus belles et plus humaines.

L’architecture excitante présente donc plusieurs avantages :
  • Elle stimule la créativité, la curiosité et la motivation des architectes.
  • Elle crée une connexion émotionnelle, esthétique et identitaire entre les clients et le produit.
  • Elle permet de se démarquer, de se différencier et de se faire remarquer dans un environnement concurrentiel.

Trouver le bon équilibre

Il n’existe pas de réponse universelle à la question de savoir s’il faut privilégier l’architecture ennuyeuse ou excitante. Il faut plutôt trouver le bon équilibre entre les deux, en fonction du contexte, des objectifs et des contraintes de chaque projet. Il faut aussi être conscient des avantages et des inconvénients de chaque approche, et ne pas tomber dans les extrêmes.

Voici quelques pistes pour y parvenir :
  • Se poser les bonnes questions avant de choisir une technologie ou une architecture : Quel est le problème à résoudre ? Quelle est la valeur ajoutée pour les clients ? Quels sont les risques et les coûts associés ? Quelles sont les alternatives possibles ?
  • Se renseigner sur les retours d’expérience d’autres projets similaires ou différents : Quelles sont les technologies ou les architectures utilisées ? Quels sont les résultats obtenus ? Quels sont les problèmes rencontrés ? Quels sont les enseignements tirés ?
  • Se former et se mettre à jour sur les technologies ou les architectures existantes ou émergentes : Quelles sont les tendances actuelles ou futures ? Quelles sont les forces et les faiblesses de chaque option ? Quelles sont les opportunités et les menaces du marché ?
  • Se faire accompagner ou conseiller par des experts ou des pairs : Qui sont les personnes compétentes ou reconnues dans le domaine ? Quels sont leurs avis ou leurs conseils ? Comment entrer en contact avec eux ?
  • Tester, expérimenter et évaluer différentes technologies ou architectures : Quels sont les critères de succès ou d’échec du projet ? Comment mesurer la performance, la satisfaction ou l’impact du produit ? Comment recueillir le feedback des clients ou des utilisateurs ?

Sources : billet Addy Osmani, TED

Et vous ?

Quelle est votre opinion sur le sujet ? Partagez-vous le point de vue de cet ingénieur ? Préférez-vous l’architecture ennuyeuse ou excitante ? Pourquoi ?
Quelle est la technologie ou l’architecture la plus excitante que vous ayez utilisée ou vue récemment ? Qu’est-ce qui vous a plu ou impressionné ?
Quelle est la technologie ou l’architecture la plus ennuyeuse que vous ayez utilisée ou vue récemment ? Qu’est-ce qui vous a déplu ou ennuyé ?
Comment choisissez-vous la technologie ou l’architecture à utiliser pour vos projets ? Quels sont les critères ou les facteurs qui influencent votre décision ?
Avez-vous déjà regretté d’avoir choisi une technologie ou une architecture trop excitante ou trop ennuyeuse ? Quelles ont été les conséquences pour votre projet ?
Comment faites-vous pour rester à jour sur les technologies ou les architectures existantes ou émergentes ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de smarties
Expert confirmé https://www.developpez.com
Le 18/07/2023 à 16:00
Quelle est votre opinion sur le sujet ? Partagez-vous le point de vue de cet ingénieur ? Préférez-vous l’architecture ennuyeuse ou excitante ? Pourquoi ?
Je suis globalement d'accord avec lui. Généralement un service a besoin pour le développement
- d'une base de données
- d'un back-end avec éventuellement des appels asynchrones à la BDD ou à d'autres services, un pool de connexion à la BDD
- d'un éventuel front

Le cache peut être pris en compte si on connaît bien à l'avance la taille et la fréquence des données à traiter.

Ensuite on a le processus de qualité automatisé mais ça ne rentre pas vraiment en compte dans l'architecture

Pour le déploiement en production on a généralement besoin de surcouche(s) afin de gérer les connexions et la sécurité :
- serveur web Nginx
- parfois un peu de routage avec Traeffic par exemple

Quelle est la technologie ou l’architecture la plus excitante que vous ayez utilisée ou vue récemment ? Qu’est-ce qui vous a plu ou impressionné ?
Python/FastAPI - Postgres, Redis

Quelle est la technologie ou l’architecture la plus ennuyeuse que vous ayez utilisée ou vue récemment ? Qu’est-ce qui vous a déplu ou ennuyé ?
Apache - Appli ColdFusion - MySQL
Application native Delphi + Oracle

Comment choisissez-vous la technologie ou l’architecture à utiliser pour vos projets ? Quels sont les critères ou les facteurs qui influencent votre décision ?
- Avec le langage que je maîtrise (Python ou Rust), les bibliothèques existantes, le marché de l'emploi
- Pour la BDD c'est PostgreSQL et SQLite (pour les petits projets [perso majoritairement]), je ne serais pas contre l'utilisation de SQL Server maintenant qui commence à arriver sous Linux

Avez-vous déjà regretté d’avoir choisi une technologie ou une architecture trop excitante ou trop ennuyeuse ? Quelles ont été les conséquences pour votre projet ?
- PHP-MySQL quand j'ai commencé à développer. PHP était en version 3-4, et c'était le bazar dans les projets et je ne connaissais pas de framework à cette époque.
- Application native Delphi + Oracle, la BDD Oracle était horriblement longue à lancer puis créer

Comment faites-vous pour rester à jour sur les technologies ou les architectures existantes ou émergentes ?
En venant sur ce forum il y a parfois de bonnes trouvailles
1  0