Hype Driven Development : quelles sont les technologies adoptées par les équipes de développement
En suivant tout simplement la mode ?

Le , par Michael Guilloux, Chroniqueur Actualités
Le développement de logiciels ne s'est jamais limité à la simple écriture de code, mais désigne un ensemble de dispositions ou techniques utilisées pour produire un code de bonne qualité. La question est donc de savoir comment s'organiser, quelles pratiques de pilotage et de réalisation de projet informatique utiliser ou encore quels principes suivre pour y arriver. Autrement dit, quelle philosophie doit piloter le développement logiciel ?

De nombreux chercheurs ont essayé de répondre à cette question en préconisant un certain nombre de méthodes, y compris celles dites agiles. Bon nombre de développeurs entendent par exemple souvent parler de test-driven development (TDD) ou en français développement piloté par les tests. Il s'agit d'une technique de développement de logiciel qui préconise d'écrire les tests unitaires avant d'écrire le code source d'un logiciel. Il y a aussi le behavior-driven development (ou BDD), une méthode agile qui encourage la collaboration entre les développeurs, les responsables qualités, les intervenants non techniques et les entreprises participant à un projet de logiciel. Il a été conçu comme une réponse au Test Driven Development.

On peut encore citer, entre autres, le Documentation-Driven Development (DDD) ou développement piloté par la documentation. Il suit la philosophie suivante : du point de vue d'un utilisateur, si une fonctionnalité n'est pas documentée, alors elle n'existe pas, et si une fonctionnalité est documentée de manière incorrecte, elle ne marche pas. Ainsi, la première étape du développement piloté par la documentation consiste à documenter la fonctionnalité. Et si possible, la documentation devrait être examinée par les utilisateurs avant que le développement ne commence. Une fois la documentation écrite, le développement doit commencer en suivant, de préférence, la technique de développement piloté par les tests.

Connaissez-vous également le Hype Driven Development ?

Dans la réalité, certaines équipes adhèrent aussi à une nouvelle philosophie de développement appelée Hype Driven Development ou HDD. On parle de Hype Driven Development, lorsque les équipes de développement prennent des décisions à propos d’architectures logicielles ou de piles techniques en se basant juste sur des avis biaisés, les médias sociaux, et en général sur ce qui est considéré cool ou à la mode, plutôt qu’en faisant des recherches solides et en prenant en compte l’impact que cela pourrait avoir sur leurs projets. Il s'agit donc d'un développement piloté par une technologie tendance, dont l'importance ou les avantages sont parfois présentés de manière exagérée. Ce genre de technologie est appelé technologie « hype ».

Le Hype Driven Development se présente sous différentes formes, que vous avez probablement déjà vues. C'est le cas lorsqu'une équipe ou une personne décide d’utiliser une technologie, une architecture ou un design en se basant sur ce qu’un blogueur populaire a écrit ou ce qui est tendance sur Twitter, Facebook, GitHub et autres sites de communautés de développeurs.

Quelques exemples de technologies « hype »

Les exemples de technologies hype sont probablement nombreux, mais bien sûr, c'est à l'appréciation de chacun. Comme l'explique le développeur Ozgur GUL, dans un billet de blog, c'est le genre de technologies que beaucoup de développeurs ou d'équipes ont tendance à utiliser juste parce que d'autres les utilisent, alors que leur popularité est boostée par des campagnes marketing qui n'insistent pas souvent sur leurs inconvénients. Ce serait le cas par exemple de la blockchain. Si les chaînes de bloc sont utilisées dans un nombre croissant de domaines, Ozgur GUL pense qu'il n'y a pas de raison qui justifie cela. La blockchain a eu pour premier objectif de permettre la création de cryptomonnaies, mais ces dernières sont remises en cause. Il ne devrait donc plus y avoir de raison d'utiliser la blockchain. Par l'arbre de décision ci-dessous, il montre dans quels cas l'on doit la technologie de blockchain...


Outre la blockchain, le développeur cite GraphQL. C'est un langage de requêtes développé par Facebook qui propose une alternative aux API REST dont le stockage est éventuellement distribué. Mais cela ne fait pas de GraphQL un remplacement de REST. C'est une alternative, dit-il. La liste de technologies hype d'Ozgur GUL inclut aussi MongoDB qu'il voit comme « un exemple de marketing parfait ». Ozgur GUL pense que les développeurs devraient étudier les avantages et inconvénients de convertir leurs bases de données SQL en NoSQL, et ne devraient pas le faire tout simplement parce que d'autres utilisent MongoDB. D'ailleurs, il pense qu'il y aurait des raisons de ne jamais utiliser MongoDB et les bases de données NoSQL en général.

Il en est de même pour les microservices. En divisant votre application monolithique en microservices, il est possible que le développement soit beaucoup plus lent et le déploiement plus difficile, si vous n'avez pas de compétences dans le domaine. L'utilisation des microservices dépend aussi de la taille du projet, un aspect dont il faut tenir compte avant de se lancer.


On retrouve enfin dans la liste des technologies le serveless et Kotlin. Parmi les nouvelles tendances apportées par le cloud, les architectures Serverless (ou sans serveur) font le buzz depuis un certain moment. Elles promettent de changer la façon dont on conçoit et maintient les applications, en permettant aux développeurs de se concentrer sur le code plutôt que sur les serveurs, et baser le développement sur la logique business, et non sur les contraintes de déploiement ou de scalabilité. Mais Ozgur GUL pense qu'elles permettent juste aux fournisseurs de cloud de gagner plus d'argent.

En ce qui concerne Kotlin, depuis son support en tant que langage officiel pour le développement Android, certains rapports indiquent que le langage de JetBrains connaitrait une forte croissance. Et d'autres le voient même en train de gagner du terrain au détriment de Java. Certes, bon nombre de développeurs utilisent Kotlin depuis sa version bêta, mais Ozgur GUL dit ne pas connaitre un seul développeur Android qui est passé à Kotlin dans son entourage, peut-être parce que les langages comme Java font déjà l'affaire. Pour ceux qui songent à passer à Kotlin, il suggère donc de ne pas le faire simplement parce que d'autres utilisent le langage.

Source : Billet d'Ozgur GUL

Et vous ?

Qu'en pensez-vous ?
Avez-vous déjà vécu le Hype Driven Development ? Partagez votre expérience
Quelles technologies considérez-vous aujourd'hui comme des technologies hype ? Pourquoi ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de sergio_is_back sergio_is_back - Membre expérimenté https://www.developpez.com
le 10/04/2018 à 9:39
C'est le problèmes avec les modes, ça va, ça vient, ça repart

Tous les deux mois y'en a une nouvelle... On annonce à grand renfort de publication qu'on vient de réinventer la roue....
Si faillait investir à chaque fois dans la nouvelle techno annoncée, on passerait notre vie à réécrire indéfiniment le même soft.... Les nouvelles
technos sont annoncées avant que le soft en question soit terminé
Avatar de onilink_ onilink_ - Membre éprouvé https://www.developpez.com
le 10/04/2018 à 9:56
Même s'il a pas tout a fait tord, dire que la blockchain ne sert a rien est tout aussi stupide que vouloir l'utiliser a tord et a travers.
Je suis sur qu'a une époque beaucoup de personnes pensaient la même chose au niveau des réseaux de neurones (c'est quand même une technologique qui date très fortement, ça existais déjà dans les années 60 je crois), car ils n'étaient pas encore adapté a la puissance de calcul, et qu'on avait pas encore exploité leur plein potentiel (comme les réseaux convolutifs avec de meilleurs algorithmes d'apprentissage), mais maintenant on en a partout dans le domaine de l'IA... et ça marche bien.

Le plus gros soucis selon moi est de vouloir utiliser des technologies sans les comprendre, et surtout sans voir plus loin que le bout de son nez.
Une "vielle" techno a pas mal d'avantages face a une nouvelle techno dite plus prometteuse par exemple, comme sa stabilité sur le long terme, une mise a l'épreuve dans "le monde réel", une communauté...
Y a aussi la licence, l'accès au code a prendre en compte. Bref il faut trouver le point critique ou changer de techno est une réelle nécessite ou non, voir sur le long terme.
Et la, c'est vrai qu'au niveau des technos web, ça a l'air d'être un peu le foutoir.
Avatar de Ryu2000 Ryu2000 - Membre extrêmement actif https://www.developpez.com
le 10/04/2018 à 10:30
Citation Envoyé par Michael Guilloux Voir le message
Qu'en pensez-vous ?
On parle de processus de développement comme le Test Driven Development (TDD) et le Documentation-Driven Development (DDD) et au final on se retrouve avec des chefs de projets qui n'y connaissent rien en gestion de projet agile, au lieu de faire du SCRUM on utilise encore le cycle en V comme si on était en 1980. (Bon cela dit il est possible de faire du TDD en Cycle en V, il suffit d'écrire les tests avant d'écrire une fonction, mais normalement TDD c'est lié à l'agile (Extreme programming))

Après là le Hype Driven Development, ça me fait penser à celui qui doit développer un petit outils et qui va utiliser une nouvelle technologie (même si elle n'est pas la plus adapté aux besoins ni la plus performante) juste pour se former et essayer quelque chose de nouveau.

Citation Envoyé par Michael Guilloux Voir le message
Si les chaînes de bloc sont utilisées dans un nombre croissant de domaines, Ozgur GUL pense qu'il n'y a pas de raison qui justifie cela.
Bon le gars il n'y connait rien en monnaie.
Parce qu'il y a des économistes qui peuvent te trouver des raisons qui justifie l’existence des blockchains et des cryptomonnaie.
Certaines banques investissent beaucoup là dedans, c'est bien quelque part il y a une raison.

Blockchain : les banques multiplient les projets d'exploration
Blockchain : 8 banques européennes s'associent
Deutsche Bank, HSBC, KBC, Natixis, Rabobank, Société Générale, Unicredit et Banco Santander « ont l'intention de créer une société commune avant la fin 2017 qui détiendra, gèrera et distribuera » la plateforme « Digital Trade Chain » désormais rebaptisée « we.trade », ont indiqué les huit banques dans un communiqué conjoint. Le siège de cette nouvelle entité sera situé en Irlande, est-il précisé.

Développée depuis janvier 2017 avec IBM, la plateforme vise à faciliter les échanges commerciaux nationaux et transfrontaliers entre entreprises via la technologie blockchain, qui utilise des blocs de transaction codés et authentifiés s'ajoutant les uns aux autres.
JPMorgan pourrait émanciper sa blockchain afin de garantir son succès

Citation Envoyé par Michael Guilloux Voir le message
D'ailleurs, il pense qu'il y aurait des raisons de ne jamais utiliser MongoDB et les bases de données NoSQL en général.
Il doit également exister des raisons pour utiliser les bases de données NoSQL, il est possible que dans certains scénarios ce soit la technologie la plus adapté pour répondre à une problématique.

Citation Envoyé par Michael Guilloux Voir le message
En ce qui concerne Kotlin, depuis son support en tant que langage officiel pour le développement Android, certains rapports indiquent que le langage de JetBrains connaitrait une forte croissance. Et d'autres le voient même en train de gagner du terrain au détriment de Java.
J'étais pas au courant que JetBrains avait créer un langage de programmation pour Android
Avatar de JackJnr JackJnr - Membre confirmé https://www.developpez.com
le 10/04/2018 à 10:49
Entièrement d'accord avec Ryu2000. Même si ce que pointe ce dev est vrai de manière générale, son ton péremptoire (ou du moins ce qui transparait dans l'article) me laisse penser qu'il ne connait pas assez bien les sujets dont il parle.

Sans rentrer dans le détail, la blockchain est un formidable outil de transparence et de confiance entre différents acteurs. Les banques notamment sont en train de développer leurs propres blockchains privées pour rendre les transactions plus rapides et sécurisées. Et la blockchain est en train de percer dans la tracabilité des marchandises (d'où vient ma viande, comment a-t-elle été conservée et par qui ?), et s'immisce petit à petit dans l'IoT. Bref réduire la blockchain à la cryptomonnaie est un manque de connaissances évident.

Idem pour Mongo. Autant le SQL normal fait le boulot dans beaucoup de cas, autant le nosql peut se révéler bien plus adapté dans certains cas critiques. Twitter notamment, fonctionne avec du nosql. Bref encore une fois tout dépend du cas d'utilisation.

@Ryu : Kotlin a été développé pour palier au manque des lambdas (entre autres) de Java. Java 8 n'étant pas encore porté sous Android sa popularité est vite montée en flèche
Avatar de Bono_BX Bono_BX - Membre confirmé https://www.developpez.com
le 10/04/2018 à 13:08
Je sors tout juste d'une mission, chez un gros compte français, qui illustre parfaitement cela : une SSII a essayé de pénétrer le marché du compte en question en vendant les micro-services : ça brille, c'est beau ! Et on fait croire que l'on maîtrise parfaitement le sujet avec de beaux discours !

Sauf que la SSII (et surtout les deux gars qui ont porté le truc) se sont avérés être de gros pipeaux, et que toute l'infra s'est cassée la gueule car rien ne fut maîtrisé, et après plus d'un an de galère (aucune MEP ne s'est bien passée, les rollbacks s'enchaînant aux hotfix), la boîte a tout simplement fait appel à une autre SSII pour tenter de redresser la situation ... mais les dégâts sont monstrueux, aussi bien niveau infra, que code (coucou la dette technique !), que personnel (quand on voit que les meilleurs sont partis car nombreux en avaient marre du bazar ambiant ...). Sans compter que ça jette le discrédit sur les micro-services, qui pourraient s'avérer pourtant bien utiles !

Bref, typique du Hype Driven Development : on a fait briller un truc, on l'a bien vendu, on ne le maîtrise pas, on le met en place n'importe comment, et ça met le bronx !
Avatar de yann2 yann2 - Membre expérimenté https://www.developpez.com
le 10/04/2018 à 13:17
Bonjour

Je n'ai pas perçu le ton de l'auteur dans le même sens que vous deux (Ryu2000, JackJnr)). Si je comprend bien ce qu'il dénonce dans le "Hype Driven Development" c'est que certaines personnes se posent la question suivante :
  • Pas mal cette technologie !! Comment puis-je l'utiliser pour résoudre mon problème ?


Au lieu de se poser la question suivante :
  • Quelle est la meilleure technologie pour résoudre mon problème ?


Il ne dit pas que ces technologies ne servent à rien. Peut être que la confusion vient des illustrations qui sont un peu trop radicales
Avatar de Ryu2000 Ryu2000 - Membre extrêmement actif https://www.developpez.com
le 10/04/2018 à 13:40
Citation Envoyé par yann2 Voir le message
Il ne dit pas que ces technologies ne servent à rien. Peut être que la confusion vient des illustrations qui sont un peu trop radicales
Si c'est le cas je trouve qu'il formule mal ses phrases :
Citation Envoyé par Michael Guilloux Voir le message
Si les chaînes de bloc sont utilisées dans un nombre croissant de domaines, Ozgur GUL pense qu'il n'y a pas de raison qui justifie cela. La blockchain a eu pour premier objectif de permettre la création de cryptomonnaies, mais ces dernières sont remises en cause. Il ne devrait donc plus y avoir de raison d'utiliser la blockchain. Par l'arbre de décision ci-dessous, il montre dans quels cas l'on doit la technologie de blockchain...
Quand il dit ça il paraît pour quelqu'un qui est contre les cryptomonnaies, car en réalité elles ne sont pas remise en compte du tout.
Il y a le bitcoin qui est monté très haut très vite et qui est redescendu, mais aujourd'hui il est plus chère qu'avant Novembre 2017, ce qui ne va surement pas durer...
Celui qui a acheté des bitcoins en Octobre 2017 et qui revient aujourd'hui n'a encore rien perdu.
Le bitcoin c'est qu'une cryptomonnaie parmi d'autres.

Le gars a des arguments contre NoSQL en général :
Citation Envoyé par Michael Guilloux Voir le message
D'ailleurs, il pense qu'il y aurait des raisons de ne jamais utiliser MongoDB et les bases de données NoSQL en général.
Il a complétement raison quand il dit ça :
Citation Envoyé par Michael Guilloux Voir le message
Ozgur GUL pense que les développeurs devraient étudier les avantages et inconvénients de convertir leurs bases de données SQL en NoSQL, et ne devraient pas le faire tout simplement parce que d'autres utilisent MongoDB.
On ne doit pas choisir quelle technologie utiliser juste parce qu'elle à la mode. Chaque technologie a ses avantages et ses inconvénients. Ce n'est pas parce que c'est nouveau et branché que c'est mieux.
Il a raison, mais les passages sur le blockchain et le NoSQL sont mal formulé.
Il semble méprisant avec les cryptomonnaies, on dirait qu'il pense que ça n'a pas d'avenir, alors que personne ne peut savoir.
Avatar de xelab xelab - Membre expérimenté https://www.developpez.com
le 10/04/2018 à 14:16
Citation Envoyé par Ryu2000 Voir le message

"La blockchain a eu pour premier objectif de permettre la création de cryptomonnaies, mais ces dernières sont remises en cause"
Quand il dit ça il paraît pour quelqu'un qui est contre les cryptomonnaies, car en réalité elles ne sont pas remise en compte du tout.
Je suis allé voir l'article original, ce n'est pas l'auteur qui dit ça mais le rédacteur de developpez.com. En revanche on peut reprocher à l'auteur de l'article d'avoir une vision réductrice de la blockchain (même si effectivement il y a peu de chances que beaucoup de développeurs en aient vraiment besoin).
Avatar de Ryu2000 Ryu2000 - Membre extrêmement actif https://www.developpez.com
le 10/04/2018 à 15:04
Citation Envoyé par xelab Voir le message
Je suis allé voir l'article original, ce n'est pas l'auteur qui dit ça mais le rédacteur de developpez.com.
Ah !
Alors c'est peut être Michael Guilloux qui a un problème avec les cryptomonnaies alors ^^
Avatar de koyosama koyosama - Membre éprouvé https://www.developpez.com
le 10/04/2018 à 17:44
J'étais jeune aussi, j'étais influençable. Quand un gars me dit que typescript c'est un langage, j'ai juste et lui expliquer la vie. Au pssage il m'a lancé les vertu de NodeJS (encore un gars qui a fait un tuto pour débutant comme freecodecamp).
Au final, quand tu rencontres des problématiques plus poussés, c'est pas vraiment la stack qui est important, mais le workflow, l'organisation et la sastifaction cliente.

A chaque meetup :
  • "Ouais reactive native c'est super ... c'est l'avenir"
  • Ionic c'est super pour faire des applications mobile (plus jamais ...)
  • "Xamarin peut faire du multi-plateforme, tu connais ?"
  • "Aie tu sais de l'ASP.NET Core. Nous on cherche ...", regarde le code ... ASP.NET 4 ... hum
  • Celle là c'est la meilleure : "Tu vas voir Windows Phone ça va devenir populaire"
  • "Nous optimisons des sites wordpress comme des pros"
  • "Ouais je fais du développement drupal depuis des années ..." "Comment c'est Drupal 8 ?" "... Désolé j'utilise que Drupal 7"
  • "le BDD ça sert à rien, ça ralentit le développement"
  • "Tu sais faire du TDD ?"
  • "Ruby n'a pas besoin de parallélisme"
  • "Il faut prendre Firebase, c'est une base de données temps réel"
  • "React JS/Vue.JS/Angular ... tu connais ?"
  • Le C#/Java c'est comme Java/C# ...
  • Le/La ***** est le meilleur pays informatique dans le monde ...
  • "Regarde cette technologie est bien, regarde cette article", regarde l'article et voit que le gars qui a gagné à un hackathon d'une journée et pourquoi il a utilisé cette technologie ...
  • "Eh avant j'utilisais VMware, maintenant j'utilise Virtual Box" (dans ma tête what ...) "Tu me dire c'est quoi la différence entre un hyperviseur et un émulateur" "J'en sais rien, il y a un rapport ?" ... Oh boy ...


J'ai rien contre tout ça, mais comme le scrum. Encore des gens qui sort ces mots sans les comprendre et les utiliser ou comprendre la base de leur méchanisme. Il faut pas utiliser tout et n'importe quoi et savoir pourquoi on l'utilise.
Hype cela peut être utile mais pas vraiment pour qui l'on croit. Le Hype peut être une religion et je le vois sur Quora à longueur de journée.
Contacter le responsable de la rubrique Accueil