Échec d’un projet : être accompagné pour l’éviter

Une des principales causes d’échec d’un projet est le défaut d’accompagnement lors de la préparation et du développement de celui-ci.

Parce que la réussite de votre projet est essentielle pour nous, chez The Coding Machine, nous donnons une importance particulière à l’accompagnement de nos clients.

Proximité, compréhension, challenge sont les maîtres-mots pour un démarrage de projet réussi.


Être accompagné pour maîtriser les risques

Qu’il s’agisse de développer une application mobile, de créer une plateforme web ou de modifier une application métier, tout projet contient des risques. Mais ces problèmes, s’ils sont diagnostiqués et résolus à temps, ne remettent en cause la réussite de votre projet. Au contraire, s’ils ne sont pas corrigés rapidement, qu’ils s’aggravent et se cumulent, ces risques peuvent entraîner l’échec d’un projet.

Mieux vaut donc savoir faire face aux problèmes !

Malheureusement, dans l’effervescence de la préparation et du développement du projet, il est souvent difficile de prendre le recul nécessaire pour identifier le problème et déterminer les solutions les plus adaptées. Le suivi du projet par des professionnels s’avère alors particulièrement utile pour éviter l’échec d’un projet.

Chez The Coding Machine, cet accompagnement prend la forme d’ateliers à chaque étape clé du développement de votre projet.


Démarrer son projet sur des bases solides

  • Atelier de kick off : Pour bien démarrer, il faut apprendre à se connaître, savoir avec qui nous sommes amenés à travailler. C’est pourquoi nous exigeons autant de notre côté que de celui du client d’avoir des équipes dédiées et disponibles. L’intérêt est de rassurer et de créer un lien de confiance.

Notre rôle est aussi d’apporter notre expertise en proposant un périmètre à notre client et en définissant un planning comprenant notamment les différentes phases du projet et les livrables.

Enfin, il est primordial de ne pas avoir peur de parler des risques inhérents à votre projet. Cela permet de les identifier clairement et de trouver des solutions en amont : un bon moyen d’éviter l’échec d’un projet.

  • Atelier d’architecture : Un projet ne peut pas se construire sans des fondations. Pour cela, notre direction technique relève les facteurs déterminants pour définir une architecture solide et fiable : En quoi consiste le projet ? Comment gère-t-on la panne ? Quel est le niveau de trafic attendu ?

À l’issue de cette nouvelle étape, nous sommes capables de fournir une stack technique, les normes de développement à appliquer, ainsi que les documents d’architecture et d’installation propres à votre projet.


Concevoir son projet

Après avoir défini les bases, il est temps de se plonger au cœur du projet. 

  • Atelier UI/UX design : Un projet réussi, c’est aussi un projet qui sait provoquer un effet wouahou ! Avec nos UI/UX en interne ou avec nos partenaires, nous définissons en compagnie de nos clients l’ensemble des interfaces, la charte graphique et le guide de style à appliquer. L’idée est de définir une expérience, un parcours utilisateur et d’implanter un design par-dessus. Suite à cela, nous livrons les wireframes à notre client. 
  • Ateliers annexes : Certains projets nécessitent un accompagnement particulier. Nous faisons ainsi appel à nos partenaires pour gérer des besoins de SEO, avec lesquels nous définissons les mots-clés, le maillage du site, la structure des pages, etc. Il est parfois aussi nécessaire de mener des ateliers d’hébergement pour certains de nos clients afin de fournir les serveurs adéquats.
  • Atelier de conception : On arrive à la fin de la conception du projet. Le besoin du client est défini, il est désormais temps de finaliser les spécifications, de livrer des spécifications fonctionnelles détaillées et de s’attaquer au développement. 

Faire le bilan avant le lancement pour prévenir l’échec d’un projet

  • Atelier post mortem : À la fin de la phase de développement, nous aimons faire le point avec notre client sur le déroulement du projet, mais aussi de préparer les prochaines étapes si besoin : mise en production, maintenance, créations de nouvelles fonctionnalités, etc. C’est aussi un moyen de constater l’absence d’échec d’un projet et d’y mettre fin définitivement. 

Comme vous venez de le voir, vous pouvez compter sur les équipes de The Coding Machine pour vous accompagner à chaque étape du développement de votre projet.

Et si vous n’avez pas pu éviter l’échec d’un projet, tout n’est pas perdu ! Le sauvetage de votre projet est peut-être possible !

Posted in TCM

4 ateliers pour réussir le lancement d’un projet web

Après avoir abordé les grands principes de la phase de conception dans notre précédent article, découvrez les différents ateliers au cours desquels nos équipes vous accompagneront pour vous permettre de réussir le lancement d’un projet web, au travers d’un exemple concret : l’entreprise DISRUPTOR2000.


Le projet de l’entreprise DISRUPTOR2000

DISRUPTOR2000 nous contacte pour développer une application révolutionnaire de mise en relation de particuliers sur un seul et unique réseau social : DISRUPTBOOK.

Bonne élève, elle nous fait parvenir un cahier des charges extrêmement détaillé sur la base duquel nous lui fournissons une estimation financière et une proposition d’accompagnement sur-mesure.

Nous avons déjà :

  • Identifié les éléments critiques de l’application : rôle de l’utilisateur, interaction via des formulaires, volumétrie des données échangées, publication de photos, vidéos, messagerie instantanée, etc.
  • Défini une base technique solide : un front en VueJS et un back en Symfony par exemple.
  • Déterminé les éléments clés de l’application, à savoir : l’interaction entre les utilisateurs, la viralité de l’application et l’expérience utilisateur.
  • Noté que DISRUPTOR2000 veut disposer de technologies flexibles qu’elle pourra faire évoluer et ne pas dépendre d’un outil sur étagère.

Mais pour réussir le lancement d’un projet web, nous avons encore besoin d’informations. Pour cela, nous mènerons à bien 4 ateliers.


Revue des interfaces et analyse du besoin : le 1er atelier pour réussir le lancement d’un projet web

Cet atelier va nous permettre de revoir ensemble toute la proposition d’accompagnement ainsi que le cahier des charges préalablement rédigé. Nous validerons rapidement les éléments qui ne font pas débat (types d’utilisateurs, gestion des droits, etc.) et nous nous attarderons sur les fonctionnalités un peu plus complexes.

L’objectif n’est pas seulement de valider une liste de fonctionnalités, mais plus d’être force de proposition sur la manière de traiter les différents objets métiers.

Grâce à notre expertise et à notre expérience auprès de sociétés évoluant dans des secteurs variés, nous pourrons vous proposer des schémas éprouvés, sur lesquels il peut être judicieux de se calquer pour assurer le bon fonctionnement de l’application.

Si notre vision et celle du client divergent, nous ouvrons le débat et validons ensemble la manière de traiter chaque sujet.

Nous fournissons ensuite un document détaillé récapitulant le comportement de l’application dans son ensemble.


Atelier 2 : Design UI/UX

Pour ce deuxième atelier, l’entreprise DISRUPTOR2000 a déjà travaillé sur un design et des parcours utilisateurs. Ils souhaitent conserver l’ensemble des éléments déjà réalisés, mais sont plutôt réceptifs à l’idée de recevoir des conseils sur des points d’amélioration. 

Nous avons donc réalisé un audit graphique en amont de l’atelier que nous leur présenterons en séance et nous intégrerons les modifications validées à la fin de l’atelier.


Atelier 3 : Architecture

Pour réussir le lancement d’un projet web et bien que nos interlocuteurs n’aient pas toujours les compétences techniques nécessaires pour juger le type de technologies choisies, nous tenons à leur présenter un document d’architecture technique en leur expliquant les différents composants.

Nous en profitons pour justifier l’emploi de chaque outil en le mettant en rapport avec les besoins du client.

DISRUPTOR2000 peut ainsi vérifier grâce à ce document, que l’ensemble des besoins exprimés est satisfait et nous faire part de ses éventuelles remarques.


Le dernier atelier pour réussir le lancement d’un projet web : La validation des spécifications

Ce quatrième atelier va nous permettre de présenter l’ensemble des livrables à DISRUPTOR2000 pour s’assurer de la bonne compréhension et de la bonne traduction de leurs besoins en spécifications fonctionnelles et techniques.

Ce dernier atelier, essentiel pour réussir le lancement d’un projet web, permet de valider définitivement les différents choix faits lors des précédents échanges.


DISRUPTOR2000 nous a fait quelques remarques après la réception de livrables :

  • Remarque sur le livrable 1 : “Finalement, je ne souhaite pas que certains utilisateurs aient plus de droits que d’autres dans un premier temps. Je ferai une partie pour les entreprises dans un second temps, une fois que le modèle sera bien assis, sortons cette partie du périmètre de l’application”.

Notre réponse : Pas de problème ! Nous pouvons mettre de côté cette partie de la spécification et la récupérer pour mettre en place des évolutions dans un second temps 😉

  • Remarques sur le livrable 2 : “Super travail TheCodingMachine, je suis impressionné ! Mais finalement je ne suis pas sûr que le bleu soit la couleur principale la plus adaptée, peut-on tout faire en vert ?”

Notre réponse : Bien sûr, nous vous fournirons l’ensemble des écrans déclinés en vert.

“Parfait et peut-on faire une page d’accueil complètement différente pour voir ce que ça donne ?”
Malheureusement, à ce stade, nous ne pouvons faire que des adaptations mineures (couleur, emplacements des éléments, etc.) sur les maquettes proposées. L’atelier design et les itérations sont là pour valider l’identité graphique de votre application. Si vous le souhaitez, nous pouvons faire intervenir notre équipe Design en marge de ce projet pour vous faire d’autres propositions, mais cette prestation sera distincte du projet.

  • Remarque sur le livrable 3 : “Bon de toute façon, la technique, je vous fais confiance, je ne comprends pas grand chose. Mais cela fait un peu peur parce que je ne peux pas avoir le contrôle, comment pouvez-vous m’assurer que tout va bien se passer ?”

Nous travaillons essentiellement avec des technologies développées en Open Source. Ces outils sont notamment développés par Google, Amazon ou Facebook, et sont suivis par les plus grandes communautés de développeurs. Ces technologies, totalement évolutives et maintenables, sont donc parfaites pour réussir le lancement d’un projet web.

De plus, vous serez propriétaire du code que nous allons vous livrer, si vous souhaitez embaucher des développeurs en interne, les bonnes pratiques techniques que nous mettons en place leur permettront de le reprendre et de le faire évoluer très facilement. Nous documentons aussi toutes les applications que nous développons et réalisons régulièrement des guides plus fonctionnels dans les cas d’applications complexes pour faciliter l’adhésion à l’outil et permettre une prise en main rapide.


Si vous aussi vous souhaitez réussir le lancement d’un projet web, prenez le temps de rédiger un cahier des charges clair et complet grâce à notre livre blanc et n’hésitez à vous faire accompagner par les équipes de The Coding Machine.

Plateformes No Code : Les raisons de leur essor et de leur succès

Développer des applications web ou mobiles sans écrire une seule ligne de code : c’est la promesse des plateformes no code. Avec des utilisateurs de plus en plus nombreux, ces nouveaux outils de développement web sont en plein essor.

Découvrez pourquoi le no code suscite un tel engouement.


Qu’est-ce que le no code ?

Les plateformes de développement no code

Les plateformes no code, c’est-à-dire « sans code », mettent à la disposition de leurs utilisateurs un ensemble d’outils permettant de développer un site web ou une application mobile sans utiliser la programmation informatique. Parmi les plateformes les plus connues, on peut citer : bubble, Airtable ou AppSheet.

Fini les balises et les lignes de code ! Grâce à ces plateformes, vous pouvez créer une application sans jamais coder. Le développement web devient ainsi accessible au plus grand nombre.

No code vs low code, quelle différence ?

Alors que développer une application no code permet de faire totalement abstraction du code source, le low code, qui signifie littéralement « peu de code », permet de simplifier le développement web avec des fonctionnalités préétablies, mais nécessite l’intervention d’un développeur pour les développements spécifiques.


Pourquoi les plateformes no code attirent ?

Les raisons de l’essor du no code sont multiples, mais sont liées d’une part au contexte et d’autre part aux caractéristiques avantageuses des plateformes no code.

Un environnement propice au développement du no code

Les plateformes no code se développent actuellement, car les besoins et les utilisations du numérique ont évolué :

  • Les applications ne cessent de se multiplier : il faut donc répondre à cette demande en développant plus d’applications, et ce, en un minimum de temps.
  • Les utilisateurs du web ont changé : avec la démocratisation du numérique, les utilisateurs sont, pour une grande majorité, actifs sur le web et peuvent être amenés à produire des contenus sur les réseaux sociaux, voire à créer des sites web.
  • Une pénurie croissante de développeurs informatiques : du fait du manque de professionnels du codage, le lancement de certains projets et le déploiement de certaines applications peuvent être ralentis, voire stoppés. Or, cette situation est impossible au regard de la place prépondérante du numérique dans de nombreuses activités.

Les avantages des plateformes no code

En plus de ce contexte, les plateformes no code présentent de nombreux avantages qui expliquent également leur essor :

  • Elles fournissent des fonctionnalités et des services standardisés qui permettent de développer rapidement des projets web simples.
  • Les plateformes no code étant accessibles à tous, elles favorisent les approches collaboratives. Les équipes de conception et de développement peuvent ainsi travailler ensemble, et les applications peuvent être rapidement adaptées suite aux retours des collaborateurs et/ou des utilisateurs.
  • Elles participent à la réduction des coûts de développement. Avec le no code, les entreprises n’ont plus à faire intervenir un développeur. En outre, la collaboration des équipes à la création de l’application favorise leur investissement et donc leur productivité, et permet d’optimiser la durée du développement.
  • Le « go to market », ou mise sur le marché, peut être plus rapide avec les plateformes no code. Cela permet de tester facilement une ou plusieurs idées, d’analyser les comportements des clients et de déterminer les éventuelles améliorations à apporter aux projets web.
  • Les plateformes no code permettent de digitaliser l’ensemble du parcours client : paiement, facturation, envoi d’e-mails ou service client, les entreprises peuvent profiter d’un ensemble de solutions préétablies pour les aider dans leur gestion.

Vous savez désormais pourquoi les plateformes no code rencontrent un tel succès. Mais si vous souhaitez vous lancer dans le no code, vous allez devoir aller plus loin.

Fonctionnement des principales plateformes, choix d’un outil no code adapté à votre projet et retours d’expériences des équipes de The Coding Machine, découvrez tout ce que vous devez savoir sur le no code dans notre livre blanc.

Techniques de NLP : Les méthodes à intégrer dans vos projets

Le Natural Language Processing ou NLP est une branche de l’intelligence artificielle qui développe des programmes informatiques pour comprendre le langage humain.

Pour analyser les textes, différentes techniques de Natural Language Processing sont actuellement utilisées.


Les expressions régulières : une des techniques de Natural Language Processing

Les expressions régulières sont une méthode particulièrement efficace pour traiter un texte. Elle permet notamment de :

  • Faire une analyse rapide de nombreux textes pour trouver des motifs de caractères spécifiques,
  • Découper une chaîne de caractères en paragraphes, phrases et mots,
  • Valider le texte afin de s’assurer qu’il correspond à un modèle prédéfini, comme une adresse électronique.

L’analyse statistique des mots avec TF-IDF

TF-IDF pour « Term Frequency-Inverse Document Frequency » est une des techniques de Natural Language Processing qui offre un premier niveau d’analyse statistique des mots d’un texte.

Elle permet d’évaluer l’importance d’un mot dans un document, en fonction du nombre de fois où celui-ci apparaît, mais compensé par la fréquence globale du mot dans l’ensemble des documents : le corpus.

En effet, certains mots sont tellement répétés dans le corpus, qu’ils ne permettent pas de caractériser en tant que tel un texte. C’est le cas par exemple des mots comme « et », « mais », « le », etc.

Pour détecter les mots-clés d’un texte, il faut donc que le poids TF-IDF associé à un mot soit d’autant plus élevé que le mot est fréquent dans le document considéré et que le mot est rare dans le corpus.


Les modèles de classification de texte

Les techniques de Natural Language Processing dites de classification de texte sont des modèles de machine learning qui fournissent des prédictions de catégorie basées sur un historique d’exemples déjà classifiés, appelé ensemble d’apprentissage.

Il existe différents modèles de classification selon la nature de l’analyse du texte :

  • L’analyse lexicale : classifie les mots selon leur nature grammaticale.
  • L’analyse syntaxique : attribue une fonction aux mots (verbes, sujets, etc.).
  • L’analyse sémantique : permet de classer les mots dans des catégories : lieux, noms propres, etc.
  • L’analyse de sentiment : associe à chaque mot un coefficient de positivité ou de négativité afin de déterminer le sentiment global d’une phrase.

Les modèles de concepts

Pour améliorer les techniques de Natural Language Processing, des linguistes ont recensé les différents concepts associés à un mot dans des bases de données lexicales. Ces concepts correspondent aux différents sens que peuvent prendre un même mot.

Une des plus connues s’appelle WordNet, construite par l’Université de Princeton.


Les modèles de prolongement prédictif des mots

Les modèles de plongement prédictif de mots utilisent des réseaux de neurones artificiels pour apprendre statistiquement une représentation vectorielle de chaque mot présent dans le texte.

Le vecteur associé à chaque mot prend en compte le contexte dans lequel il est apparu tout au long du texte. Cela permet d’avoir une représentation numérique avec les propriétés grammaticales et sémantiques des mots.


Les modèles statistiques de langage

Un des objectifs des modèles statistiques de langage est de construire un modèle qui peut estimer la distribution du langage naturel de manière aussi précise que possible.

Ce type de techniques de Natural Language Processing s’adapte à des textes très différents et permet de fournir un moyen simple de traiter le langage naturel, tout en utilisant un apprentissage non supervisé.


Les graphes de similarité

Ce type de techniques de Natural Language Processing est inspiré de l’algorithme PageRank de Google. Il permet de détecter des groupes de mots caractérisant un texte.

Un texte est modélisé par un graphe constitué de nœuds et d’arêtes représentant des groupes de mots du texte et la fréquence à laquelle les deux groupes apparaissent ensemble dans le texte.


Pour en savoir plus sur le NLP et découvrir toutes les techniques de Natural Language Processing, n’hésitez pas à télécharger notre livre blanc.

Traitement du langage naturel (NLP) : 3 exemples à connaître

Avec la digitalisation des entreprises et la multiplication des communications numériques, l’Intelligence Artificielle se développe de plus en plus, et avec elle différentes techniques de simulation et d’apprentissage, parmi lesquelles le Natural Language Processing ou NLP.

Ressources humaines, marketing et industrie, plongez au cœur de 3 exemples d’utilisation du NLP.


Qu’est-ce que le Natural Language Processing ?

Le Natural Language Processing ou Traitement Automatique de Langage est un ensemble de techniques qui aident une interface machine à comprendre le langage humain. Il permet de lire, d’analyser et de traiter automatiquement des contenus textuels (tweets, articles de bloc, etc.) et d’en tirer les informations nécessaires grâce à un processus de transformation, de compréhension, de classification ou encore de recherche.

L’utilisation du NLP permet aux entreprises d’optimiser un certain nombre de leurs processus dans des domaines différents, de gagner du temps et ainsi d’améliorer leurs performances.


L’utilisation du NLP dans les ressources humaines

Tout responsable des RH le sait, le recrutement et la gestion interne des compétences sont des processus qui prennent beaucoup de temps. C’est notamment le cas de la réception, du tri et de l’examen des CV. Cette mission indispensable des ressources humaines qui permet de présélectionner des candidats avant d’envisager de leur faire passer des entretiens de recrutement, et également une tâche qui peut s’avérer particulièrement chronophage !

Le Natural Language Processing répond à ce besoin en suivant un pipeline de collecte des données qui structure et transforme en tags les différentes informations. Les algorithmes de NLP peuvent ainsi : 

  • Déterminer la nature du document reçu (CV, lettre de motivation, contrat de travail, etc.),
  • Détecter les compétences ou mots-clés (diplômes particuliers, compétences informatiques, maîtrise de certains langages de programmation comme PHP 8 et PHP 8.1, etc.),
  • Construire des indicateurs pour repérer les candidats potentiels,
  • Faire matcher les candidatures avec les offres d’emploi mises en ligne.

L’utilisation du NLP est donc un gain de temps considérable pour les RH qui peuvent dès lors se concentrer sur d’autres missions comme la réalisation des entretiens.


L’analyse automatisée de la satisfaction client

Alors qu’il coûte cinq fois plus cher de recruter un client que de le conserver, la satisfaction et la fidélisation des clients sont des enjeux cruciaux pour toutes les entreprises. Facteur de rentabilité, mais également élément de distinction vis-à-vis de la concurrence, les entreprises ont tout intérêt à suivre leurs clients et à connaître leurs avis.

Dans ce cadre, l’utilisation du NLP permet d’automatiser la détection, l’analyse et la surveillance de la satisfaction client grâce à différents outils :

  • Rechercher les sites web clés dans la satisfaction client et charger les contenus.
  • Détecter les messages dans lesquels on parle de votre entreprise ou d’un de vos produits.
  • Analyser le sentiment et la tonalité du message : avis positifs, réclamations, etc.
  • Mettre en place un chatbot qui pourra répondre aux clients en temps réel et ce, 24h/24.
  • Obtenir une vision globale de la satisfaction de vos clients grâce une agrégation de l’analyse sur un tableau de bord.

La gestion de la maintenance assistée par l’IA

Dans les secteurs de l’industrie et de l’énergie, le recours à l’intelligence artificielle s’accélère, notamment pour l’entretien des machines. L’IA aide à : 

  • Diagnostiquer en temps réel l’état de fonctionnement des équipements,
  • Localiser et analyser les risques futurs de défaillance technique,
  • Planifier les réparations des machines en mettant en place un plan de maintenance prédictive.

L’utilisation du NLP dans ces secteurs permet de repérer et de classifier les mots-clés d’un texte afin de décrire un événement de maintenance, de rechercher facilement et corréler ces données et de les utiliser avec des algorithmes de Machine Learning pour construire un plan de maintenance prédictive.


Avec le Natural Language Processing, le champ des possibles est donc large ! Si vous souhaitez en apprendre davantage sur l’utilisation du NLP, n’hésitez pas à télécharger notre livre blanc.

Native, Hybride, PWA : Quelle techno pour votre appli ?

Pour accéder à certains services, communiquer avec d’autres personnes, faire des achats, jouer ou visionner des vidéos, les applications mobiles sont partout ! Dans ce contexte, la création d’appli est devenue incontournable pour de nombreuses entreprises.

Mais avant de lancer une application mobile, encore faut-il savoir laquelle !

Native, hybride, PWA, cross-platform, tour d’horizon des différentes technologies à votre disposition.

L’application native, pour une expérience utilisateur optimale

Les applications mobiles natives sont conçues pour une plateforme particulière : Android, iOS, Windows Phone. Optimisées pour la plateforme pour laquelle elles sont conçues, elles offrent une excellente expérience utilisateur avec notamment un chargement très rapide, une utilisation sans connexion Internet et la possibilité d’intégrer de nombreuses fonctionnalités (appareil photo, capteur biométrique, gyroscope, etc.).

  • Points positifs : Les utilisateurs profitent d’une appli haute résolution, performante et ergonomique avec des fonctionnalités avancées.
  • Revers de la médaille : En optant pour la création d’appli native, vous devez développer une application spécifique avec un langage différent (Swift pour iOS, Java pour Android, etc.) pour chaque plateforme. Une application native impose donc de lancer non pas un, mais deux projets : un pour Android et un pour iOS, avec pour chacun un ou plusieurs développeurs (développeur Java pour une appli sur Android, etc.). Cette multiplication des projets et des intervenants entraîne forcément une augmentation des coûts et du temps nécessaire au développement de ces applications.

Entre appli web et appli native, la création d’appli hybride

Les applications mobiles hybrides sont développées avec des langages web ou Webview (HTML, JavaScript, CSS) et utilisent un framework comme Apache Cordova ou Ionic Framework qui permet de déployer l’appli sur les différentes plateformes mobiles (iOS, Android, Windows Phone) et ce avec une seule base de code.

  • Intérêts : Les technologies web étant connues de la plupart des professionnels du développement informatique, il est plus facile de trouver un développeur capable de suivre ce type de projet, ce qui rend les applis hybrides plus accessibles financièrement que les natives.
  • Inconvénients : Ces applications sont moins rapides et offrent donc une expérience utilisateur moindre que les natives.

Applications multiplateformes, un langage pour des performances optimisées

Reprenant le principe des applications hybrides associant technologies web et frameworks, les applis cross-platform sont développées avec de nouveaux frameworks tels que React Native de Facebook, Flutter de Google, ou NativeScript.

  • Avantages : La création d’appli cross-platform permet de profiter d’une application mobile sur les différents systèmes d’exploitation, avec des performances et des possibilités proches des applis natives.
  • Points de vigilance : Ce type d’appli nécessite de trouver des développeurs maîtrisant ces techniques, d’où une hausse des coûts.

Progressive Web App, des technologies web pour des applis simples

Apparues pour la première fois en 2015, les PWA permettent de développer, grâce aux technologies web et notamment JavaScript, une seule application qui sera utilisable sur tous les supports (ordinateur, tablette, mobile) et ce quel que soit le navigateur web.

  • Atouts : La création d’appli web n’impose pas de développer plusieurs versions de l’application, ce qui permet de gagner du temps et diminue les coûts de développement. De plus, le service worker des PWA participe à la fluidité de ces applis et permet de les faire fonctionner hors-ligne.
  • Difficultés : Les applis web n’offrent pas les mêmes possibilités que les applications mobiles en termes de fonctionnalités. Si les PWA peuvent profiter de l’appareil photo des smartphones, elles ne peuvent tirer profit de certaines fonctionnalités plus avancées comme le capteur biométrique.

Comment faire le bon choix lors d’une création d’appli ?

Performance, budget, expérience utilisateur, fonctionnalités, chaque application a des atouts et des inconvénients. La bonne appli ne sera pas celle qui offre le plus de fonctionnalités ou la meilleure performance, mais celle qui correspondra le mieux à votre projet de développement mobile. Pour faire le bon choix, vous devrez donc vous poser certaines questions avant de lancer la création d’appli :

  • Qui utilisera l’appli (appli B2B ou B2C) ?
  • Que pourront faire les utilisateurs via l’appli (regarder des vidéos, se localiser, jouer, etc.) ?
  • Quelles sont les fonctionnalités que vous souhaitez intégrer à votre appli ? Les prioritaires et les optionnelles ?
  • Quel délai avez-vous pour faire aboutir votre projet mobile ?
  • Quelles sont les compétences de vos équipes techniques ?
  • Quel est votre budget pour la création d’appli ?

Vous souhaitez créer une application et hésitez encore entre les différentes possibilités qui s’offrent à vous ? Pour vous aider à y voir plus clair, n’hésitez pas à prendre connaissance de nos livres blancs sur les applis React Native et les PWA.

Gestion des risques d’un projet web : Les 4 étapes essentielles

Retard dans le déploiement, coûts supplémentaires, inadaptation des fonctionnalités à vos besoins, développer un projet n’est pas sans risques !

Mais des solutions existent pour identifier et gérer les risques d’un projet web à différentes étapes clés.

Anticiper les risques d’un projet web dès la conception

Tout projet débute par l’élaboration d’un cahier des charges web qui permet de délimiter le périmètre du projet en fonction de vos besoins et évite de s’éparpiller. Pour être efficace et servir de repère aux différents intervenants, celui-ci doit d’être clair et facilement interprétable.

Côté technique, si vous n’avez pas de solides compétences, n’hésitez pas à faire appel à un prestataire extérieur reconnu pour son expertise. Il sera à même de vous conseiller et de vous proposer des solutions adaptées à vos besoins.

La conception de votre projet sera ainsi facilitée et certaines erreurs pourront être évitées.

Pour limiter les risques d’un projet web, vous devez toutefois être vigilant sur deux points concernant les prestataires extérieurs :

  • Choisissez vos prestataires pour leurs compétences, leurs références, et pas seulement pour leurs tarifs, au risque de voir s’ajouter des coûts supplémentaires qui pourraient plomber voire bloquer l’avancement de votre projet.

  • Déléguer le développement technique ne signifie pas abandonner votre projet à un prestataire. Gardez donc toujours un œil sur l’évolution du projet.

Éviter la complexité pour les fonctionnalités

Le risque se crée et s’alimente en voyant trop grand dès le début. Plus le périmètre est large, plus vous apportez de la complexité et plus vous laissez de la place au risque. Pour éviter cet écueil, avancez progressivement dans votre projet.

Commencez par concevoir de petites fonctionnalités qui pourront par la suite être améliorées et/ou auxquelles vous pourrez ajouter des fonctionnalités supplémentaires, plus complexes.

En effet, le risque en développant de nombreuses fonctionnalités est que certaines ne serviront jamais. Or, ce développement inutile de fonctionnalités vous fera perdre du temps et de l’argent.

Gérer les risques d’un projet web pendant son développement

Une fois le cahier des charges rédigé et les fonctionnalités définies, il est temps de passer à l’action et d’entrer dans la phase de développement. Mais pour que cette étape se passe bien, il vaut mieux la préparer :

  • Fixer des points d’avancement réguliers avec les différents acteurs du projet afin de limiter les retards de production.
  • Assurer une communication continue avec une transmission régulière des informations, l’évolution de son développement, les éventuelles difficultés rencontrées, et la gestion des risques du projet.
  • Prévoir des recettes intermédiaires avec des bêta-testeurs afin d’impliquer des utilisateurs dès la conception et à différents stades du développement.

Tester votre projet avant son lancement

Votre projet est sur le point d’être lancé ? Ce n’est pas le moment de foncer tête baissée, mais gardez toujours à l’esprit que les dernières failles peuvent apparaître juste avant d’atteindre la ligne d’arrivée.
Pour éviter d’avoir de mauvaises surprises une fois le lancement réalisé, il est indispensable de tester préalablement votre projet. 

Vous évitez ainsi l’effet tunnel, qui consiste à développer pendant une longue période sans faire intervenir les utilisateurs. Le risque est alors de développer un projet qui ne correspond pas du tout aux besoins de vos clients.

Au contraire, si vous avez réalisé des recettes intermédiaires tout au long du développement, les anomalies de base seront déjà réglées. Il ne vous restera que quelques ajustements à réaliser pour offrir une utilisation optimale de votre application aux utilisateurs.

Vous connaissez désormais l’essentiel sur la gestion des risques d’un projet web !

Si vous souhaitez découvrir nos conseils pour identifier certains signaux de risques, prenez le temps de lire notre livre blanc sur le sauvetage de projet, ou contactez les équipes de The Coding Machine pour leur présenter votre projet et les problématiques auxquelles vous faites face.

Résoudre les problèmes d’un projet tech : Méthodes et outils efficaces

Le diagnostic vient de tomber : votre projet risque de ne pas aboutir.

Pourtant, pour résoudre les problèmes d’un projet tech, 3 méthodes efficaces peuvent être mises en œuvre.

Que l’origine des dysfonctionnements soit une mauvaise analyse des besoins, des choix techniques inadaptés, les compétences insuffisantes de vos équipes ou le désintérêt d’un prestataire, voici comment tenter de sauver votre projet.

Méthode 1 : Ne pas hésiter à supprimer le problème…voire l’application

Si les problèmes ont une origine technique, l’application développée sera difficile à sauver. Il est alors contre-productif de continuer à chercher des solutions pour résoudre les problèmes tech et tenter de sauver le projet à tout prix.

En effet, la correction d’erreurs graves de conception dans l’architecture est souvent très coûteuse. Dans cette hypothèse, il est parfois préférable de reprendre le développement « from scratch » et de se lancer dans le redéploiement complet du projet.

Méthode 2 : Gérer les problèmes périphériques

Si à l’issue de la première analyse, il s’avère que l’application mérite d’être sauvée, il faut alors s’intéresser aux problèmes humains. Cette étape est assez délicate à entreprendre, car lorsque des dysfonctionnements ou des désaccords apparaissent au cours d’un projet, les sentiments négatifs se développent entre les différents acteurs, chacun rejetant la faute sur l’autre et ayant l’impression de s’être fait avoir par l’autre prestataire.

Or, ces ressentiments altèrent et faussent la vision que vous avez du projet et risquent de vous empêcher de résoudre les problèmes d’un projet tech.

Il est donc important de faire preuve de bon sens et de pragmatisme en évaluant toutes les solutions possibles et en se posant les bonnes questions :

  • Est-il opportun de changer de prestataire ? Quels seront les bénéfices d’un tel changement ? Quels seront les éventuels coûts supplémentaires ?
  • Faut-il changer vos équipes pour redonner un second souffle à votre projet grâce à de nouveaux collaborateurs ?
  • Est-il possible de faire une pause dans le développement du projet, le temps de faire le point, de prendre du recul et d’éventuellement réorganiser vos équipes et vos prestataires ?
  • Une nouvelle organisation du projet est-elle envisageable ? Combien coûterait un tel changement et vos collaborateurs seraient ils prêts à une telle évolution ?

Méthode 3 : Gérer les problèmes techniques

Pour gérer vos problèmes techniques, il existe une méthode simple et facile à appliquer. Il s’agit de classer les risques encourus et les actions à entreprendre en fonction de 4 critères :

  • L’impact : le coût associé à la survenance du risque
  • La probabilité de survenance du problème
  • Le coût lié à la mise en place d’un correctif
  • La catégorie associée au risque (architecture, sécurité du code, etc.)

Vous pourrez ainsi déterminer quelles sont les actions prioritaires à mener pour résoudre les problèmes d’un projet tech.

Le cas particulier des problématiques de performance

Site Internet lent, chargement difficile d’une application, les problèmes de performance sont particulièrement gênants pour les utilisateurs et peuvent remettre en cause l’efficacité de tout un projet web. Malheureusement, ils sont difficilement détectables avant la mise en production du projet et apparaissent donc souvent en fin de mission. Pour autant, il n’est pas toujours trop tard pour remédier à ces problèmes.

Si l’architecture technique est bonne, différentes solutions d’optimisation peuvent être mises en place. Au contraire, si l’architecture de l’application a été mal conçue ou n’est pas adaptée, la première méthode pour résoudre les problèmes d’un projet tech devra être envisagée, au risque de devoir tout reprendre à zéro.

Vous voulez en savoir plus sur les différentes solutions pour résoudre les problèmes d’un projet tech, découvrir des exemples de cas pratiques auxquels The Coding Machine a dû faire face et profitez de quelques recommandations issues de notre expérience ? N’hésitez pas à télécharger notre livre blanc sur le sauvetage de projet.

Comment créer des applications mobiles performantes avec React Native

Alors que les mobinautes sont de plus en plus nombreux dans le monde et que le nombre d’applications téléchargées ne cesse d’augmenter, difficile de passer à côté du développement mobile de votre activité !

Mais comment créer une bonne appli mobile ?

Notre équipe de Lyon répond à cette question et nous confie tout ce qu’il faut savoir sur le Framework React Native.

Les méthodes de développement mobile

Aujourd’hui, il existe trois méthodes pour développer une application mobile :

  • Le développement natif : il consiste à développer une application pour chaque langage du marché (iOS, Android, Windows…). Mais, la diversité des environnements de développement, a entraîné la naissance de nouvelles solutions, appelées hybrides.
  • Le développement hybride : il permet le développement d’une application dans un navigateur grâce à des technologies web ou Webview (HTML, JavaScript, CSS…).

Avec ce type d’applications, nous perdons des fonctionnalités et donc de la performance du fait des nombreuses couches. En effet, les couches Webview et Cordova se greffent à la couche native du téléphone.

Diagramme des couches Cordova, WebView, Natif et Hardware illustrant l'architecture REACT-NATIVE.

Face à ce constat, de grands noms comme Facebook ont constaté que l’hybride n’était pas la solution la plus adaptée en termes de performances. Ils ont donc créé React Native.

  • React Native : est une technologie Open Source développée par Facebook qui permet de développer avec un seul langage, des applications pour Android et iOS.

Grâce à cette nouvelle technologie de développement mobile avec une couche React Native qui se greffe directement à la couche native du téléphone, les applications React Native sont plus performantes et sécurisées.

Le développement mobile avec React Native

Icône React Native (Facebook Open Source) avec statistiques de lancement et devise "Learn Once, Write Everywhere".
  • De quoi se compose React Native ?

À la racine, on dispose d’un dossier App contenant du React, d’un dossier iOS et d’un dossier Android. Dans ces deux derniers, nous avons de vraies applications qui communiquent avec React. Pendant le développement mobile, on attache peu d’importance aux dossiers iOS et Android, mais seulement au dossier App qui va communiquer avec l’application native.

  • Application React Native : comment ça marche ?

Sur le téléphone, lorsqu’une application React Native est lancée, il y a deux threads qui fonctionnent en parallèle : le thread JavaScript contenant le code et le thread UI, natif, qui lui affiche les composants.
React Native a développé un bridge qui permet de faire communiquer ces deux threads qui parlent des langages différents : le thread JavaScript envoie son composant de code (ses informations JSON) au bridge React Native qui va le traduire et l’afficher sur l’écran de l’application.

Schéma React-Native montrant le pont entre le code et l'interface utilisateur mobile. Hello World en bleu.

Les questions récurrentes sur React Native

  • Est-ce que je peux porter mon application mobile sur le web ? Porter du React Native sur le web n’est pas impossible, mais ce n’est pas une bonne idée pour autant ! En effet, une application mobile est développée selon l’ergonomie et les composants d’un téléphone. La porter sur le web n’a donc aucun intérêt.
  • Est-ce que mon application va être acceptée sur les stores ? En hybride, il y a beaucoup de problèmes à déployer son application sur les stores, mais en React Native, les dossiers iOS et Android sont 100 % fiables.
  • Mon application est-elle aussi sécurisée qu’une application native ? La technologie React Native n’introduit pas de faille lors du développement mobile, si elle est bien utilisée ! Il y a toutefois des clés à connaître, comme ne pas stocker d’informations sensibles dans le téléphone.

Le point de vue de The Coding Machine

Chez The Coding Machine nous développons des applications mobiles grâce au React Native, voici notre retour d’expérience !

Nos points de vigilances

  • Les montées de version : pendant un certain temps React Native développait une version par jour. Il est donc important de tout suivre.
  • Les bugs, mais ils sont très vite corrigés grâce à une communauté active.
  • iOS vs Android, certains comportements peuvent être différents entre ces deux systèmes d’exploitation.
  • Le déploiement sur les stores prend beaucoup de temps. Il faut donc anticiper !

Nos bons points

  • La montée en expérience est très rapide. Toute personne ayant fait du React, du Vue ou du JavaScript est capable de développer ses compétences très rapidement.
  • Côté UX et performances, React Native n’a rien à envier aux applications natives.
  • L’automatisation des déploiements grâce à des outils comme Fastlane que nous utilisons.

Nos petits tips

  • Réaliser régulièrement une veille technologique, car React Native est un framework en constante mutation.
  • Faire attention aux maquettes, nous avons l’habitude d’en faire à destination du web mais il y a des différences pour le développement mobile.
  • Développer sur Mac : en effet, il est possible d’émuler sur un téléphone Android et un iPhone à partir d’un Mac alors qu’émuler une application à partir d’un PC n’est pas possible sur iPhone.
  • Prendre en compte les encoches des téléphones lorsque vous créez votre application.
  • Profiter du boilerplate React Native développé par The Coding Machine pour créer des applis mobiles robustes et découvrez les nouveautés de la V2 du boilerplate React Native dans notre vidéo Youtube.

Vous souhaitez en savoir plus sur le développement mobile React Native ? N’hésitez pas à télécharger notre livre blanc sur le sujet.

Stratégie mobile : applications web PWA ou applications mobiles ?

Depuis 2015, les entreprises qui souhaitent mettre en place ou développer leur stratégie mobile ont une alternative aux applications mobiles : les Progressive Web Applications. Si les PWA présentent de nombreux avantages pour le développement d’une stratégie mobile, cela suffira-t-il à prendre la place des applications mobiles traditionnelles ? Pas si sûr…


Le développement des appareils et des applications mobiles

Alors qu’à ses débuts, le web se développait exclusivement sur les ordinateurs fixes, ces dernières années, l’apparition des smartphones a démocratisé l’accès à Internet et a modifié les comportements des utilisateurs.

Dans ce contexte et pour répondre aux nouveaux besoins des clients, les premières applications mobiles ont vu le jour et les entreprises ont dû mettre en place une stratégie mobile.

Le nombre d’applications mobiles n’a depuis pas cessé d’augmenter et ne semble pas connaître la crise au regard du dynamisme de ce marché.

L’attrait pour les applications mobiles et leur développement sont en grande partie liés aux fonctionnalités inédites implémentées par les développeurs via des interfaces de programmation (API), qui offrent aux utilisateurs des applications une expérience plus riche avec notamment :

  • Un accès hors-ligne,
  • Des notifications (push),
  • La synchronisation de tâches de fond,
  • La géolocalisation,
  • L’accès aux différentes technologies de l’appareil : photo, gyroscope, Bluetooth, NFC, etc.

Les applications occupent actuellement les écrans des téléphones et des tablettes par dizaines, bouleversant ainsi notre quotidien et augmentant notre utilisation des appareils mobiles.


Quelles sont les limites des applications mobiles ?

Malgré leur développement, les applications mobiles n’ont cependant pas remplacé le web et présentent certaines limites :

  • Des applications mobiles peu utilisées : si nous n’avons jamais autant téléchargé d’applications sur nos téléphones, le paradoxe est que nous n’en avons jamais utilisé aussi peu.
  • Des applications coûteuses : Tout d’abord pour le développement, car pour un seul concept d’application il est nécessaire de développer deux applications natives (iOS et Android) et ces développements ne sont pas simples à maîtriser. Il y a également le coût associé à la promotion de l’application au sein des différentes boutiques d’applications (App Store, Google Play).
  • Un accès difficile pour les clients : si vous ne fournissez pas directement un lien de votre application vers la boutique d’applications, l’utilisateur devra au préalable faire une recherche dans la boutique pour espérer trouver votre application parmi une multitude de concurrents, puis enfin la télécharger. Le risque est donc de perdre des centaines de potentiels utilisateurs.

Applications web PWA, de nouvelles opportunités pour développer une stratégie mobile

Apparues pour la première fois en 2015, les PWA présentent de nombreux avantages. Elles permettent :

  • d’allier technologies web et nouveautés offertes par les appareils mobiles (appareil photo, GPS, notifications…),
  • d’installer facilement une application web sur tous types d’écrans et de supports, et ce sans distinction : ordinateurs, mobiles (Android ou iOS) et tablettes,
  • de proposer une expérience améliorée par la PWA aux utilisateurs sur mobile et ordinateur,
  • d’optimiser les temps de chargement pour conserver l’utilisateur un maximum de temps sur son site Internet,
  • de diminuer fortement les coûts de développement par rapport à une application mobile native.

Développer une application web PWA plutôt qu’une application mobile native reste toutefois un choix qui n’est pas évident et qui dépend de la stratégie mobile établie en fonction du domaine d’activité, des clients visés, etc.

Mais, opter dès aujourd’hui pour une Progressive Web Application comme solution de développement d’une stratégie mobile, c’est certainement s’inscrire dans ce que sera le web ces prochaines années. Cependant, si les PWA présentent de nombreux avantages, beaucoup de défauts restent encore à corriger : installation pas forcément simple, maturité des outils de développement ou encore la présence sur les stores… 

Pour en savoir plus n’hésitez pas à lire notre livre blanc sur les Progressives Web Application !