Développement d’applications web métier : le guide ultime pour réussir votre projet

Tous les conseils et informations dont vous aurez besoin pour réussir votre application web métier

Télécharger le guide en pdf

Contrairement aux logiciels, ou applications natives, les applications web ne sont pas installées sur des ordinateurs mais se trouvent sur des serveurs. Le seul pré-requis pour les utiliser est d'avoir un navigateur web, logiciel que l'on trouve installé par défaut avec tous les ordinateurs, tablettes et mobiles.

L'ubiquité du web a poussé beaucoup d'entreprises à remplacer leurs logiciels par des applications web et ce dans tous les domaines. Les applications web règnent en maitre pour les applications grand public mais aussi pour les applications métiers :

  • Pour la gestion de la relation client (customer relationship management ou CRM en anglais), le leader sur le marché est Salesforce.com
  • BambooHR est un des leaders pour la gestion des ressources humaines
  • Enfin, en ce qui concerne les progiciels de gestion intégrés (Enterprise Resource Planning ou ERP en anglais), SAP est aussi une application web depuis plus de 15 ans

Toutes ces applications web fonctionnent sur le modèle SaaS, Software-as-a-Service, c'est-à-dire que l'éditeur de l'application est aussi l'hébergeur, et vous payez un abonnement mensuel ou annuel pour son utilisation. Bien sûr, il est également possible de développer votre propre application web si les applications web existantes ne vous conviennent pas.

Les applications web sur iOS et Android

Avec l'arrivée des tablettes et des smartphones, ces entreprises ont aussi commencé à développer des applications natives pour les mobiles, mais la performance de ces appareils s'améliorant à grande vitesse, de plus en plus d'applications web pour les mobiles remplacent les applications natives.

Ces applications web sont appelées PWA, ou progressive web applications, et ont la possibilité d'être utilisées hors ligne. Elles permettent également d'accéder à plusieurs fonctionnalités comme la caméra, le stockage, etc. Ce qui n'était pas encore possible il y a quelques petites années.

Si la grande majorité des applications sont aujourd'hui des applications web, c'est qu'elles ont des bénéfices non négligeables. En voici quelques-uns.

Pas d'installation. Avec des logiciels classiques, vous devez les installer sur chaque ordinateur de votre parc informatique et espérer que tous les ordinateurs soient compatibles. Cela se complique encore plus lorsque vous avez besoin de faire la même chose pour les tablettes et les mobiles à cause, entre autres, de la fragmentation de l'écosystème Android.

Peut être utilisée sur n'importe quel ordinateur, tablette ou mobile. Windows a été pendant très longtemps un système d'exploitation en position de monopole, mais ce n'est plus le cas. L'utilisation croissante en entreprise de macOS, iOS et Android demande un investissement plus important si l'application métier doit être native.

Les mises à jour se passent sans intervention. Aucune maintenance n'est donc nécessaire et l'application peut être mise à jour plus régulièrement. De plus, cela permet de réagir plus rapidement aux bugs et aux évolutions du marché.

Code application web

Tous ces points sont des bénéfices très importants pour votre entreprise. Le bénéfice principal qui en résulte est le coût.

En effet, la maintenance du parc informatique est considérablement réduite et les économies sont donc très importantes.

De plus, des mises à jour régulières vous permettent de bénéficier des dernières innovations rapidement. Vous n'avez plus à attendre interminablement la nouvelle version d'un logiciel et vous pouvez mettre à jour vos solutions sur-mesure sans devoir laborieusement mettre à jour chaque ordinateur.

Le processus de conception d’une application web est très varié, alliant des compétences très diverses et peut, selon le périmètre de l’application visée, faire intervenir plus d’une dizaine de compétences très différentes.

Par où commencer ?

La première des questions à se poser consiste à repartir de l’existant : l’application web visée est-elle l’amélioration d’une application existante ou bien s’agit-il de repartir d’une page blanche ?

Les problématiques opérationnelles seront tout à fait différentes selon le cas.

Une fois ce positionnement clair, la seconde étape consiste à définir les fonctions majeures souhaitées, de définir la roadmap globale de l’application, afin de prendre les bonnes orientations dès l’initialisation de la plateforme et éclairer les futurs choix à l’aune de la projection de l’application.

L’importance des besoins non fonctionnels

Une fois une roadmap claire définie, il conviendra de se positionner dès le début du projet sur les éléments non fonctionnels : impact du time to market, importance des éléments de sécurité, éléments de volumétries attendues (nombre de connexions, quantités d’informations type images ou fichiers à échanger), importance de l’UX (selon le type d’audience visée), etc.

UX, design, ergonomie

L’étape suivante concerne l’architecture de l’application, quels seront les contenus à favoriser selon l’audience visée, quelle stratégie multi-device déployer (besoin de viser des tablettes, mobiles? Via des applications dédiées tirant parti spécifique de ces appareils, ou uniquement via du “responsive design” ?).

Concevoir une application web : la phase de conception des interfaces utilisateurs

Le choix des technologies

Les choix technologiques peuvent ou non faire partie des choix et partis pris avant démarrage des travaux de conception de l’application; il conviendra de s’interroger sur la disponibilité des ressources aptes à déployer ces technologies, la qualité de celles-ci et la complexité à monter des équipes le cas échéant.

Qualité de la production logicielle

L’équipe technique aura à cœur de gérer le cycle de développement de cette application. L’équipe aura pleinement conscience qu’elle n’est qu’intermédiaire dans la mise en œuvre, même si la relation avec le commanditaire, vous, est prévue pour durer. Le processus de mise en œuvre du code de l’application devra prendre en compte les meilleures pratiques.

Et après ?

Nous recommandons l’exécution régulière de tests de performance et de tests de pénétration; les besoins sur ces dimensions évoluent au fil du temps et de l’usage de l’application.

Comme évoqué plus haut, une veille particulière doit être mise en place sur les frameworks et langages utilisés, sur les composants outillant l’infrastructure hôte, sur la surveillance de la sécurité de l’application, comme le cycle de vie des certificats par exemple.

Aussi surprenant que cela puisse paraître, le développement web et même plus généralement le développement logiciel est un domaine relativement récent et peu industrialisé.

Là où on imagine bien que la fabrication d'une voiture suivra sensiblement le même processus d'une marque à une autre, ce n'est pas exact lorsqu'il s'agit de développer une application web.

C'est pour cela que pour choisir les technologies à utiliser pour son application web, il est recommandé de prendre en compte les critères suivants :

  • Adaptation au web. À l'exception de PHP, les langages de programmation n'ont pas été créés pour le développement d'applications web, et certains sont plus adaptés et utilisés que d'autres.
  • Performance. À l'heure actuelle, ce critère n'est plus essentiel dans le choix du langage pour une application web. Tous ont des performances acceptables.
  • Vitesse de développement. La vitesse de développement recherchée varie selon les ambitions du projet. Vous pouvez commencer par un langage qui vous permette d'être productif et ensuite optimiser certaines parties avec un autre, comme l'a fait Twitter en commençant avec Ruby et en incorporant Scala progressivement.

Un dernier point important est l'écosystème. Les outils et la communauté d'un langage sont essentiels dans le choix de la technologie à adopter.

  • Nombre de développeurs. Recruter est difficile. L'utilisation d'un langage niche complexifie encore plus le recrutement.
  • Courbe d'apprentissage. Vous ne pouvez pas vous permettre de passer 6 mois sur l'apprentissage de vos technologies avec chaque recrue.
  • Tendance. C'est un critère bien trop souvent utilisé alors qu'il est le moins important.

Une fois tous ces critères pris en compte, il ne vous reste plus qu'à les adapter à votre situation.

Adapter ses outils. Aucune technologie n'est parfaite. Mais le plus important à l'heure de l'arbitrage est de trouver l'outil le plus à même de résoudre votre problématique.

Adapter à ses équipes. Si vous décidez de lancer un projet avec des outils que personne n'a jamais utilisés dans votre équipe de développement, vous courrez à votre propre perte.

Adapter aux risques du projet. Si votre projet est critique pour l'entreprise, limitez vos risques au maximum. Au contraire, pour un projet de R&D où l'innovation est importante, prendre plus de risques sur le choix des technologies est possible.

Comparaison des langages pour le développement d'une application web

Si un outil SaaS répond à vos besoins, il ne fait aucun doute que ce sera la solution à privilégier. Néanmoins il y a des cas où une application web sur-mesure sera plus adaptée :

Fonctionnalités. Les solutions existantes ne sont pas forcément adaptées à vos usages. Si vous avez des besoins métiers très spécifiques, du sur-mesure sera inévitable.

Expérience utilisateur. Les outils SaaS que vous avez essayés ne conviennent peut-être pas à vos utilisateurs. Par exemple, beaucoup d'éditeurs ne font pas attention au contraste de la couleur du texte avec celle de son fond et cela est très problématique pour les personnes avec une déficience visuelle.

Perte de compétitivité. En utilisant les mêmes outils que vos concurrents, il est possible que vous perdiez en compétitivité et cela peut donc impacter votre entreprise.

Innovation. Une application web sur-mesure peut vous permettre de vous adapter aux évolutions de votre métier au plus vite et d'innover.

Intégrations. Le manque d'intégrations avec des solutions existantes est aussi un facteur qui peut vous pousser à faire du sur-mesure.

Bien sûr, avoir une application web sur-mesure n'est pas un long fleuve tranquille et bien comprendre les problèmes que l'on peut rencontrer et les avantages d'une solution existante est un point important pour guider votre choix.

Estimation souvent difficile. Créer une application web sur-mesure n'est pas une tâche simple à réaliser. Le moindre oubli dans le cahier des charges, et le coût peut en être gravement affecté. De plus, il est difficile de trouver de bons développeurs, ou simplement une agence en laquelle avoir confiance.

Ressources. Une solution existante aura une équipe plus importante que la vôtre, car ils ne s'occupent que d'une seule application web pour plusieurs clients. Il sera très difficile d'arriver à une qualité aussi bonne que la leur.

Sécurité. La sécurité est un sujet complexe. Utiliser un outil SaaS vous évitera bien des soucis, néanmoins il n'est pas exclu qu'une faille de sécurité soit exploitée. Avec une application web sur-mesure, le risque est plus grand si la qualité n'est pas au rendez-vous.

Il n'y a jamais eu une telle fragmentation dans les appareils électroniques. Alors que Windows et les PC ont été dans une position de quasi-monopole pendant des années, les choses ne sont plus ce qu'elles étaient depuis l'arrivée des tablettes, smartphones, et la croissance du Mac.

Augmentation du coût des applications natives

De ce fait, le développement d'applications natives se fait de plus en plus rarement pour une seule plateforme, les coûts ont donc augmenté considérablement. Les applications web sont plus que jamais la solution pour garder un coût de développement raisonnable.

Cependant, certaines fonctionnalités de nos appareils électroniques ne sont accessibles que par des applications natives.

Pour éviter un développement coûteux, plusieurs solutions existent désormais. Sur les ordinateurs de bureau et les laptops, de nombreuses applications natives comme Slack, Skype, ou Microsoft Teams utilisent maintenant le framework Electron. Cela permet d'utiliser les technologies web pour créer une application native tout en étant compatible avec Windows, macOS et Linux.

Les applications web à l'assaut des mobiles

Pour le mobile, l'histoire est différente. Pendant longtemps les applications natives permettaient d'avoir de meilleures performances sur un mobile que les applications web. Les applications natives étaient donc largement préférées.

Mais avec des tablettes et smartphones de plus en plus puissants et l'amélioration des fonctionnalités des navigateurs web sur ces appareils, adopter une application web sur les appareils mobiles est maintenant possible.

On appelle ces applications web des PWA ou "progressive web applications". Elles ont accès à de nombreuses fonctionnalités des mobiles comme la caméra et les notifications ainsi que la possibilité de fonctionner sans connexion internet constante.

Distribution des applications natives et web sur mobile

Les applications natives sur mobile ont un problème important, les App Stores. Que ce soit sur iOS ou Android, les règles pour distribuer une application mobile native sont strictes. Les refus sont parfois compliqués à comprendre et le manque de support pour remédier à ce refus peut coûter très cher.

De plus, les applications web sont plus facilement distribuables et découvrables. Lancôme a remplacé ses applications natives en 2017 en développant une application web progressive. Le nombre de sessions sur les mobiles a augmenté de 51% !

Calculer le coût d'une application web

Dépasser le budget peut avoir des conséquences importantes pour la santé d'un projet. Le coût de développement d'une application web dépend de plusieurs facteurs dont il faut être conscient pour garder le contrôle de son budget.

Complexité

La première chose qu'il faut comprendre est la complexité du projet. Toutes les fonctionnalités ne vont pas forcément tenir dans le budget alloué.

De plus, chaque fonctionnalité a une complexité spécifique particulière. Un formulaire avec quelques champs est bien plus rapide à développer qu'une fonctionnalité de statistiques avec un traitement des données particulier.

Pour se prémunir de cela, il faudra veiller à découper le projet en plusieurs versions avec la première contenant les fonctionnalités les plus importantes. Dans ce cas, il sera plus simple quand vous recevrez les estimations de développeurs ou d'agences de savoir ce qui peut être fait dans le budget et ce qui est hors budget.

Le coût humain

La conception d'une application web n'implique pas uniquement des développeurs. C'est le travail combiné de designers, développeurs, chefs de projets et testeurs (QA). De plus, l'écart de salaire peut être important en fonction du niveau de compétence. En France, il y a un écart de 50% ou plus entre un développeur junior et un sénior.

Bien sûr, l'option de choisir une agence dans des pays où les salaires sont moins importants est tentante. Mais dans les faits, beaucoup d'obstacles existent en cas de problèmes. Juridique par exemple. Et vous ne savez absolument pas qui fait quoi et comment.

Dépenses après la mise en production

Ce n'est pas parce que la mise en production a été réalisée et que l'application web fonctionne, qu'il n'y a plus de dépenses. Avant tout, il faut penser aux dépenses pour l'hébergement.

De plus, une application n'est jamais terminée. D'un côté, même en passant beaucoup de temps sur les tests, il y aura des bugs que personne n'aura détectés. C'est une dépense qu'il faut prévoir et qui représente entre 10% et 25% du budget initial. Et de l'autre côté, il y a les fonctionnalités qui n'ont pas pu être mises dans le développement initial pour pouvoir respecter le budget sur lesquelles il va maintenant falloir s'atteler.

Il est indispensable de réaliser un cahier des charges fonctionnel si vous voulez espérer contrôler le délai et le coût de votre application web. Il faut néanmoins être conscient que cela demande du temps et un effort de réflexion important. Le but n'est pas d'y mettre tout et n'importe quoi, mais de fournir une expression des besoins qui permettra à tout le monde de mieux travailler.

Le plan d'un cahier des charges fonctionnel est généralement ainsi :

  • Périmètre : but du projet, livrables, fonctionnalités, tâches, deadlines et coût
  • Risques : qu'est-ce qui pourrait affecter le design fonctionnel du produit ou système ?
  • Vue d'ensemble de la solution : que proposez-vous pour la solution au problème (sitemap, wireframes, etc)
  • Étude de cas : mettre les besoins fonctionnels dans le contexte des actions d'utilisateurs
  • Spécifications obligatoires : qu'est-ce que le produit doit faire ?
  • Configuration système : les étapes requises pour la configuration du produit
  • Besoins non-fonctionnels : impact du time to market, importance des éléments de sécurité, éléments de volumétries attendues, importance de l’UX, etc.
  • Rapport d'erreurs : explication des conditions d'erreurs qui se produiront dans l'interface

Il faut aussi prendre en compte que le projet va évoluer et le cahier des charges va évoluer avec lui. De ce fait, il faut prévoir un coût pour ces évolutions.

L'écriture de ce cahier des charges vous permettra de savoir rapidement si le projet est mûr. Si vous avez des problèmes sur la rédaction, il y a peut-être une réflexion plus profonde à avoir d'abord. Vous pouvez aussi vous apercevoir d'un élément qui n'est pas réalisable. Si c'est quelque chose d'essentiel utilisé par une majorité d'utilisateurs, cela vient remettre en cause le projet lui-même.

Avec un bon cahier des charges, les équipes en interne ou les agences que vous contacterez pourront avoir une meilleure compréhension de la structure de l'application web pour arriver à des choix techniques et architecturaux pertinents. Cela va engendrer moins de va-et-vient et permettra de vous faire gagner du temps.

Au final, c'est une protection pour vous et l'agence choisie contre la dérive du périmètre de l'application web, ce qui va drastiquement améliorer les chances de réussites du projet.

La complexité des applications web a grandement augmenté ces dernières années. Avec la croissance du nombre d'utilisateurs d'Internet, les applications web doivent pouvoir tenir la charge et la multiplication des services externes demande une architecture claire pour une maintenance et évolution simple et rapide.

Modèle MVC et Clean Architecture

La première chose à faire pour une bonne architecture est de séparer le code de l'interface utilisateur de la logique métier et de l'accès aux données. Cette séparation a donné lieu, entre autres, au modèle MVC (Model-View-Controller).

Ces trois couches sont séparées mais des dépendances existent toujours, qui rendent la réutilisation et le test du code compliqué. L'étape suivante est donc de pouvoir avoir une architecture indépendante des frameworks, bases de données et autres facteurs externes. Cette architecture a comme nom "Clean Architecture".

Malgré cette indépendance, tout le code est au même endroit. Si on change une ligne de code quelque part, il faut redéployer toute l'application web. Cela peut poser problème si le travail en cours sur une partie bloque la mise en production de la correction d'un bug.

Architecture d'application web : Modèle MVC

Les avantages et inconvénients des microservices

Pour répondre à ce problème, on va utiliser une architecture orientée service. Deux modèles pour cette architecture sont devenus populaires, les microservices et le serverless.

Dans les deux cas, l'application est découpée en plusieurs morceaux indépendants, ce qui permet de faire évoluer un module sans toucher à un autre et d'allouer des ressources à certains services qui ont des demandes différentes du reste des services.

Monolithe vs microservices

Dans la réalité, ces services ne sont que rarement indépendants et cela crée au final une complexité bien plus importante qu'avec une architecture plus traditionnelle. Toutefois, il est possible et même recommandé d'adopter une architecture hybride en extrayant les parties de l'application web réellement indépendantes dans des microservices, si cela permet d'en tirer des bénéfices en termes de performance ou de coût.

Les problèmes des géants du web ne sont pas les nôtres

Bien architecturer son application web est critique pour le long-terme. Il est important de ne pas suivre les tendances des entreprises comme Facebook, Google ou Netflix discutant publiquement à profusion de leurs architectures mais ne répondant très probablement pas à vos propres besoins.

La sécurité des applications web est un enjeu majeur. Aucune entreprise n'est à l'abri d'une faille. Le vol de données ou l'indisponibilité d'une application peut avoir des conséquences désastreuses.

Il est vital de s'en protéger et cela demande une expertise pointue. Voici un aperçu des solutions à mettre en œuvre pour s'en prémunir.

Authentification. C'est la première défense entre une application et un attaquant. Une faille dans l'authentification peut avoir de graves conséquences.

  • Les mots de passe doivent être cryptés dans la base de données pour éviter de les exposer
  • Il faut interdire aux utilisateurs d'utiliser des mots de passes faibles
  • Ne pas oublier d'implémenter une fonction de déconnexion

Sessions. Une fois authentifié, une session est créée et permet de revenir sur l'application web sans se ré-authentifier. Si un individu réussit à voler la session, il pourra utiliser le compte de la victime.

  • Veiller à ce que la session soit invalidée au moment de la déconnexion
  • Définir une durée de vie pour la session

Contrôle d'accès. Toutes les fonctionnalités d'une application ne seront pas accessibles à tous les utilisateurs, il faut donc mettre en place un contrôle d'accès pour éviter l'exposition d'informations sensibles.

  • Restreindre l'accès des fonctionnalités au minimum possible
  • Ne pas faire de références directes à des fichiers ou des paramètres

Injection. Toutes les applications web permettent à leurs utilisateurs d'entrer des données et d'uploader des fichiers. Si les données et les fichiers ne sont pas validés et filtrés, cela créera de nombreuses failles de sécurité et un individu malveillant pourra injecter du code et manipuler à sa guise la base de données, l'interface utilisateur, et même le serveur.

  • Valider les fichiers uploadés
  • Filtrer toutes les données entrées par les utilisateurs
  • Utiliser des librairies et frameworks bien maintenus pour éviter les failles de sécurité non corrigées

Transmission des données. Les données transitent entre les serveurs et les navigateurs web des utilisateurs. Ces transmissions peuvent être interceptées et il faut donc les sécuriser.

  • Il est impératif d'utiliser un certificat SSL
  • Être au courant des dernières avancées en termes de chiffrement pour toujours sécuriser au mieux la transmission des données
  • Avoir les outils en place pour se protéger des attaques par déni de service, qui ont pour but d'inonder le réseau pour rendre l'application web indisponible

Sécurité et vulnérabilités des applications web

Comme vous pouvez le voir, la sécurité est un sujet compliqué où chaque détail compte. Avec le RGPD, un vol de données personnelles d'utilisateurs doit être publiquement révélé dans les 72h sous peine d'une amende très importante. Cela ajoute encore plus à l'importance de faire très attention à la sécurité de votre application web.

Avec l'arrivée du Cloud, les solutions d'hébergement se sont multipliées et il peut être complexe de les différencier. Malgré tout, de réelles avancées ont été faites pour rendre l'hébergement plus facile à configurer et à moindre coût.

Les contraintes du on-premise

Avant tout, parlons du on-premise (Auto-hébergement en français). Dans ce cas, vous achetez et utilisez vos propres serveurs. Le seul avantage désormais pour cette solution est de pouvoir avoir le contrôle total si des lois vous y obligent ou si c'est un avantage concurrentiel pour votre entreprise. Dans tous les autres cas, le Cloud est à privilégier.

En effet, l'on-premise a beaucoup de contraintes. Tout d'abord, le coût initial d'achat des serveurs est important. Le délai de livraison de ces serveurs peut être de plusieurs semaines et il est difficile d'estimer correctement le nombre de serveurs nécessaires sur le moyen et long terme. De plus, les pannes peuvent vous coûter cher si vous n'avez pas la pièce de rechange disponible, ou pire s'il faut remplacer un ou plusieurs serveurs en même temps.

Comparaison des différents types d'hébergement web

Les différentes offres du Cloud

Le Cloud n'a pas tous ces problèmes, mais il peut être compliqué de comprendre quelle est la solution adaptée avec une offre assez dense. Voici un récapitulatif.

IaaS. Avec cette solution, vous n'avez que la base de l'infrastructure, des machines virtuelles, le réseau, et le stockage. Vous devez configurer et gérer tout l'environnement pour déployer votre application web.

Exemples : Amazon AWS (EC2), Google Cloud Platform (CE), Microsoft Azure (VM)

CaaS. Cette solution vous offre un moyen standard de joindre le code, les configurations et les dépendances de votre application dans un seul objet, le conteneur. Une fois le conteneur défini, le service s'occupera de gérer les machines virtuelles.

Exemples : Google Container Engine (GKE), AWS (ECS), Azure (ACS)

PaaS. Ici, tout est déjà configuré et les conteneurs sont gérés à votre place. Vous n'avez plus qu'à déployer votre application web.

Exemples : Google App Engine, Heroku, AWS (Beanstalk), Scalingo

Critères de sélection IaaS vs CaaS vs PaaS

 

La qualité des applications web est essentielle. Une application de mauvaise qualité coûte beaucoup de temps et d'argent. La maintenance est longue, l'ajout de fonctionnalités lente, les performances se dégradent au fil du temps et le risque de failles de sécurité est important.

Quand faire un audit technique ?

Il peut être difficile d'évaluer la qualité du code et c'est pour cela que les audits techniques sont nécessaires. Un audit est recommandé dans les situations suivantes :

  • Le code a été écrit par des développeurs qui ne sont plus présents. L'audit va vous permettre de comprendre l'état du code, détecter les risques et offrir des solutions sous formes d'étapes spécifiques
  • L'application n'a pas été mise à jour depuis longtemps. Elle utilise peut-être d'anciennes versions de librairies et peut donc être exposée à des failles de sécurité
  • L'audit peut révéler des problèmes et des failles de sécurité et offrir des solutions adaptées pour les résoudre
  • Il est enfin recommandé d'effectuer un audit technique périodiquement sur vos applications web pour évaluer sa qualité

Les étapes de l'audit

Un audit technique pour une application web n'est pas un travail anodin. Cela demande une méthode et des outils précis ainsi qu'une connaissance profonde des technologies utilisées.

  1. La liste des technologies, librairies et frameworks est faite. Cela permet de détecter les risques qui pourraient affecter la qualité de l'application web et donc son coût, mais aussi de détecter des problèmes possibles avec des licences open-source
  2. Un audit de sécurité est réalisé pour trouver des failles dans le code, dans les anciennes versions des librairies utilisées ou dans l'infrastructure
  3. L'analyse de code consiste à utiliser des outils pour définir la complexité du code et à détecter les problèmes de performances comme des problèmes de bases de données ou de cache
  4. Un audit du code manuel est aussi fait pour détecter des modèles de programmation ne respectant pas les bonnes pratiques ainsi que de valider l'architecture de la base de données et l'utilisation correcte de services externes

Toutes ces étapes permettent de dresser un audit technique détaillé montrant les forces et les faiblesses de votre application web. L'audit définit aussi les priorités sur lesquelles se concentrer pour transformer les faiblesses en force efficacement.

Projet de développement d'application web : des projets à hauts risques

Moins d'un tiers des projets d'applications se terminent dans les temps et sans dépasser le budget. C'est une statistique à laquelle il faut faire face et être réaliste à son sujet. Ce n'est qu'en étant conscient de cette réalité que l'on va mettre en place une bonne gestion des risques.

Cela va se faire en 4 étapes :

  • Identifier les risques qui pourraient vous faire manquer les objectifs de votre projet
  • Déterminer les risques les plus importants
  • Prendre en compte les risques les plus dangereux dans la planification
  • Maintenir le cap du projet et identifier les risques en continu

Pour pouvoir au mieux suivre ce plan, il va falloir comprendre où peuvent apparaître les risques et comment s'en prémunir.

Périmètre du projet

Il y a plusieurs risques associés au périmètre du projet. Ce dernier peut être mal spécifié ou alors dériver sans fin pour devenir ingérable, par exemple avec l'ajout de fonctionnalités qui ne sont pas nécessaires.

Les chefs de projets sont là pour gérer les changements de périmètre. D'un côté pour éviter qu'il ne dérive, mais aussi pour ajouter des éléments urgents et nécessaires, ainsi que de le garder pertinent au fur et à mesure de l'avancement du projet.

Ressources humaines et équipes

De nombreux risques sont présents sur le sujet des ressources humaines : le processus de recrutement, le temps d'adaptation pour être productif sur un nouvel environnement, la mauvaise cohésion des équipes, le désengagement des parties prenantes et les aléas des équipes (vacances, maladie ou démission).

Avoir une solution de redondance quand quelqu'un est malade, en vacances, ou démissionne est essentielle pour ne pas bloquer l'avancement du projet. Le chef de projet est aussi là pour gérer les problèmes de communication avec les équipes.

Technique

Enfin, les risques techniques sont eux aussi à assimiler pour pouvoir les éviter. Les problèmes de montée de charge et les bugs peuvent apparaître et il est important de les corriger rapidement pour que les usagers ne perdent pas en productivité.

Avoir un bon système de contrôle de version est essentiel pour éviter les conflits de code entre plusieurs versions et entre les développeurs. Les tests automatisés vont aussi avoir un rôle important dans la prévention des bugs et la stabilité de l'application web. Enfin, avoir des rapports de bugs permettra de les corriger de manière pro-active au lieu d'attendre qu'un utilisateur contacte le support.

La transformation numérique intervient partout dans les entreprises, et nécessite de faire appel à de nouveaux outils et applications.

Cette transformation est parfois difficile et il est donc nécessaire d'accompagner ce changement.

  • Les équipes IT sont nécessaires pour ces projets, mais c'est l'usager qui est la priorité. Vous devez non seulement accompagner les équipes IT mais aussi les usagers.
  • Pour éviter une résistance au changement, il est recommandé de le faire par l'exemple. Trouver les personnes qui peuvent être les champions du changement.
  • En plus des champions, veillez à avoir l'engagement de l'exécutif. Par exemple, un changement d'application pour la gestion des ressources humaines sans l'engagement du responsable des ressources humaines est voué à l'échec.
  • Il est important d'éviter au périmètre de dériver. Pour cela il est impératif de communiquer explicitement le but du changement et quels sont les usagers affectés.
  • La perte d'information durant le changement est un problème rencontré régulièrement. Il est donc nécessaire de veiller à la bonne gestion du projet, du bon planning et de la correcte documentation sur les dessous de la conversion.
  • Communiquez régulièrement sur le changement. Des usagers informés seront confortés dans l'idée que le changement est une bonne chose.

Comme vous pouvez le comprendre, tous ces points peuvent se résumer à avoir un bon accompagnement du changement. Cet accompagnement est différent en fonction du rôle de chaque personne affectée par ce changement. On est tous différent et pour réussir le changement, il est donc nécessaire de s'adapter à chacun.

Choisir la bonne agence pour développer votre application web n'est pas une chose aisée. Il n'y a pas de méthode précise. La clé est de trouver un partenaire, et non un exécutant. Voici quelques conseils qui vous aideront dans votre choix :

  • Préparer votre recherche : quel est votre budget, quelles sont les applications web similaires que vous aimez et quels sont les éléments qui vous appréciez et pourquoi, et faire le sommaire de vos objectifs et priorités pour votre application web
  • Quand vous cherchez une agence, vous devez non seulement penser à celle qui réalisera votre application web mais aussi à celle qui sera la mieux à même de vous conseiller avant le début du projet et vous accompagner après le lancement
  • Créer une application web coûte cher. Si vous prenez des raccourcis, vous le regretterez dans le futur. Ne choisissez pas une agence pour le prix tout en sachant aussi que les meilleures agences ne sont pas forcément les plus onéreuses
  • J’attirerai aussi l’attention sur l'importance de choisir une agence «tout-en-un» pour éviter de démultiplier le nombre de prestataires (capacité à designer, intégrer, développer, mettre l’application en conditions opérationnelles, etc)

Le mauvais partenaire va avaler votre budget et impacter négativement votre marque. Beaucoup d'agences n'ont pas d'expérience et apprennent à la volée. Voici quelques points sur lesquels il faut faire attention :

  • Le manque de transparence est un point sur lequel on ne porte pas assez d'attention. Un site sans adresse, biographie ou liste des clients ne vaut probablement pas le temps de s'y intéresser
  • Surveillez les compétences en communication, demandez des références que vous pourrez appeler et, par-dessus tout, n'allez pas à l'encontre de votre instinct
  • Si l'agence a une expérience similaire à votre projet, demandez-lui ce qui a été et les challenges rencontrés. S'il n'y a pas eu de challenges, c'est probablement suspect
  • Il est important de choisir une agence qui n'est pas surdimensionnée par rapport à votre projet. Une ESN va engloutir tout le budget rien qu'en amorçage. De plus, les tailles des équipes sont parfois trop grandes par rapport à vos besoins.

Une fois que vous avez réduit votre liste de candidats et que la sélection se complique, demandez-vous quelle relation vous voulez avoir avec l'agence que vous allez sélectionner. Choisissez celle qui est la mieux alignée à votre personnalité, votre disponibilité et avec laquelle vous pourrez travailler dans une bonne ambiance.