Le diagnostic vient de tomber : votre projet risque de ne pas aboutir.
Pourtant, pour résoudre les problèmes d’un projet tech, 3 méthodes efficaces peuvent être mises en œuvre.
Que l’origine des dysfonctionnements soit une mauvaise analyse des besoins, des choix techniques inadaptés, les compétences insuffisantes de vos équipes ou le désintérêt d’un prestataire, voici comment tenter de sauver votre projet.
Méthode 1 : Ne pas hésiter à supprimer le problème…voire l’application
Si les problèmes ont une origine technique, l’application développée sera difficile à sauver. Il est alors contre-productif de continuer à chercher des solutions pour résoudre les problèmes tech et tenter de sauver le projet à tout prix.
En effet, la correction d’erreurs graves de conception dans l’architecture est souvent très coûteuse. Dans cette hypothèse, il est parfois préférable de reprendre le développement « from scratch » et de se lancer dans le redéploiement complet du projet.
Méthode 2 : Gérer les problèmes périphériques
Si à l’issue de la première analyse, il s’avère que l’application mérite d’être sauvée, il faut alors s’intéresser aux problèmes humains. Cette étape est assez délicate à entreprendre, car lorsque des dysfonctionnements ou des désaccords apparaissent au cours d’un projet, les sentiments négatifs se développent entre les différents acteurs, chacun rejetant la faute sur l’autre et ayant l’impression de s’être fait avoir par l’autre prestataire.
Or, ces ressentiments altèrent et faussent la vision que vous avez du projet et risquent de vous empêcher de résoudre les problèmes d’un projet tech.
Il est donc important de faire preuve de bon sens et de pragmatisme en évaluant toutes les solutions possibles et en se posant les bonnes questions :
Est-il opportun de changer de prestataire ? Quels seront les bénéfices d’un tel changement ? Quels seront les éventuels coûts supplémentaires ?
Faut-il changer vos équipes pour redonner un second souffle à votre projet grâce à de nouveaux collaborateurs ?
Est-il possible de faire une pause dans le développement du projet, le temps de faire le point, de prendre du recul et d’éventuellement réorganiser vos équipes et vos prestataires ?
Une nouvelle organisation du projet est-elle envisageable ? Combien coûterait un tel changement et vos collaborateurs seraient ils prêts à une telle évolution ?
Méthode 3 : Gérer les problèmes techniques
Pour gérer vos problèmes techniques, il existe une méthode simple et facile à appliquer. Il s’agit de classer les risques encourus et les actions à entreprendre en fonction de 4 critères :
L’impact : le coût associé à la survenance du risque
La probabilité de survenance du problème
Le coût lié à la mise en place d’un correctif
La catégorie associée au risque (architecture, sécurité du code, etc.)
Vous pourrez ainsi déterminer quelles sont les actions prioritaires à mener pour résoudre les problèmes d’un projet tech.
Le cas particulier des problématiques de performance
Site Internet lent, chargement difficile d’une application, les problèmes de performance sont particulièrement gênants pour les utilisateurs et peuvent remettre en cause l’efficacité de tout un projet web. Malheureusement, ils sont difficilement détectables avant la mise en production du projet et apparaissent donc souvent en fin de mission. Pour autant, il n’est pas toujours trop tard pour remédier à ces problèmes.
Si l’architecture technique est bonne, différentes solutions d’optimisation peuvent être mises en place. Au contraire, si l’architecture de l’application a été mal conçue ou n’est pas adaptée, la première méthode pour résoudre les problèmes d’un projet tech devra être envisagée, au risque de devoir tout reprendre à zéro.
Vous voulez en savoir plus sur les différentes solutions pour résoudre les problèmes d’un projet tech, découvrir des exemples de cas pratiques auxquels The Coding Machine a dû faire face et profitez de quelques recommandations issues de notre expérience ? N’hésitez pas à télécharger notre livre blanc sur le sauvetage de projet.
Alors que les mobinautes sont de plus en plus nombreux dans le monde et que le nombre d’applications téléchargées ne cesse d’augmenter, difficile de passer à côté du développement mobile de votre activité !
Mais comment créer une bonne appli mobile ?
Notre équipe de Lyon répond à cette question et nous confie tout ce qu’il faut savoir sur le Framework React Native.
Les méthodes de développement mobile
Aujourd’hui, il existe trois méthodes pour développer une application mobile :
Le développement natif : il consiste à développer une application pour chaque langage du marché (iOS, Android, Windows…). Mais, la diversité des environnements de développement, a entraîné la naissance de nouvelles solutions, appelées hybrides.
Le développement hybride : il permet le développement d’une application dans un navigateur grâce à des technologies web ou Webview (HTML, JavaScript, CSS…).
Avec ce type d’applications, nous perdons des fonctionnalités et donc de la performance du fait des nombreuses couches. En effet, les couches Webview et Cordova se greffent à la couche native du téléphone.
Face à ce constat, de grands noms comme Facebook ont constaté que l’hybride n’était pas la solution la plus adaptée en termes de performances. Ils ont donc créé React Native.
React Native : est une technologie Open Source développée par Facebook qui permet de développer avec un seul langage, des applications pour Android et iOS.
Grâce à cette nouvelle technologie de développement mobile avec une couche React Native qui se greffe directement à la couche native du téléphone, les applications React Native sont plus performantes et sécurisées.
Le développement mobile avec React Native
De quoi se compose React Native ?
À la racine, on dispose d’un dossier App contenant du React, d’un dossier iOS et d’un dossier Android. Dans ces deux derniers, nous avons de vraies applications qui communiquent avec React. Pendant le développement mobile, on attache peu d’importance aux dossiers iOS et Android, mais seulement au dossier App qui va communiquer avec l’application native.
Application React Native : comment ça marche ?
Sur le téléphone, lorsqu’une application React Native est lancée, il y a deux threads qui fonctionnent en parallèle : le thread JavaScript contenant le code et le thread UI, natif, qui lui affiche les composants. React Native a développé un bridge qui permet de faire communiquer ces deux threads qui parlent des langages différents : le thread JavaScript envoie son composant de code (ses informations JSON) au bridge React Native qui va le traduire et l’afficher sur l’écran de l’application.
Les questions récurrentes sur React Native
Est-ce que je peux porter mon application mobile sur le web ? Porter du React Native sur le web n’est pas impossible, mais ce n’est pas une bonne idée pour autant ! En effet, une application mobile est développée selon l’ergonomie et les composants d’un téléphone. La porter sur le web n’a donc aucun intérêt.
Est-ce que mon application va être acceptée sur les stores ? En hybride, il y a beaucoup de problèmes à déployer son application sur les stores, mais en React Native, les dossiers iOS et Android sont 100 % fiables.
Mon application est-elle aussi sécurisée qu’une application native ? La technologie React Native n’introduit pas de faille lors du développement mobile, si elle est bien utilisée ! Il y a toutefois des clés à connaître, comme ne pas stocker d’informations sensibles dans le téléphone.
Le point de vue de The Coding Machine
Chez The Coding Machine nous développons des applications mobiles grâce au React Native, voici notre retour d’expérience !
Nos points de vigilances
Les montées de version : pendant un certain temps React Native développait une version par jour. Il est donc important de tout suivre.
Les bugs, mais ils sont très vite corrigés grâce à une communauté active.
iOS vs Android, certains comportements peuvent être différents entre ces deux systèmes d’exploitation.
Le déploiement sur les stores prend beaucoup de temps. Il faut donc anticiper !
Nos bons points
La montée en expérience est très rapide. Toute personne ayant fait du React, du Vue ou du JavaScript est capable de développer ses compétences très rapidement.
Côté UX et performances, React Native n’a rien à envier aux applications natives.
L’automatisation des déploiements grâce à des outils comme Fastlane que nous utilisons.
Nos petits tips
Réaliser régulièrement une veille technologique, car React Native est un framework en constante mutation.
Faire attention aux maquettes, nous avons l’habitude d’en faire à destination du web mais il y a des différences pour le développement mobile.
Développer sur Mac : en effet, il est possible d’émuler sur un téléphone Android et un iPhone à partir d’un Mac alors qu’émuler une application à partir d’un PC n’est pas possible sur iPhone.
Prendre en compte les encoches des téléphones lorsque vous créez votre application.
Depuis 2015, les entreprises qui souhaitent mettre en place ou développer leur stratégie mobile ont une alternative aux applications mobiles : les Progressive Web Applications. Si les PWA présentent de nombreux avantages pour le développement d’une stratégie mobile, cela suffira-t-il à prendre la place des applications mobiles traditionnelles ? Pas si sûr…
Le développement des appareils et des applications mobiles
Alors qu’à ses débuts, le web se développait exclusivement sur les ordinateurs fixes, ces dernières années, l’apparition des smartphones a démocratisé l’accès à Internet et a modifié les comportements des utilisateurs.
Dans ce contexte et pour répondre aux nouveaux besoins des clients, les premières applications mobiles ont vu le jour et les entreprises ont dû mettre en place une stratégie mobile.
Le nombre d’applications mobiles n’a depuis pas cessé d’augmenter et ne semble pas connaître la crise au regard du dynamisme de ce marché.
L’attrait pour les applications mobiles et leur développement sont en grande partie liés aux fonctionnalités inédites implémentées par les développeurs via des interfaces de programmation (API), qui offrent aux utilisateurs des applications une expérience plus riche avec notamment :
Un accès hors-ligne,
Des notifications (push),
La synchronisation de tâches de fond,
La géolocalisation,
L’accès aux différentes technologies de l’appareil : photo, gyroscope, Bluetooth, NFC, etc.
Les applications occupent actuellement les écrans des téléphones et des tablettes par dizaines, bouleversant ainsi notre quotidien et augmentant notre utilisation des appareils mobiles.
Quelles sont les limites des applications mobiles ?
Malgré leur développement, les applications mobiles n’ont cependant pas remplacé le web et présentent certaines limites :
Des applications mobiles peu utilisées : si nous n’avons jamais autant téléchargé d’applications sur nos téléphones, le paradoxe est que nous n’en avons jamais utilisé aussi peu.
Des applications coûteuses : Tout d’abord pour le développement, car pour un seul concept d’application il est nécessaire de développer deux applications natives (iOS et Android) et ces développements ne sont pas simples à maîtriser. Il y a également le coût associé à la promotion de l’application au sein des différentes boutiques d’applications (App Store, Google Play).
Un accès difficile pour les clients : si vous ne fournissez pas directement un lien de votre application vers la boutique d’applications, l’utilisateur devra au préalable faire une recherche dans la boutique pour espérer trouver votre application parmi une multitude de concurrents, puis enfin la télécharger. Le risque est donc de perdre des centaines de potentiels utilisateurs.
Applications web PWA, de nouvelles opportunités pour développer une stratégie mobile
Apparues pour la première fois en 2015, les PWA présentent de nombreux avantages. Elles permettent :
d’allier technologies web et nouveautés offertes par les appareils mobiles (appareil photo, GPS, notifications…),
d’installer facilement une application web sur tous types d’écrans et de supports, et ce sans distinction : ordinateurs, mobiles (Android ou iOS) et tablettes,
de proposer une expérience améliorée par la PWA aux utilisateurs sur mobile et ordinateur,
de diminuer fortement les coûts de développement par rapport à une application mobile native.
Développer une application web PWA plutôt qu’une application mobile native reste toutefois un choix qui n’est pas évident et qui dépend de la stratégie mobile établie en fonction du domaine d’activité, des clients visés, etc.
Mais, opter dès aujourd’hui pour une Progressive Web Application comme solution de développement d’une stratégie mobile, c’est certainement s’inscrire dans ce que sera le web ces prochaines années. Cependant, si les PWA présentent de nombreux avantages, beaucoup de défauts restent encore à corriger : installation pas forcément simple, maturité des outils de développement ou encore la présence sur les stores…
Développer une PWA (Progressive Web Application) est désormais une alternative aux applications mobiles natives, lorsque l’on souhaite proposer une expérience enrichie sur mobile aux utilisateurs.
Avantages et mise œuvre, voici l’essentiel à retenir sur les PWA.
Les 8 principaux avantages d’une Progressive Web Application
Pour être qualifié de “Progressive Web Application”, un site web doit être :
• Responsive : Le site Internet s’adapte à n’importe quel type d’appareil (smartphone, tablette, ordinateur), à n’importe quelle forme d’affichage et à toutes les tailles des écrans.
• Indépendant de la connexion : Le site Internet s’enrichit pour être utilisable hors-ligne. Il est donc accessible plus rapidement.
• Installable : L’application web peut être ajoutée sous la forme d’un raccourci sur l’appareil. Il s’agit ici du critère principal permettant d’identifier une PWA sur un appareil compatible.
• Automatiquement à jour : Le site Internet se met automatiquement à jour de façon transparente pour l’utilisateur.
• Sécurisé : La fiabilité du site Internet est assurée par le protocole HTTPS.
• Optimisé pour le référencement : L’application web est référencée par les moteurs de recherche de la même manière que les autres sites Internet.
• Amélioré grâce à l’ajout de fonctionnalités spécifiques : L’expérience de l’utilisateur est enrichie grâce à des fonctionnalités propres à l’appareil utilisé comme par exemple les notifications “push” pour les smartphones.
• Partageable : Au sein de l’application mobile, il est possible de partager, sans friction, une page en particulier à l’aide d’une URL.
Cette liste de caractéristiques n’est toutefois pas exhaustive, certains critères variant selon les appareils supportés.
3 concepts pour mettre en place une Progressive Web Application
Comme pour le HTML5 il y a plus de dix ans, les PWA sont une collection de nouvelles technologies et méthodologies qui permettent de transformer un site web classique en une application web. Dans ce cadre, trois concepts sont essentiels pour développer une PWA :
MANIFEST.JSON :
Le fichier manifest.json est un fichier qui va décrire les métadonnées du site mobile : nom de l’application, icône, URL de démarrage, orientation de l’écran, couleur du thème, etc.
SERVICE WORKER :
Clef de voûte d’une Progressive Web Application, il s’agit d’un fichier JavaScript qui sera exécuté en parallèle du serveur web. Il sert ainsi de proxy interne qui peut intercepter les requêtes HTTP pour, par exemple, utiliser le cache propre à l’application, et permettre un fonctionnement hors-ligne de la Progressive Web Application.
APPLICATION SHELL :
L’application Shell correspond au squelette de l’application web. L’objectif principal de développer une PWA est le chargement rapide, il est donc important de faire apparaître de façon quasi instantanée, un premier aperçu de l’application, appelé le First Meaningful Paint. Ce squelette pourra être mis en cache et être complété par des données dynamiques lors du chargement de l’application.
4 outils pour développer une PWA
Parmi les outils utiles pour développer une PWA :
Lighthouse PWA Analysis Tool : Il permet d’évaluer la qualité de votre site Internet (vitesse, accessibilité, etc.), mais également de vérifier la compatibilité de votre site avec les principes d’une PWA. Toutes ces informations sont ensuite enregistrées dans un rapport d’audit et une note de 0 à 100 est donnée, l’objectif étant d’atteindre la note maximale de 100 pour une Progressive Web Application optimale.
Web App Manifest Generator : Il permet d’accélérer l’écriture du fichier manifest.json en automatisant notamment la génération des vignettes pour les différentes tailles d’icône.
What Web Can Do Today : Il précise toutes les fonctionnalités qui peuvent être prises en charge par votre navigateur web et évite ainsi les problèmes de compatibilité avec les PWA.
MobileHTML5.org : Il propose de tester la compatibilité des services d’une Progressive Web Application sur votre navigateur.
C’est décidé, vous souhaitez développer une PWA ?
Avant de vous lancer, prenez le temps de lire notre livre blanc ! Vous y trouverez des explications et exemples concrets qui vous aideront à faire les bons choix !
Vous avez des problèmes de performance web liés à un fort trafic ou plus globalement à votre bande passante ?
Pas de panique, voici quelques astuces pour réduire les flux entre un site et le navigateur du visiteur et ainsi booster la vitesse d’un site web.
Temps de connexion et temps de latence : les différents composants de la vitesse d’un site
Un navigateur Internet doit recevoir l’ensemble du code HTML (DOM) du serveur avant de pouvoir afficher le contenu. Pour chaque élément, contenu, image, vidéo…, le navigateur se connecte au serveur grâce au protocole TCP/IP. C’est le temps de connexion.
À cela, il faut ajouter le temps de latence du serveur qui ne répondra pas toujours instantanément, car il traite les demandes dans l’ordre d’arrivée. Ces temps sont irréductibles.
Sur une page HTML classique, 70% du temps d’affichage n’est pas lié au temps de téléchargement, mais au temps nécessaire à la connexion auquel s’ajoute le temps de latence.
Pour booster la vitesse d’un site et optimiser sa performance web, il est donc nécessaire de réduire le nombre de requêtes au serveur et pour cela de limiter l’utilisation de la bande passante.
Booster la vitesse d’un site en réduisant la bande passante
Il existe 3 solutions pour réduire la bande passante.
1- Utiliser le cache
Les systèmes de cache évitent de recharger des éléments déjà téléchargés. Ceci permet des allers-retours serveur beaucoup plus rapides ou même de les éviter.
Par défaut, la balise HTTP Etag (entity tag) est activée, elle aide à ne pas télécharger deux fois les mêmes fichiers. Ce système n’évite pas les allers-retours client-serveur, mais il évite de renvoyer le contenu des fichiers, et donc de trop consommer de bande passante et de limiter le traitement que doit effectuer le serveur.
Plusieurs options s’offrent à vous pour réduire le nombre de fichiers, on vous en propose deux :
Limiter le nombre de fichier CSS et JS : Il est possible de regrouper les fichiers CSS ou JS en un seul. Plusieurs outils sont disponibles en ligne.
Regrouper les images – Sprite : Vous pouvez appliquer la méthode « Sprite » : il s’agit ici de regrouper les images du thème qui sont couramment utilisées en une seule. L’avantage est de n’utiliser qu’un nombre réduit d’images. En revanche, il faudra, via une feuille de style, afficher l’image en arrière-plan et la positionner.
3- Réduire la taille des fichiers
Les solutions sont différentes selon le type de fichier :
Réduire la taille des images : Si vous avez des images qui ne font pas partie intégrante du thème, vous devez les réduire au maximum et éviter de charger des images trop grandes. Il est préférable de les réduire ou d’utiliser des mécanismes automatiques de mise à l’échelle.
Limiter le poids des fichiers : Deux moyens sont possibles :
Compression Gzip : Les fichiers HTML, CSS et JavaScript sont des fichiers texte particulièrement adaptés à une compression ZIP importante. Le temps nécessaire à cette décompression est négligeable pour le visiteur. En réduisant les flux envoyés aux utilisateurs, vous réaliserez une économie de bande passante et booster la vitesse d’un site.
Minify : Une autre possibilité pour limiter le poids de vos fichiers CSS et JavaScript est de les minimiser. La minimisation supprime les retours à la ligne, les tabulations, ainsi que les commentaires. La lecture de ces fichiers devient donc quasiment impossible, mais ce n’est pas un problème en production. Pour vous aider dans cette démarche, vous pouvez essayer https://www.minifier.org/
Grâce à ces différentes solutions, vous allez optimiser l’utilisation de la bande passante et booster la vitesse d’un site !
Les utilisateurs vont ainsi pouvoir aller plus vite sur votre site et votre SEO n’en sera que plus performant.
Pour aller plus loin dans votre démarche, consultez notre livre blanc
Pour poser un diagnostic sur d’éventuels dysfonctionnements et tester les performances d’un site web, plusieurs outils d’analyse existent.
Utiles pour simuler le fonctionnement d’un site ou d’une application et investiguer plus en profondeur concernant l’utilisation des ressources, ces outils vous permettront d’optimiser vos performances web et d’identifier les problèmes sous-jacents.
Des outils pour reproduire les problèmes de performances web
Plus on effectue des optimisations et plus il est complexe de reproduire les conditions dans lesquelles les performances se dégradent. Mais savoir si on exécute le bon scénario de test est une étape qu’il ne faut pas négliger ! Pour vous aider à tester les performances d’un site web, voici 4 outils :
Il s’agit d’un outil d’évaluation des performances de votre serveur web qui indique le nombre de requêtes par seconde que votre application est capable de prendre en charge.
Point fort : Vous pouvez simuler l’arrivée massive d’utilisateurs sur une page.
Point faible : Il n’est pas fait pour simuler efficacement l’activité d’un ou plusieurs utilisateurs.
Il permet de simuler un grand nombre de requêtes concurrentes et donc de simuler le comportement du site avec un grand nombre de visiteurs. Il produit une synthèse graphique des résultats du test.
Point fort : Il permet de tester les performances d’un site web, mais également beaucoup d’éléments annexes (serveurs mails, connexion JDBC…)
Point faible : Il est difficile de créer un jeu de tests qui soit représentatif du comportement exact de l’application
Il permet de réaliser des tests en simulant l’activité d’un ou plusieurs utilisateurs sur un site web. Grâce au plugin Firefox, vous pouvez également « enregistrer » un scénario et le rejouer à volonté.
Point fort : Il permet de jouer plusieurs fois le même scénario en parallèle.
4- BATCHS DE REQUÊTES SQL
Cet outil pour tester les performances d’un site web vous permet d’obtenir la liste de toutes les requêtes faites à la base de données pendant l’exécution d’un scénario représentatif, puis de le rejouer pour simuler l’impact de l’application sur la charge de votre serveur de données. Vous avez en outre la possibilité de rejouer le batch de façon unitaire pour mesurer le gain de performance ou d’en lancer plusieurs pour simuler un pic d’activité. Pour cela vous avez 2 options :
Écrire dans un journal de requêtes au niveau de l’applicatif
Configurer MySQL pour tracer toutes les requêtes
Des outils d’investigation pour tester les performances d’un site web efficacement
La solution peut parfois être évidente, mais dans certains cas il est nécessaire de préciser le diagnostic pour appliquer la correction appropriée. Des outils pour investiguer plus en profondeur l’utilisation des ressources sont alors utiles pour mener à bien votre démarche de test.
1- Logs Apache « Aïe ! Les temps de réponse se dégradent sous la charge ! Pourtant mon site répond correctement en temps normal. » Les Logs Apache tracent toutes les requêtes faites au serveur apache. En les configurant correctement, vous aurez la possibilité d’obtenir le temps de réponse de votre site. Idéal pour visualiser le comportement de votre site en fonction du nombre d’utilisateurs connectés !
2- Logs MySQL « MySQL consomme trop CPU ! » « Mon disque dur est saturé ! » Les logs MySQL retracent l’activité de votre serveur de données. Le journal de log simple pourra vous renseigner sur la stabilité du serveur MySQL. Enfin, le fichier des slow queries liste l’ensemble des requêtes dont la durée d’exécution est supérieure à un seuil donné.
3- XDebug « PHP consomme énormément de CPU ! » La fonction Profiler vous permet d’analyser les temps d’exécution de votre code PHP. Il permet de déterminer le temps passé dans chacune des fonctions du code, et donc d’identifier quelle partie du code est moins performante.
Attention toutefois avant d’utiliser n’importe lequel de ces outils, la compréhension de vos problèmes de performance est indispensable. En effet, la mise en place ces outils est parfois très chronophage.
Pour aller plus loin dans votre démarche et améliorer les performances de vos projets web n’hésitez pas à télécharger notre livre blanc.
Depuis déjà quelques mois, TheCodingMachine est souvent sollicitée pour des projets au sein de l’écosystème blockchain et NFT. Notre filiale Workadventu.re évolue aussi au sein de l’écosystème du metaverse, et a donc aussi dû analyser les différents enjeux relatifs à la création puis la vente de NFT.
Vous trouverez dans cet article quelques conseils pour vous aider à choisir une blockchain avant de lancer votre projet NFT.
En effet, lorsqu’il s’agit de lancer un projet NFT, il est crucial de bien comprendre la blockchain sur laquelle les transactions seront enregistrées. C’est le registre qui permettra de certifier la propriété de votre NFT puis d’enregistrer l’ensemble des transactions. Si on devait faire un parallèle, la blockchain est comme un notaire qui sert de tiers de confiance pour certifier la propriété d’un actif digital, puis les transactions qui y sont associées.
Cependant, le parallèle s’arrête là car chaque blockchain à ses propres spécificités qui auront un impact sur les coûts de votre projet donc la rentabilité de votre business model. Ces coûts peuvent aussi limiter votre capacité à acquérir une clientèle.
Nous vous proposons donc de récapituler les principales caractéristiques des différentes blockchain que vous devrez comprendre avant de lancer votre projet NFT. Cette analyse reste pertinente que vous développiez directement votre projet sur une blockchain ou que vous utilisiez une solution en marque blanche (comme Open Sea par exemple) qui va être compatible ou non avec différentes blockchains.
Avant de rentrer dans le concret et de choisir une blockchain, découvrez dans l’infographie ci-dessous un rapide résumé des questions à se poser.
Quelle blockchain pour votre projet NFT ?
Une crypto-monnaie
Par principe, toute transaction enregistrée dans une blockchain doit s’effectuer contre le paiement dans la crypto-monnaie associée. Choisir une blockchain, c’est donc choisir sa crypto-monnaie, les fluctuations de son cours, sa popularité, …
Même si un paiement s’effectue en devise classique (dollar ou euro), l’enregistrement sera toujours facturé en crypto-monnaie. Les plateformes NFT permettant un paiement en devise classique, reposent donc sur une logique sous-jacente de trading car il faut échanger les devises classiques contre des crypto-monnaies pour pouvoir enregistrer les transactions. Or, effectuer un tel trading est extrêmement risqué vu la volatilité du secteur, cela est donc réservé à des spécialistes comme par exemple Coinbase qui a annoncé lancer bientôt sa marketplace NFT.
Un mode de gouvernance
Avant de choisir une blockchain, vous devez comprendre les différents modes de gouvernance. Le mode de gouvernance désigne une manière propre d’enregistrer des transactions dans le registre : on parle de proof of work, de proof of stake ou même de proof of history. Chaque mode de gouvernance va venir influencer :
Le coût d’enregistrement d’une transaction : celui-ci est intimement lié aux enjeux de performance décrit dans le paragraphe suivant.
L’énergie que cela consomme : ce qui influence directement le coût et peut représenter un critère d’analyse dans une démarche environnementale.
La sécurité globale du système : bien que réputée infaillible, la blockchain ne l’est pas totalement en théorie, et chaque mode de gouvernance vient avec une théorie spécifique. Par exemple, dans le cas de la proof of work, il y a une faille possible si un acteur parvient à contrôler plus de 50 % de la puissance globale de calcul du réseau (il s’agit d’une puissance de calcul colossale mais cela est déjà arrivé).
Pour en savoir plus sur la définition de proof of work, proof of stake, proof of history :
Le principe fondamental est que pour mettre à jour la liste des transactions dans une blockchain, il faut résoudre un « block » c’est-à-dire un problème cryptographique nécessitant simplement de la puissance de calcul. Les différents modes de gouvernance font varier les règles du jeu :
Proof of work : c’est le premier mode de gouvernance inventé historiquement pour le bitcoin. Tout le monde essaie en même temps de résoudre le problème (le block). Le premier à y parvenir est celui qui met à jour les transactions et qui est récompensé en crypto pour ce travail (c’est ce qu’on appelle « miner »). Le problème est que ce mode de gouvernance gaspille énormément de puissance de calcul et donc d’électricité car tout le monde essaie de résoudre le problème alors qu’un seul acteur du réseau suffirait.
Proof of stake : dans ce mode de gouvernance, l’ensemble des acteurs va confier la résolution d’un block à un unique acteur du réseau, qui en contrepartie doit déposer des crypto-monnaies en tant que caution (stake). Ce mode de gouvernance est donc bien moins consommateur d’énergie, soit plus économique et plus écologique. C’est pour cela que Ethereum est en train d’évoluer pour passer de la proof of work à la proof of stake (une mise à jour majeure appelée « Docking »).
Proof of history : la proof of history est particulièrement connue pour la blockchain Solana. Un des problèmes du réseau blockchain est que pour déterminer qui a résolu en premier un « block », encore faut-il que l’ensemble du réseau ait la même heure. Ce travail de synchronisation de l’heure entre les différents nœuds du réseau a pendant longtemps pesé sur les performances. La proof of history permet d’horodater et de crypter les événements du réseau afin de vérifier le temps des transactions de manière asynchrone et distribuée pour gagner en performance.
Une performance en nombre de transactions par seconde
Depuis l’apparition de la blockchain, la problématique de scalabilité (accroissement) du nombre de transaction a été le défi technologique majeur pour une généralisation de son usage. A titre d’exemple, en février 2022, Ethereum est limité à 7-15 transactions par seconde, ce qui limite grandement son potentiel pour un usage généralisé en finance ou en logistique. Dans le cas des plateformes NFT basées sur Ethereum, c’est ce faible nombre de transactions par seconde qui va engendrer des frais importants de création et de vente de NFT.
Ainsi, choisir une blockchain performante est le meilleur moyen de réduire ses frais de transactions.
Une façon de rédiger des “smarts-contracts”
De la même manière que les pays ont des règles et des langues différentes pour rédiger des contrats, chaque blockchain va reposer sur des langages différents pour définir des types de transactions.
Par exemple, si vous souhaitez définir et effectuer des ventes aux enchères sur différentes blockchains, il sera nécessaire de coder le « smart-contract » qui va régir le fonctionnement de cette vente aux enchères selon les codes et le langage de cette blockchain. En pratique cela s’assimile à un langage de programmation comme Solidity pour Ethereum.
Ce qu’il faut retenir, c’est que pour pouvoir effectuer des transactions sur plusieurs blockchains différentes, il faut développer potentiellement autant de « smart-contracts » différents dans des langages différents (comme s’il fallait rédiger des contrats juridiques dans différentes langues pour différents pays).
Un écosystème technologique
Comme les blockchains vont nécessiter des langages différents pour rédiger des « smart-contracts » ou de manière plus large des applications. Chaque blockchain va avoir son propre écosystème technologique constitué d’applications spécifiques fournissant des services particuliers.
L’exemple le plus parlant est celui des crypto-wallets permettant de stocker des actifs digitaux, chaque crypto-wallet n’est compatible qu’avec un certain nombre de blockchain.
Lors du choix d’une blockchain, il faut donc être vigilant à la maturité de l’écosystème technologique et à sa pertinence par rapport à votre besoin. La richesse et la diversité de son écosystème est la raison principale par laquelle Ethereum domine aujourd’hui le marché.
Une communauté !
La technique c’est bien, mais dans un secteur en pleine ébullition, il ne faut pas oublier que c’est avant tout le support de la communauté, autant côté développeurs qu’utilisateurs, qui est garant de la viabilité d’une blockchain à long terme et de son écosystème. Bien évidemment, cela vient aussi jouer sur les cours de la crypto-monnaie associée, la boucle est ainsi bouclée …
… Une autre Blockchain ???
Et oui parfois une blockchain repose sur une autre blockchain, on parle alors de “Layer 2” ou même parfois de “Layer 3”. Par exemple, Polygon (associé à la crypto MATIC) est une blockchain de Layer 2 basée sur la blockchain Ethereum. Concrètement, cela signifie que vous allez devoir vous poser l’ensemble des questions précédentes à deux niveaux différents.
En conclusion
Initialement, choisir une blockchain unique sur laquelle baser sa plateforme NFT est un choix complexe et stratégique. Développer sa plateforme directement sur la blockchain nécessite de définir ses propres “smart-contracts” ce qui nécessite des ressources de développement spécialisées. De plus, élargir sa plateforme à d’autres blockchains (et donc d’autres crypto-monnaies pour les transactions) est une tâche complexe qui nécessite à chaque fois des développements spécifiques dans des langages potentiellement différents. Cette approche est donc essentiellement réservée aux start-ups technologiques souhaitant valoriser leur solution auprès d’investisseurs.
Si vous souhaitez simplement atteindre une nouvelle clientèle et générer rapidement des nouveaux revenus, nous vous recommandons d’utiliser des solutions plus simples qui sont diffusées en marque blanche comme Open Sea ou Venly. Elles ont aussi l’avantage d’être directement compatibles avec une ou plusieurs blockchains, ce qui permet de limiter le risque et de réduire le time-to-market.
Si vous souhaitez en discuter, n’hésitez pas à nous faire signe !
Vous venez de créer ou de modifier votre site web, et vous ne pouvez que constater son succès ! Le trafic sur votre nouveau site augmente, félicitations !
Malheureusement, la joie est de courte durée, votre site se met à ralentir ou ne répond plus.
Pour optimiser vos performances web et lutter contre les dysfonctionnements, ne vous laissez pas abattre et mettez en place un plan d’amélioration de vos performances web.
Les bonnes bases d’un plan d’optimisation de projet web
Pour bien démarrer et mener à bien un plan d’amélioration de votre projet web, plusieurs étapes sont primordiales :
N’appliquez pas de solutions préconçues : vous risquez de perdre du temps à mettre en place des solutions générales qui ne répondent pas à votre problème particulier.
Identifiez l’ensemble des problèmes : malheureusement, un problème ne vient jamais seul, il faut donc déterminer toutes les difficultés constatées, même les plus minimes.
Établissez un ordre des actions à menerdes plus simples aux plus complexes : on améliore souvent les performances par les actions les plus simples.
Mettez en place des solutions jusqu’au bout : et ce, même si le problème semble résolu au milieu du processus, à défaut les problèmes de performances risquent d’apparaître à nouveau.
La démarche globale pour optimiser vos performances web
Constater le problème de performances
Les premières pistes d’amélioration permettent d’orienter la recherche de solution et d’identifier d’où vient le problème pour 4 domaines :
Applicatif (Apache – PHP)
Base de données
Réseau
Infrastructure matérielle
Reproduire le problème et trouver une solution
Reproduire les conditions dans lesquelles les performances se dégradent vous permettra de travailler plus rapidement sur le problème. Une fois que vous les avez identifiées, il faut les mettre en œuvre et tester les différentes solutions pour optimiser vos performances web.
Mettre en production et mesurer l’impact de la solution
Grâce à une démarche préalable de diagnostic des problèmes, vous réduisez le risque et le temps nécessaires à la mise en place des dispositifs d’optimisation. Attention toutefois, car deux éléments peuvent venir perturber la mesure exacte de l’optimisation :
Les différences entre les environnements : vous retrouverez rarement un environnement de pré-production parfaitement identique à celui de la production.
Les conditions dans lesquelles les performances se dégradent : il est souvent trop coûteux ou impossible de reproduire la situation problématique à l’identique.
Les meilleures pistes à suivre pour optimiser vos performances web
Un projet est un assemblage de plusieurs ressources matérielles et logicielles dont certaines sont susceptibles de limiter la performance de l’ensemble. Les outils de surveillance des infrastructures de production vous permettront de déterminer quelles ressources sont liées à la dégradation des performances. Pour cela, vous devez :
Évaluer l’utilisation des ressources et déterminer quelle ressource est utilisée de manière trop intense.
Comprendre dans quelles conditions et à quels moments les performances web sont moins bonnes.
Procéder par itérations : la libération d’une ressource ne va pas solutionner toute votre performance. Bien souvent, une optimisation va révéler qu’une autre ressource qui est saturée à son tour.
Respecter un certain ordre : il faut systématiquement analyser les ressources matérielles avant les ressources logicielles. Par exemple, il faut s’assurer que l’utilisation du CPU par la base de données n’est pas critique avant de se pencher sur la configuration du nombre de connexions à la base de données.
Pour vous aider à diagnostiquer et ainsi à optimiser vos performances web, plusieurs outils peuvent vous être particulièrement utiles. C’est notamment le cas de Logs MySQL ou AB (Apache Benchmark), mais il en existe bien d’autres.
Vous souhaitez aller plus loin dans votre démarche et optimiser vos performances web de façon durable ? N’hésitez pas à consulter notre livre blanc sur ce sujet.
Le choix de la bonne méthodologie pour un projet digital est l’une des clés de la réussite du développement de votre application ou de votre site. Mais quelles sont les différentes approches possibles ?
Agile ou cycle en V, quelle est la meilleur méthodologie pour un projet digital ?
Au moment de lancer un projet digital, il y a en général deux cas de figure.
Vous savez parfaitement ce que vous souhaitez. C’est le cas par exemple, si vous avez déjà une application en place. Dans ce cas, il vaut peut-être mieux choisir une approche avec un cycle en V. Celle-ci va vous permettre d’avoir une vision claire du budget engagé et du planning. Vous pouvez aussi demander des livraisons intermédiaires pour ne pas mobiliser trop les utilisateurs en fin de cycle et valider le bon déroulement du projet.
Notre conseil : tentez de développer d’abord le processus global pour ne pas avoir de surprise à la fin de votre projet digital.
Les contours de l’application ne sont pas clairs pour vous ? Vous avez encore des interrogations sur les règles, les interactions ou les processus d’ensemble. Dans ce cas, il serait peut-être plus pertinent de prendre comme méthodologie pour un projet digital, une approche agile. Ainsi, la phase de conception ne sera pas trop longue et les utilisateurs seront rapidement impliqués dans la réussite du projet.
A noter : une fois le choix de l’agile effectué, il existe de nombreuses approches agiles différentes de la plus connue SCRUM aux méthodologies Kanban ou l’Extreme Programming.
Cela dit, il est rare d’être dans un cas aussi clair. En effet, de nombreuses contraintes, en particulier le budget et le planning, vont aussi conditionner votre approche. Si vous avez un budget ou un planning contraint, il sera certainement plus intéressant d’obtenir une offre forfaitaire. Vous devrez également vous adapter à la méthodologie de projet digital maîtrisée par vos équipes.
La bonne pratique du MVP, Minimum Viable Product
Pour TheCodingMachine, la plupart du temps, les deux méthodologies pour un projet digital sont valables. Toutefois, un facteur clé du succès est, selon nous, de déterminer un premier périmètre qui pose les éléments essentiels de votre projet digital. Cette première version de votre application, appelée MVP pour Minimum Viable Product, est réalisée au forfait avec une approche en cycle en V court, ce qui permet de limiter les risques liés de votre côté au respect des coûts et des délais.
Pour développer un MVP de votre projet digital, vous devrez dans un premier temps définir les fonctions les plus cruciales pour votre application au regard de vos objectifs et de vos enjeux business. Ces fonctions devront être développées le plus rapidement possible afin d’optimiser votre “time-to-market”. En effet, plus votre application est rapidement confrontée à ses premiers utilisateurs, aussi appelés “early adopters”, plus il vous sera aisé de valider votre concept, de prioriser les futures fonctionnalités ou de pivoter si nécessaire.
L’approche MVP présente également l’avantage de mettre très vite en route les équipes tant internes qu’externes.
Une fois cette première release effectuée, le mode de fonctionnement peut devenir agile afin de pouvoir facilement prioriser les développements. Cela permet de ne pas passer à côté de certains éléments et évite les développement inutiles. Toutefois, malgré toutes ces précautions, vous oublierez forcément des éléments et des fonctionnalités qu’il sera plus difficile d’ajouter une fois le projet terminé.
Alors, pour limiter au maximum ce type de désagrément, avant de vous lancer, prenez le temps de choisir la bonne méthodologie pour un projet digital, et n’hésitez pas à vous faire accompagner par des professionnels.
Dans nos locaux de Paris, Lyon, Hong Kong ou Lisbonne, les équipes de The Coding Machine seront ravies de vous accueillir pour discuter de votre projet.
Et si vous souhaitez avoir plus d’informations sur les différentes approches et méthodologies d’un projet digital, prenez le temps de lire notre livre blanc Do you speak technique ?
La transformation digitale d’une entreprise est un processus complexe dont la réussite dépend en grande partie de la bonne préparation du projet.
Situation de votre entreprise, objectifs visés, avant de vous lancer dans la digitalisation de votre entreprise, voici quelques éléments à analyser.
Qu’est-ce que la transformation digitale d’une entreprise ?
La transformation numérique, également appelée transformation digitale, correspond au processus par lequel les entreprises intègrent les nouvelles technologies numériques comme le cloud, l’IoT ou l’intelligence artificielle.
Plus qu’une « simple » digitalisation des process ou intégration des nouvelles technologies, la transformation digitale d’une entreprise impose une transformation globale de celle-ci. Elle entraîne notamment souvent des changements dans les usages des collaborateurs et/ou des clients, mais également des évolutions sur les pratiques managériales et le business model. Elle nécessite donc de mettre en place une nouvelle culture digitale dans l’entreprise.
Faire un état des lieux digital de l’entreprise
Avant de se lancer dans la transformation digitale d’une entreprise, il faut tout d’abord évaluer la maturité digitale de l’organisation. Pour cela, un état des lieux complet, tenant compte de tous les services de l’entreprise et de tous les aspects de sa digitalisation, est nécessaire. Cette analyse s’effectue selon différents axes :
L’architecture technique et les outils actuellement utilisés par l’entreprise,
Les différents processus et méthodologies utilisés en interne,
Les retours sur les derniers projets réalisés,
Le niveau d’implication des collaborateurs et leur familiarité avec le digital,
Le niveau de compétences avec les outils existants,
Les moyens disponibles pour la mise en œuvre de nouveaux projets numériques.
En plus de cette analyse interne du niveau de digitalisation de votre entreprise, vous aurez également intérêt à vous renseigner sur les pratiques de vos concurrents. Ce benchmark vous permettra ainsi de voir quels sont les sujets sur lesquels vous êtes en avance et ceux sur lesquels vous devrez vous mettre à niveau.
Définir les objectifs de la transformation digitale d’une entreprise
La transformation digitale d’une entreprise peut avoir plusieurs enjeux :
1 – Améliorer l’expérience client
De plus en plus connectés et exigeants, les clients attendent une relation personnalisée avec les entreprises. Pour les attirer et les fidéliser, les entreprises ont donc intérêt de réfléchir au parcours client digitalisé qu’elles proposeront, afin d’offrir à leur clientèle une expérience fluide, simple, visuelle et cohérente.
2 – Développer un nouvel environnement aux collaborateurs
Les nouvelles technologies peuvent également améliorer la motivation et la performance des équipes en leur offrant plus d’autonomie et en facilitant le travail collaboratif avec des outils comme Slack ou Workadventu.re.
3 – Accélérer la digitalisation des produits et services
La transformation digitale d’une entreprise est un levier important pour améliorer la productivité. L’intelligence artificielle permet de libérer les collaborateurs de tâches chronophages et accélère ainsi le traitement des demandes des clients.
4 – Optimiser sa stratégie marketing
Grâce aux nouvelles technologies, vous pouvez automatiser une grande partie des données marketing et gagner du temps dans la gestion de vos prospects et d’optimiser vos campagnes de publicité ou de promotion.
5 – Réduire votre « time-to-market »
La digitalisation de l’entreprise et la présence d’une équipe digitale formée et efficace, permet d’accélérer la mise en place des projets et de réagir plus rapidement aux changements.
6 – Améliorer le pilotage de votre entreprise
Bénéficier de tableaux de bord en temps réel, pouvoir diffuser facilement et rapidement des informations dans une équipe sont autant d’atouts offerts par les nouvelles technologies et qui permettent de prendre les meilleures décisions pour une entreprise.
Vous êtes désormais prêt pour vous lancer dans un projet de transformation digitale d’une entreprise ! Pour vous accompagner dans ce projet, les équipes de The Coding Machine ont élaboré un livre blanc qui vous guidera dans votre plan de transformation digitale.
Voyons ce que TheCodingMachine peut faire pour vous...×
Let's see what TheCodingMachine can do for you...×