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 ?
Hype Driven Development : quelles sont les technologies adoptées par les équipes de développement
En suivant tout simplement la mode ?
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
Une erreur dans cette actualité ? Signalez-nous-la !