Développer une PWA : pourquoi et comment s’y prendre ?

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 !

3 solutions pour booster la vitesse d’un site

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.

Pour vous accompagner dans la mise en place de cette solution, essayez https://varnish-cache.org/

2- Réduire le nombre de fichiers envoyés

Plusieurs options s’offrent à vous pour réduire le nombre de fichiers, on vous en propose deux :

  1. 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.
  2. 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 :
  1. 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.
  2. 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

7 outils pour tester les performances d’un site web

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 :

1- AB (Apache Benchmark)

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.

2- JMETER 

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

3- SELENIUM GRID 

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.

Projet NFT : Guide et analyse pour choisir la meilleure blockchain

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.

Choisir une blockchain pour votre projet NFT ?
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 !

Comment optimiser vos performances web ?

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 :

  1. 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.
  2. 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.
  3. Établissez un ordre des actions à mener des plus simples aux plus complexes : on améliore souvent les performances par les actions les plus simples.
  4. 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

  1. 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
  1. 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.

  1. 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 :

  1. Évaluer l’utilisation des ressources et déterminer quelle ressource est utilisée de manière trop intense.
  2. Comprendre dans quelles conditions et à quels moments les performances web sont moins bonnes.
  3. 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.
  4. 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.

Projet digital : Choisir la bonne méthodologie (Agile, Waterfall…)

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.

Méthodologie de projet digital - Cycle en V
  • 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.

Méthodologie de projet digital - Agile (SCRUM)

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 ?

Comment préparer la transformation digitale d’une entreprise ?

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.

Réussir sa digitalisation : Découvrez les 9 raisons de se lancer

Depuis plusieurs années, l’essor d’Internet et le développement du numérique et des outils digitaux ont profondément modifié notre quotidien.

Pour faire face à ces évolutions, de nombreuses entreprises se sont lancées dans la digitalisation de leur organisation. Elles font ainsi évoluer leur fonctionnement, leur stratégie et leurs processus en s’adaptant aux innovations et en répondant aux nouvelles attentes des clients connectés.

Malheureusement, face à un processus de digitalisation qui peut paraître technique et long, certaines organisations hésitent à franchir le pas du numérique.

Pourtant, les raisons de se lancer dans la transformation digitale sont nombreuses !


Digitalisation, transformation digitale ou numérique, de quoi parlons-nous ?

Quels que soient votre secteur d’activité (services, industrie…), l’envergure et le statut de votre organisation (PME, association…), il est difficile de passer à côté de l’essor d’Internet, du numérique et des nouvelles technologies (IA, Machine Learning, blockchain, API, IoT, Cloud…).

La digitalisation, également appelée transformation digitale ou transformation numérique, désigne le processus par lequel les entreprises intègrent ces technologies numériques dans leur fonctionnement et s’adaptent ainsi aux évolutions de leur environnement et aux nouvelles exigences de leurs clients, pour entrer pleinement dans l’ère du numérique.

Cette transformation digitale peut prendre différentes formes (modifications des proccess, changement des pratiques managériales, intégration d’un nouveau logiciel…) et toucher tous les services (RH, marketing, communication, informatique, production…).

Dans tous les cas, ce changement a un impact important sur le fonctionnement des organisations ce qui nécessite une préparation en amont du lancement de la digitalisation, afin notamment de prendre en compte les difficultés techniques liées aux connaissances des nouveaux outils et technologies numériques, mais également l’aspect humain d’un tel projet qui nécessite de faire adhérer, d’accompagner et de former les personnes qui y participent.

De beaux défis que vous avez tout intérêt à relever pour mener à bien votre digitalisation !


Pourquoi se lancer dans la digitalisation de son organisation ?

Vous envisagez de digitaliser votre organisation, mais vous hésitez encore ? Vous ne savez pas par où commencer et le projet vous semble de trop grande ampleur ? Découvrez les principales raisons pour lesquelles vous devez franchir le cap :

  • Ne pas prendre du retard par rapport à vos concurrents : le digital est désormais omniprésent dans notre quotidien, à défaut de l’intégrer dans votre organisation, vous risquez d’être vite dépassé par la concurrence.
  • Répondre aux nouvelles attentes de clients toujours plus connectés qui ont tous les outils à leur disposition pour comparer les différentes offres présentes sur le marché.
  • Optimiser la qualité et l’efficacité des services et des produits proposés aux clients grâce aux outils digitaux et ainsi les fidéliser.
  • Mieux exploiter les données que vous possédez pour contrôler les coûts, les marges et les dépenses et adapter votre stratégie et votre business plan.
  • Repenser le fonctionnement des services dans l’entreprise afin d’améliorer leur organisation et leur efficacité, en automatisant par exemple certaines tâches chronophages.
  • Améliorer l’investissement, l’efficacité et les conditions de travail des collaborateurs et participer ainsi à leur bien-être au travail.
  • Bénéficier d’une image positive de l’entreprise auprès des clients, des partenaires et fournisseurs en proposant des services performants via une plateforme digitale ou une application mobile.
  • Développer les ventes en multipliant les canaux de distribution, réduire les coûts de fonctionnement et améliorer durablement les marges.
  • Augmenter la visibilité et la notoriété de l’entreprise par le biais des réseaux sociaux comme LinkedIn, d’un site web ou d’une application mobile.

La digitalisation est au cœur des évolutions en cours et à venir. Même si une telle transformation n’est pas simple, en vous entourant de professionnels spécialisés qui vous proposeront des solutions adaptées à vos besoins, vous pourrez mener à bien votre plan de transformation digitale avec succès.

Langages web HTML et CSS : créer des pages web stylées

Langages web à la base de tout projet digital, HTML et CSS permettent d’indiquer au navigateur web comment afficher la page d’un site sur un ordinateur, une tablette ou un smartphone.

Grâce à leur complémentarité, ces deux langages web vous aident à gérer facilement la structure et le design de vos pages web.


À quoi sert le code HTML ?

Le HTML (HyperText Markup Language) permet d’organiser le contenu d’une page web à l’aide notamment de différentes balises. Il précise les informations qui doivent s’afficher sur la page en tant que : titres, paragraphes, boutons, liens, ou images par exemple.

Toutefois, et même si la dernière version HTML 5 a apporté de nombreuses améliorations pour organiser le contenu, le code HTML ne permet pas de modifier l’apparence d’une page. Les informations inscrites en HTML sont donc restituées sans aucune mise en forme. Pour améliorer le design de votre site, il faudra donc associer les langages web HTML et CSS.


Structurer les pages web avec les balises HTML

Les pages HTML contiennent de nombreuses balises qui permettent de préciser la nature du texte auquel elles sont liées. Entourées de chevrons (< >), elles donnent des instructions à l’ordinateur afin d’afficher le contenu en tant que titre de la page, image ou paragraphe par exemple.

Les balises HTML sont variées, mais en voici quelques exemples :

  • <title>TheCodingMachine</title> : il correspond au titre de la page qui apparaît dans la barre de titre du navigateur web, en l’occurrence : TheCodingMachine
  • <h1> </h1>, <h2> </h2 …. <h6> </h6> : il s’agit des différents niveaux de titres présents dans la page web. Si l’on prend l’exemple de cette page :

<h1>Langages web HTML et CSS : créer des pages web stylées</h1>

<h2>À quoi sert le code HTML ?</h2>

  • <p> </p> : le texte situé entre ces balises est un paragraphe
  • <ul> <ul> ou <ol> <ol> : indique la présence d’une liste à puces ou d’une liste numérotée
  • <img/> : cette balise permet d’intégrer une image sur la page web.

Qu’est-ce que le langage web CSS ?

Le CSS (Cascading Style Sheets) peut se traduire par : feuilles de style en cascade. Il s’agit d’un des langages web utilisés pour mettre en forme et gérer le design de fichiers HTML ou XML. Il permet notamment de :

  • Modifier la couleur du texte,
  • Choisir une police spécifique,
  • Intégrer des bordures et/ou des marges,
  • Mettre des images de fond
  • Adapter la page à la taille des écrans (ordinateur, tablette, smartphone) grâce au responsive design.

Avec CSS vous personnalisez ainsi les pages de vos sites et applications.


Donner du style aux pages web avec les propriétés CSS

Grâce au code CSS, vous indiquez au navigateur web (Google Chrome, Mozilla Firefox, Microsoft Edge…) quelle apparence doit prendre la page créée. Pour donner ces instructions, il faut notamment utiliser les propriétés CSS. Ces dernières sont encadrées par des accolades et précédées par un sélecteur comme p (pour paragraphe), h1, class, ou id.

Parmi les principales propriétés :

  • font-family : la police du texte,
  • font-size : la taille du texte,
  • text-align : l’alignement du contenu,
  • background-color : la couleur de fond,
  • border-style : le type de bordure.

Ces propriétés sont suivies de la valeur que vous souhaitez leur attribuer. Cette valeur peut correspondre à une couleur, une taille ou un style. Par exemple :

h1

{

color : red;

border : 2px red double;

}

Cela signifie que le titre principal, que vous avez indiqué dans votre fichier HTML en l’encadrant avec les balises <h1> </h1>, sera écrit en rouge avec une bordure double rouge de 2 pixels de largeur : les langages web HTML et CSS sont donc totalement complémentaires.

Les langages web HTML et CSS n’ont désormais plus de secret pour vous ! Mais d’autres langages de programmation comme PHP et Javascript, ou d’autres termes techniques restent peut-être encore des mystères. Pour vous éclairer sur le vocabulaire tech, n’hésitez pas à prendre connaissance de notre livre blanc « Do you speak technique ? » !

Les 3 étapes clés pour préparer son projet web

Pour mener à bien un projet web, il est essentiel de passer par certaines phases : conception, développement, production, déploiement… Mais afin d’éviter de se lancer à l’aveugle dans un tel processus, mieux vaut préparer son projet web en amont, seul ou accompagné par des professionnels. Pour cela, 3 étapes de préconception sont indispensables.

  1. Penser son projet et ses enjeux
  2. Préciser ses besoins et ses contraintes
  3. Cadrer et préparer son projet web avant la conception

1- Penser son projet et ses enjeux

Tout projet commence par : une idée à développer, un problème à résoudre, un procédé à améliorer, ou encore une productivité à optimiser. C’est à partir de ce constat que l’on souhaite préparer son projet web. Mais pour que votre idée se concrétise réellement, vous devez la clarifier et la développer. Pour vous aider dans cette réflexion, posez-vous certaines questions :

  • Qui est à l’origine du projet ? Dans quel contexte cette idée est née ?
  • Pourquoi envisagez vous un projet web ? Il peut par exemple s’agir de créer un site ou une plateforme web, de développer une application mobile, ou de résoudre un problème qui freine le développement de votre entreprise et gêne le travail de vos collaborateurs comme la lenteur d’un système de gestion de stocks, ou un CRM inadapté.
  • Quels sont les différents objectifs du projet web ? Vous devez répertorier l’ensemble des buts visés : lancer un produit ou un service, attirer de nouveaux clients, augmenter la notoriété de son entreprise, optimiser la productivité des collaborateurs…
  • Quelles sont les personnes « cibles » ? Clients, prospects, salariés…

2. Préciser ses besoins et ses contraintes

La deuxième étape clé pour préparer son projet web doit permettre d’affiner son idée de départ :

  • En listant et en priorisant les différents besoins : les fonctionnalités du site, de la plateforme web et/ou de l’application mobile, le type d’hébergement, les outils de reporting de l’activité, l’évolutivité du système, l’UX (expérience utilisateur) et l’UI (interface utilisateur)….
  • En identifiant les contraintes liées au projet digital : le plus souvent, les principales contraintes sont celles qui limitent le temps (délai imposé) et les ressources humaines (les personnes affectées au projet, que ce soient des intervenants internes à votre entreprise ou des prestataires externes) et financières (budget disponible), mais il peut également s’agir de prérequis indispensables au lancement du projet, par exemple l’installation d’un logiciel particulier.
  • En adaptant votre stratégie en fonction des contraintes et des besoins prioritaires, et en s’assurant que les contraintes ne sont pas trop restrictives pour ne pas remettre en cause la faisabilité même du projet.

3- Cadrer et préparer son projet web avant la conception

Ça y est ! Vous avez clarifié votre idée, précisé vos besoins et déterminer les contraintes qui s’imposent à vous. Vous avez presque fini de préparer votre projet web et vous pourrez bientôt passer à sa conception. Mais, pour faciliter les échanges au sein de votre équipe et avec vos prestataires, vous allez devoir rassembler toutes les informations éparpillées dans vos différents e-mails, vos comptes-rendus de réunions ou les éventuelles études de marché réalisées.

Vous pourrez ainsi rédiger un cahier des charges web contenant tous les renseignements relatifs à votre projet digital. Ce document vous permettra de présenter efficacement votre idée et vos besoins. Il vous servira non seulement dans le cadre d’un appel d’offres pour trouver des prestataires externes qui vous accompagneront, mais il sera également le document de référence pour tous les intervenants, et ce, tout au long de votre projet : de sa conception à sa livraison, en passant par son développement.

Vous n’avez pas encore de cahier des charges et vous ne savez pas comment le rédiger ? The Coding Machine a élaboré un modèle de cahier des charges web qui aide à préparer son projet web et permet de passer sereinement aux phases de conception et de développement.