Qu'est-ce qu'une web app ?
SaaS, web-app, cloud, application native ou desktop ... Il y a de quoi se perdre dans les buzzwords.
Alors jetons ici quelques définitions :
- Au quotidien, vous utilisez des applications pour travailler : Word, Excel, Sage, EBP, Outlook, .... Ce sont des logiciels installés sur votre ordinateur. Ils gèrent vos données et vos documents. Pas besoin d'une connexion Internet pour les utiliser.
- Pour lire des articles sur un sujet ou se renseigner sur un fournisseur, vous consultez des sites Internet. Les sites vitrines présentent un produit ou un service, et des blogs regroupent des articles thématiques.
Cela fait un bon moment que ces deux catégories ont fusionné pour donner naissance aux web apps.
Une Application Web (=web app) est une application qui ne s'installe pas sur votre ordinateur. Elle s'utilise via Internet après une étape d'authentification par un login/mot de passe.
On désigne aussi ces web app sous le terme de logiciels en mode SaaS : Service As A Software. Car on ne distribue pas un logiciel qui s’installe sur l’ordinateur de l’acheteur, mais l’usage d’un logiciel qui sera physiquement installé sur un serveur distant (que l’on appelle “cloud” lorsqu’on ne sait pas trop ou il se trouve…).
Exemple de web app : la gestion de votre compte bancaire au travers du site internet de votre banque.
NB : ne pas confondre une web app avec une Application mobile native qui s'installe sur votre smartphone (ou tablette) en passant par un store (Apple Store ou Google Play). On reparlera de ce sujet :)
Pourquoi est-ce devenu un standard ?
C'est une tendance de fond : SalesFore, Microsoft office 365, Gmail, ... beaucoup d'applications de notre quotidien sont désormais des web apps.
Les avantages sont nombreux :
- Rien à installer. Vous créez un compte en ligne, et vous commencez à utiliser immédiatement l'application,
- Utilisable n'importe ou : dans vos bureaux, chez un client, en déplacement, à la maison, du moment qu'il y a une connexion Internet,
- Utilisable sur n'importe quel PC/MAC et smartphone si la web app est responsive,
- Pas besoin de stocker ses données, ni de les sauvegarder. Elles sont hébergées dans le cloud,
- Collaboratif par nature : les données sont centralisées dans une base, et elle sont faciles à partager. Finis les copier/coller : tout le monde travaille sur les mêmes documents, avec des droits d'accès dépendants de son profil utilisateur (lecture seule, ajout de commentaire, modification, ...)
- Plus besoin de mise à jour sur votre poste. Vous disposez toujours de la dernière version,
- Facile à utiliser. Les web-apps reprennent l'ergonomie des outils en ligne que chacun utilise au quotidien : réseaux sociaux, réservation d'un billet, commerce en ligne, ...
Face à ce tableau idyllique, il y a toutefois quelques inconvénients :
- La sécurité. On en a parlé la semaine dernière. Un mot de passe piraté, et n'importe qui accède en votre nom à l'application.
- Vos données sont ailleurs. Etes-vous certains que d'autres n'en font pas un usage indirect (clic clic Google) ?
- Si pas de réseau → pas d'application. Même s’il existe des solutions pour fonctionner offline (PWA, service Worker), ce n’est pas encore mis en oeuvre fréquemment.
Pour davantage de sécurité, certaines web apps sont hébergées sur un serveur privé de l’entreprise. L'application n'est pas directement accessible depuis Internet, mais uniquement sur le réseau informatique de l'entreprise (avec un VPN si besoin d’un accès distant).
Une web app permet d’être plus innovant
Le choix d’une web app n’est pas seulement un choix d’architecture technique.
Au delà des aspects technologiques, j’observe que les entreprises qui ont fait ce choix bénéficient d’un potentiel d’innovation qui portent sur 3 champs :
- La standardisation des processus.
Contrairement à un Excel installé sur son PC que chacun utilise “à sa façon”, une web app d’entreprise centralise les données et impose des processus communs pour les enrichir.
En développant une web app, on propose une façon homogène de travailler ensemble.
- Faire travailler ses clients (et ses fournisseurs).
L’application est disponible via Internet. Internet est partout. Il devient donc simple de partager un dossier client avec … le client. Par exemple :
- lui fournir un espace dans lequel on lui met à disposition tous les éléments qui le concernent (ses devis, ses factures, le planning de son projet, certains livrables, …)
- et en contrepartie on lui demande de renseigner les informations qui le concernent.
Cela fonctionne aussi avec un fournisseur : une web app permet de leur donner de la visibilité sur des niveaux de stocks, afin de gérer les ré-approvisionnements.
- L’automatisation.
Les web apps communiquent facilement entre elles, via des API et des webhooks. On peut déclencher une action lorsque quelque chose se passe. Ou bien échanger des données.
Il y a soudain des gisements d’optimisation sur des tâches répétitives et fastidieuses : elles peuvent être automatisées et dégager du temps pour des actions à plus forte valeur ajoutée.
Quels conseils pour un projet de web app ?
Conseil #1 : commencez simplement.
Les web-apps sont par nature évolutives puisque le processus de déploiement d'une mise à jour est simple. Débutez votre projet par les fonctionnalités essentielles pour en tester la pertinence, puis faîtes-le évoluer à votre rythme.
Conseil #2 : ré-utilisez ce qui fonctionne.
Les outils et bibliothèques permettant de coder une web-app sont nombreux et souvent gratuits. Certains sont devenus des standards de fait pour le développement de logiciels en mode SaaS (ReactJS p.exemple).
Il existe aussi des bibliothèques de composants graphiques dont la fiabilité est éprouvée (Ant Design a ma préférence). Leurs possibilités de personnalisation sont parfois limitées, mais a-t-on vraiment besoin de financer le codage d'un bouton qui tourne en devenant vert pâle lorsqu'on clique dessus ?
La profusion de bibliothèques disponibles incitent cependant à la prudence face aux effets de mode. Chaque jour voit émerger de nouvelles tendances dans le monde du développement des web-apps. Elles vous embarquent sur des trucs nouveaux qui solutionnent des problèmes que vous n'avez pas (encore) au prix d’une mise en oeuvre beaucoup plus complexe.
Conseil #3 : accordez de l'attention à vos processus et vos données.
Le développement des web-apps fait parfois une trop large place à ce qui est visible ("le front-end") au détriment de la partie cachée ("le back-end").
Or, la façon dont sont organisées les données compte beaucoup. Je dois parfois ajouter des fonctions à des projets qui ont débuté en utilisant des services ou l'on stocke "en vrac" les données du back-end : ils étaient bien pour faire une démo rapide, mais pas assez solides pour évoluer vers une web app pérenne.
Conseil #4 : sélectionnez votre équipe de développement.
Coder la web-app de votre entreprise, ce n'est pas comme coder un site Internet. Il ne s'agit pas de communication ou de web-marketing.
Il s'agit d'abord de comprendre votre métier, l'organisation de votre entreprise et son fonctionnement. Le développeur doit se projeter comme l'un de vos collaborateurs. Il doit comprendre le sens de ce qu'il code.
Conseil #5 : testez et re-testez.
Une web app est permissive. On l'utilise au travers de navigateurs Internet, qui n'ont pas tous les mêmes fonctionnalités. On peut ouvrir un autre onglet, raffraîchir la page, cliquer sur un retour arrière, double-cliquer sur un bouton, etc...
Prenez du temps pour tester chaque version, ou confiez ces tests à des utilisateurs pilote.
Les web apps sont aussi propices aux tests automatisés. Ce point joue un rôle important dans les méthodes de développement. J’aborderai bientôt ce sujet spécifique.