Vous êtes sur la page 1sur 36

03/05/2019 Book

Table des matières


1. Qu'est-ce qu'une application web : définition

2. Pourquoi concevoir une application web métier ?

3. Quel est le processus de conception d'une application web ?

4. Quelle technologie favoriser pour son application web ?

5. Avantages et inconvénients d'une application web sur mesure

6. Application web ou native : quelle solution choisir pour votre application


métier ?

7. Comment calculer le coût de développement d'une application web ?

8. Concevoir un cahier des charges fonctionnel pour son application web

9. Architecture des applications web : les bonnes pratiques

10. Les enjeux de la sécurité des applications Web pour votre entreprise

11. Quel hébergement choisir pour vos applications web ?

12. Application web : réaliser un audit technique

13. Développement d'applications web : des projets à haut risque

14. Nouvelles applications web en entreprise : le rôle de la conduite du


changement

15. Développement d'application web : comment choisir la bonne agence ?

localhost:8000 1/35
03/05/2019 Book

Qu'est-ce qu'une
application web :
définition
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. Okta publie chaque année une
étude sur les applications les plus utilisées en entreprise. La grande majorité de ces
applications sont des applications web.

Les applications web règnent donc 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

1 synbioz.com

localhost:8000 2/35
03/05/2019 Book

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 avec 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 ainsi que 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.

2 N° Vert : 0 805 69 35 35

localhost:8000 3/35
03/05/2019 Book

Pourquoi concevoir une


application web métier ?
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 en devant 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é.

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éduit 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.

3 synbioz.com

localhost:8000 4/35
03/05/2019 Book

Quel est le processus de


conception d'une
application web ?
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, c’est ce que nous
vous proposons de décrire ci-dessous.

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.

4 N° Vert : 0 805 69 35 35

localhost:8000 5/35
03/05/2019 Book

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” ?).

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.

5 synbioz.com

localhost:8000 6/35
03/05/2019 Book

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.

6 N° Vert : 0 805 69 35 35

localhost:8000 7/35
03/05/2019 Book

Quelle technologie
favoriser pour son
application web ?
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. A l'exception de PHP, les langages de programmation


n'ont pas été créés pour le développement d'applications web. Mais 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 permettre 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.
L'écosystème. Les outils et la communauté sont essentiels dans le choix d'un
langage de programmation. Sans un bon écosystème, il sera difficile de
trouver les solutions à ses problèmes et cela rallongera sensiblement la durée
de développement.
Nombre de développeurs. Recruter est difficile. L'utilisation d'une
technologie peu répandue 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.

7 synbioz.com

localhost:8000 8/35
03/05/2019 Book

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é dans votre équipe de développement, vous courez à
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.

8 N° Vert : 0 805 69 35 35

localhost:8000 9/35
03/05/2019 Book

Avantages et
inconvénients d'une
application web sur
mesure
Si un outil SaaS répond à vos besoins, il ne fait aucun doute que ce sera la solution
à privilégier. Une étude de BetterCloud révèle que désormais plus de la moitié des
entreprises utilisent au moins 80% de SaaS pour leurs besoins métiers.

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.

9 synbioz.com

localhost:8000 10/35
03/05/2019 Book

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ême 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. Il
est essentiel d'être conscient des problèmes que l'on peut rencontrer et de les
pondérer par rapport aux avantages d'utiliser une solution existante.

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
être gravement affecté. De plus, il est difficile de trouver de bons développeurs ou
une agence dans laquelle avoir confiance.

Ressources. Une solution existante aura une équipe plus importante que la vôtre ou
n'importe quelle agence, 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.

10 N° Vert : 0 805 69 35 35

localhost:8000 11/35
03/05/2019 Book

Application web ou
native : quelle solution
choisir pour votre
application métier ?
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.

11 synbioz.com

localhost:8000 12/35
03/05/2019 Book

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
De plus, 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% !

12 N° Vert : 0 805 69 35 35

localhost:8000 13/35
03/05/2019 Book

Comment calculer le coût


de développement 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.

13 synbioz.com

localhost:8000 14/35
03/05/2019 Book

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. Vous ne savez absolument pas qui fait quoi et comment. De plus les
problèmes légaux seront plus compliqués à résoudre. www.fiverr.com

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é.
C'est une dépense qu'il faut prévoir et qui se situe 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 auxquelles il va maintenant
falloir s'atteler.

14 N° Vert : 0 805 69 35 35

localhost:8000 15/35
03/05/2019 Book

Concevoir un cahier des


charges fonctionnel pour
son application web
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 un plan 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, dé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.

15 synbioz.com

localhost:8000 16/35
03/05/2019 Book

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. C'est peut-être aussi l'occasion de
trouver un prestataire qui pourra vous aider à réaliser le cahier des charges.

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 avec
lesquelles vous travaillerez 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 permettre 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 dramatiquement améliorer les chances de
réussites du projet.

16 N° Vert : 0 805 69 35 35

localhost:8000 17/35
03/05/2019 Book

Architecture des
applications web : les
bonnes pratiques
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).

17 synbioz.com

localhost:8000 18/35
03/05/2019 Book

Ces trois couches sont séparées mais des dépendances existent toujours qui
rendent la réutilisation et le test du code compliqués. 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.

Les avantages et inconvénients


des microservices
Pour répondre à ce problème, on peut 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.

18 N° Vert : 0 805 69 35 35

localhost:8000 19/35
03/05/2019 Book

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.

19 synbioz.com

localhost:8000 20/35
03/05/2019 Book

Les enjeux de la sécurité


des applications Web
pour votre entreprise
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.

Une récente étude suggère que 90 % des DSI français font des compromis avec la
sécurité informatique, notamment pour éviter d’affecter l’activité de l’entreprise.

Il est vital de se 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 passes 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éussi à 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

20 N° Vert : 0 805 69 35 35

localhost:8000 21/35
03/05/2019 Book

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és 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

Données extraites du rapport 2019 sur la défense des cybermenaces

21 synbioz.com

localhost:8000 22/35
03/05/2019 Book

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.

22 N° Vert : 0 805 69 35 35

localhost:8000 23/35
03/05/2019 Book

Quel hébergement
choisir pour vos
applications 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 oblige 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.

23 synbioz.com

localhost:8000 24/35
03/05/2019 Book

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.

24 N° Vert : 0 805 69 35 35

localhost:8000 25/35
03/05/2019 Book

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

Gartner prédit aux services cloud une croissance annuelle de 17,5% dans le monde.
Mais pour le marché français, la croissance ne sera probablement pas aussi
importante.

25 synbioz.com

localhost:8000 26/35
03/05/2019 Book

Application web : réaliser


un audit technique
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 lent, 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.

26 N° Vert : 0 805 69 35 35

localhost:8000 27/35
03/05/2019 Book

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éfini aussi les priorités sur
lesquelles se concentrer pour transformer les faiblesses en force efficacement.

27 synbioz.com

localhost:8000 28/35
03/05/2019 Book

Développement
d'applications web : des
projets à haut risque
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 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

28 N° Vert : 0 805 69 35 35

localhost:8000 29/35
03/05/2019 Book

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

29 synbioz.com

localhost:8000 30/35
03/05/2019 Book

Nouvelles applications
web en entreprise : le
rôle de la conduite du
changement
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.

30 N° Vert : 0 805 69 35 35

localhost:8000 31/35
03/05/2019 Book

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.

31 synbioz.com

localhost:8000 32/35
03/05/2019 Book

Développement
d'application web :
comment choisir la
bonne agence ?
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éparez 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
Choisissez 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

32 N° Vert : 0 805 69 35 35

localhost:8000 33/35
03/05/2019 Book

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.

33 synbioz.com

localhost:8000 34/35
03/05/2019 Book

A propos
En 2007 j'ai fait un constat simple : clients et prestataires ne travaille pas assez main
dans la main, et cela se fait au détriment des projets.

Partant de ce postulat j'ai souhaité créer une agence qui vous accompagne en
symbiose, en prenant en charge tous les aspects d'un projet numérique, de la phase
de conseil jusqu'à la mise en production.

Avec mes équipes, et forts de notre expertise technique, nous avons également à
cœur de partager et véhiculer nos connaissances, notre approche des projets et
comment nous nous engageons dans la réussite de nos clients.

Cette expérience nous l'avons compilée dans un ensemble de bonnes pratiques


réunies au sein de ce dossier. Son but est de vous aider à vous poser les bonnes
questions en amont et de vous apporter des éléments de réponse.

À la réussite de vos projets !

Besoin d’évaluer votre projet ? Contactez-nous

34 N° Vert : 0 805 69 35 35

localhost:8000 35/35

Vous aimerez peut-être aussi