Appréhender les risques grâce au Quality Assessment (QA)

Le Quality Assessment (QA), ou évaluation de la qualité, se positionne comme une méthode essentielle pour anticiper les défis et renforcer la robustesse des projets.

« Réussir à améliorer la qualité et à inscrire durablement son entreprise dans une dynamique d’amélioration continue, ne peut pas être le fruit du hasard. »

Quel que soit votre projet, il existe des méthodologies pour anticiper les risques qui lui sont liés. Chez TheCodingMachine, nous préconisons de réaliser des QA (Quality Assessment) : dans cet article nous vous expliquons pourquoi il est important de réaliser cette étude en amont de tout projet.

Qu’est-ce que le Quality Assessment ?

Quality Assessment ou évaluation qualitative, est l’étude d’un projet et de tous les risques qu’il comporte.
Le QA est un processus structuré visant à analyser un projet, identifier ses risques et proposer des solutions concrètes pour les maîtriser. Contrairement à une simple vérification post-projet, le QA intervient en amont et tout au long de la réalisation.

Pour cela, vous devez tout d’abord constituer une équipe au sein de votre entreprise qui sera garante de ce suivi et qui rencontrera le chef de projet pour échanger sur les risques et les besoins de son projet.
Nous vous conseillons de faire cette première étape en présentiel, même si le télétravail est de plus en plus répandu ! En effet, il est plus simple et plus rapide de la réaliser en face à face.
Ainsi, réaliser un QA vous permettra de garantir la qualité des projets de votre entreprise.

Étapes principales du QA :

  1. Constitution de l’équipe QA : inclut un chef de projet, des experts techniques, et parfois des parties prenantes.
  2. Analyse initiale : discussion approfondie sur les objectifs, les contraintes et les risques.
  3. Documentation : création d’un rapport regroupant les risques identifiés, leur criticité, et les recommandations.

Pourquoi adopter le QA dans vos projets ?

Aucun projet n’est à l’abri des aléas. Cependant, intégrer un QA dès le départ offre plusieurs avantages :

  1. Réduction des risques : identifier les problèmes avant qu’ils n’impactent le projet réduit les coûts et les délais.
  2. Amélioration continue : chaque QA fournit une base d’apprentissage pour les projets futurs.
  3. Confiance accrue : une gestion rigoureuse des risques inspire confiance aux équipes et aux clients.

Cas pratique :
Une entreprise a intégré un QA dans un projet e-commerce complexe. Résultat : une diminution des bugs en production de 40 %, grâce à une anticipation des incompatibilités entre modules tiers.

La QA Machine : un outil pratique

TheCodingMachine a développé la QA Machine, un outil structurant pour les évaluations. Elle repose sur une méthodologie guidée, générant des rapports détaillés avec :

  • Une catégorisation des risques (par domaine ou criticité).
  • Des solutions concrètes et des recommandations.
  • Un espace de commentaires pour une collaboration fluide.

Cet outil facilite l’organisation et renforce la pertinence des analyses.

qa machine

Comparaison de méthodologies

Plusieurs approches existent pour réaliser un QA. Voici un aperçu :

  1. Diagramme d’Ishikawa (5M) : utile pour visualiser les causes profondes des risques.
  2. AMDEC (Analyse des Modes de Défaillance et de Criticité) : priorise les risques selon leur impact et leur probabilité.
  3. QQOCCP (Quoi, Qui, Où, Quand, Comment, Pourquoi) : cadre simple pour structurer les discussions.
  4. Brainstorming : encourage la créativité dans la détection des risques.

L’AMDEC est particulièrement efficace pour les projets techniques nécessitant une analyse poussée.

Bonnes pratiques pour un QA réussi

  1. Impliquer les parties prenantes : inclure des utilisateurs finaux ou experts métier dès le début.
  2. Prioriser les risques : classer les risques selon leur criticité et leur probabilité d’occurrence.
  3. Documenter chaque étape : centraliser les informations pour les partager efficacement.
  4. Adopter une approche itérative : revisiter le QA à chaque phase clé du projet.

L’impact du QA sur la productivité

Selon une enquête interne de TheCodingMachine, les projets intégrant un QA montrent :

  • Une réduction des délais moyens de 25 %.
  • Une amélioration significative de la satisfaction client.

L’analyse révèle que les équipes gagnent en productivité grâce à une meilleure planification et une anticipation des obstacles.

Exemple de QA dans un projet de site e-commerce

1. Identification des risques

Techniques

Un site e-commerce peut être ralenti par des images non optimisées, impactant l’expérience utilisateur et le référencement. De plus, les bugs lors de l’intégration des solutions de paiement, comme Stripe ou PayPal, peuvent entraîner des abandons de panier et nuire à la réputation du site.

UX/UI

Une navigation mal conçue ou peu intuitive complique le parcours d’achat, provoquant des frustrations pour les utilisateurs. L’absence de feedback visuel, par exemple lors de l’ajout d’un produit au panier, réduit l’engagement et la satisfaction des clients.

Marketing et Référencement

Les balises SEO manquantes et une vitesse de chargement lente pénalisent la visibilité du site. Par ailleurs, des intégrations incomplètes ou erronées avec des outils d’analyse comme Google Analytics ou le Pixel Facebook limitent les capacités de suivi et d’optimisation des campagnes marketing.

2. Méthodologie QA

Approches utilisées :

  1. Analyse AMDEC pour prioriser les risques (impact/probabilité).
  2. Tests techniques :
    • Performance avec des outils comme PageSpeed Insights ou GTmetrix.
    • Sécurité avec des scans de vulnérabilités.
  3. Tests fonctionnels :
    • Parcours utilisateur complet (de la recherche produit au paiement).
    • Scénarios de test pour chaque fonctionnalité (filtres, tri, gestion panier).
  4. Audit SEO pour vérifier les balises, la structure, et le contenu.

3. Proposition d’amélioration

Pour garantir un site e-commerce performant, plusieurs actions clés sont recommandées :

Optimisation des images : Mettre en place une compression automatique des images avant leur mise en ligne afin de réduire les temps de chargement et améliorer les performances générales du site.

Monitoring des erreurs : Intégrer un outil tel que Sentry pour détecter et suivre les anomalies en temps réel, notamment après les mises à jour.

Amélioration de la navigation : Revoir l’ergonomie et valider son efficacité via des tests utilisateurs, en privilégiant un parcours fluide et intuitif.

Optimisation mobile : Adapter le site pour offrir une expérience responsive sur tous les écrans, en particulier sur mobile, qui représente une part importante des transactions.

4. Recommandations finales

  • Mettre en place un workflow d’automatisation pour les mises à jour (CI/CD).
  • Prévoir des tests récurrents après chaque sprint ou mise à jour majeure.
  • Former les équipes à détecter et corriger rapidement les anomalies via l’outil d’administration.

Perspectives et intégration du QA

Le QA n’est pas réservé aux grands projets. Il s’adapte à toutes les échelles :

  • Petites entreprises : détecter les failles potentielles dans des projets locaux.
  • Startups : minimiser les risques tout en maintenant une agilité.
  • Grands groupes : structurer des initiatives complexes avec de multiples intervenants.

Le QA peut être enrichi par des outils modernes comme :

  • Trello ou Jira pour suivre les risques.
  • Outils d’analyse prédictive pour identifier les tendances.

Le Quality Assessment est bien plus qu’une formalité. C’est un investissement stratégique permettant d’assurer la qualité, la satisfaction client, et la réussite à long terme des projets. En adoptant des méthodologies éprouvées et des outils modernes comme la QA Machine, les entreprises peuvent transformer les risques en opportunités d’amélioration continue.

LangChain : mettre de l’IA générative au cœur de vos projets !

LangChain est un framework qui facilite le développement d’applications utilisant des modèles de langage naturel (LLM). Depuis son lancement, il a rapidement gagné en popularité : plus de 87 000 étoiles sur GitHub (à comparer aux 77 000 étoiles de Laravel, le framework PHP le plus populaire !). Ce succès s’explique par sa capacité à simplifier l’intégration des modèles NLP dans plein de projets.

Qu’est-ce que LangChain ?

LangChain est un framework open-source conçu pour orchestrer et gérer les modèles de langage naturel. Il permet aux développeurs de créer des chaînes complexes de traitements linguistiques, en intégrant divers modèles et outils. LangChain est particulièrement adapté pour optimiser les workflows de traitement du langage naturel.

Fonctionnalités principales

  • Orchestration de modèles : LangChain permet de combiner plusieurs modèles NLP en une seule chaîne de traitement, optimisant ainsi les flux de travail et les résultats finaux.
  • Modularité : Le framework est conçu de manière modulaire, permettant aux développeurs d’ajouter ou de remplacer des composants sans affecter l’ensemble de la chaîne.
  • Support multi-plateforme : LangChain est compatible avec diverses plateformes et frameworks, facilitant son intégration dans des environnements existants.
  • Personnalisation : Les utilisateurs peuvent personnaliser les chaînes de traitement selon leurs besoins spécifiques, en ajustant les paramètres et en ajoutant des modules supplémentaires.
Schéma de structure LangChain - LangSmith, LangServe

Concrètement, le framework se compose des bibliothèques open source suivantes :

  • langchain-core : abstractions de base et langage d’expression LangChain.
  • langchain-community : intégrations tierces.
    • Packages partenaires (par exemple langchain-openai, langchain-anthropic, etc.) : certaines intégrations ont été divisées en leurs propres packages qui dépendent uniquement de langchain-core.
  • langchain : chaînes, agents et stratégies de récupération qui constituent l’architecture cognitive d’une application.
  • LangGraph : créez des applications multi-acteurs robustes et dynamiques avec des LLM en modélisant les étapes sous forme d’arêtes et de nœuds dans un graphique.
  • LangServe : permet de déployer des chaînes LangChain en tant qu’API REST (Le framework python sous jacent est Fast API)
  • LangSmith : une plate-forme de développement qui vous permet de déboguer, tester, évaluer et surveiller les applications LLM (Notamment afin de suivre les tokens et les coûts associés)

Pourquoi utiliser LangChain ?

Réduction du temps de développement

LangChain simplifie la création et la gestion des workflows de traitement du langage naturel. En permettant aux développeurs de combiner différents modèles et outils en une seule chaîne, il réduit la complexité et le temps nécessaire pour développer des applications NLP.

Flexibilité

Grâce à ses modules, LangChain offre une grande flexibilité. Les développeurs peuvent facilement ajouter de nouveaux composants ou les remplacer pour répondre aux besoins de leurs projets. Par exemple, vous pouvez utiliser un modèle pour l’analyse syntaxique, un autre pour la génération de texte, et un troisième pour la traduction.

Intégration

LangChain est conçu pour s’intégrer facilement avec les infrastructures existantes. Que vous utilisiez des plateformes de cloud computing, des bases de données ou d’autres outils de NLP, LangChain peut être intégré sans effort, améliorant ainsi la productivité et l’efficacité.

Performances

En permettant une orchestration efficace des modèles, LangChain optimise les performances des applications NLP. Les développeurs peuvent tirer parti de la puissance combinée de plusieurs modèles, améliorant ainsi la précision et la pertinence des résultats.

Cas d’utilisation de LangChain

Génération de contenu

LangChain peut être utilisé pour automatiser la génération de contenu. En combinant des modèles de génération de texte avec des outils d’analyse de sentiment et de style, les développeurs peuvent créer des articles, des descriptions de produits, et même des scripts de chatbots.

Analyse de données

L’analyse de données textuelles est une autre application importante. En utilisant des modèles d’extraction d’informations, de classification de texte, et d’analyse de sentiment, LangChain permet de transformer des données brutes en informations exploitables.

Traduction automatique

Ce framework peut aussi être utilisé pour la traduction automatique. En combinant des modèles de traduction avec des outils de correction grammaticale et de reformulation, il offre des traductions assez précises.

Chatbots et assistants virtuels

LangChain permet de développer des chatbots et assistants virtuels de manière très rapide, en combinant des modèles de compréhension du langage naturel avec des modules de génération de réponses.

Les modules les plus intéressants !

Intégration des bases de données

Un module particulièrement prometteur de LangChain est le SQLDatabase, qui utilise SQLAlchemy pour permettre aux modèles NLP d’interagir avec les bases de données relationnelles. Ce module génère des requêtes SQL à partir de commandes en langage naturel, optimise ces requêtes pour une performance maximale et formate les résultats de manière compréhensible. Cela simplifie grandement l’extraction et l’analyse des données stockées, rendant les analyses accessibles à tous les niveaux de compétence technique.

Découvrez notre article dédié pour générer des requêtes SQL depuis une demande en langage naturel

… et nous publierons très prochainement un autre article sur ce sujet ! #Teasing

Autres modules prometteurs de LangChain

En plus de SQLDatabase, LangChain propose d’autres modules prometteurs, même si certains sont encore en phase bêta :

  • La possibilité de créer des Tools (ou modules) pour interagir notamment avec des API  créant ainsi des tâches très spécifiques. Par exemple, les mathématiques sont très mal gérées dans les IA génératives… Ou bien si vous avez besoin d’envoyer un email. 
  • Les tools relatif à Google (Drive, Finance, Lens, etc.) qui permettent une connexion au API Google depuis Langchain ; 
  • Le Tools Gitlab et/ou Github permettant d’automatiser intelligemment des actions telles que la gestion de dépôts, les révisions de code, et les déploiements, améliorant ainsi l’efficacité des workflows DevOps..

Conclusion

LangChain se révèle être un framework hyper intéressant si vous souhaitez intégrer l’IA dans vos projets. Grâce à sa modularité, sa flexibilité, et ses capacités d’orchestration, LangChain vous permet de développer rapidement des fonctionnalités telles que : la génération de contenu, l’analyse de données, ou la création de chatbots. 

De plus, avec des modules comme SQLDatabase, il facilite l’intégration des bases de données SQL et l’orchestration de tâches complexes, permettant des interactions plus simples avec les données. 

Il n’y a plus qu’à trouver des idées !

Écosystème Laravel : nos 10 paquets préférés !

Laravel est l’un des frameworks PHP les plus populaires au monde, reconnu pour sa simplicité, son élégance et sa richesse fonctionnelle. Depuis ses débuts, Laravel a construit un écosystème complet de bibliothèques et d’outils qui facilitent le développement web. Cet article explore quelques-unes des bibliothèques que l’on préfère : 

Laravel Breeze – Un starter-kit clé en main

Laravel Breeze est un starter-kit qui permet de mettre en place rapidement une application Laravel, contenant notamment une brique d’authentification complète. Il inclut des fonctionnalités comme la connexion, l’inscription, la réinitialisation de mot de passe, la vérification par email, la confirmation de mot de passe et la page d’édition de profil. Breeze offre plusieurs options pour le front-end, y compris les templates Blade avec Tailwind CSS, Livewire et Inertia (avec Vue ou React). Ce starter-kit est gratuit et constitue une excellente base pour démarrer un projet Laravel.

Laravel Echo – Gestion  du temps réel

Laravel Echo est une bibliothèque JavaScript qui facilite l’écoute des événements diffusés depuis votre application. Echo est nativement compatible avec Reverb, Pusher et Ably. Il permet aux développeurs de créer des applications temps réel avec des efforts limités, en utilisant une API simple et intuitive pour écouter et diffuser des événements WebSocket.

Herd – Environnement de développement

Herd est un environnement de développement complet pour MacOS et Windows, incluant tout le nécessaire pour développer des applications Laravel. La version Basic est gratuite, tandis que les éditions Pro et Teams offrent des fonctionnalités avancées comme la gestion des logs, l’intégration de Xdebug et un mail catcher pour un prix respectif de 99€/an et 299€/an pour 10 licences Pro.

Horizon – Gestion des queues

Horizon est un outil puissant pour gérer et surveiller les queues dans une application Laravel. Il propose un tableau de bord qui affiche des métriques telles que le rendement des jobs, le nombre de jobs échoués et le temps d’exécution. La configuration des workers est centralisée dans un fichier de configuration unique, ce qui simplifie la gestion des différents environnements.

Livewire – Intégration Front-End

Livewire permet de construire des interfaces réactives et dynamiques en restant dans le confort de Laravel, sans avoir besoin d’un framework JavaScript tiers comme Vue.js..  Livewire retourne le contenu HTML au chargement de la page, ce qui le rend compatible SEO. Les composants sont mis à jour via des requêtes AJAX qui retournent du nouveau contenu HTML.
Ce framework open-source est pertinent pour simplifier l’écosystème de développement sur des projets de petite taille.

Octane – Optimisation des performances

Laravel Octane est conçu pour améliorer les performances des applications Laravel en utilisant des serveurs haute performance comme Open Swoole, Swoole, RoadRunner ou FrankenPHP. Octane permet de charger l’application une seule fois et de la garder en mémoire pour les appels suivants, ce qui peut augmenter considérablement le nombre de requêtes par seconde que l’application peut gérer.
Cet outil requiert des compétences techniques significatives, afin de s’assurer de sa bonne mise en place.

Pennant – Dire oui à l’A/B testing

Laravel Pennant est une bibliothèque qui facilite la gestion des fonctionnalités au sein d’une application, permettant des déploiements progressifs et des tests A/B. L’objectif premier est de mettre à disposition des développeurs un ensemble d’outils permettant de simplement activer ou désactiver des fonctionnalités d’une application, et possiblement pour certains utilisateurs uniquement. 

Prompts – Amélioration de l’interface de commande

Prompts améliore les interactions des commandes artisan en offrant des composants interactifs comme la saisie  de texte, la sélection dans des listes et la validation des données. Il est également possible d’afficher des tableaux de données ou des barres de progression pour les traitements longs. Prompts est installé par défaut depuis Laravel 10.x, rendant les scripts artisan plus conviviaux et puissants.

Reverb – WebSocket et broadcasting

Récent dans l’univers Laravel, Reverb permet d’implémenter un serveur WebSocket directement dans une application Laravel. Bien qu’il soit encore en version bêta, il est d’ores-et-déjà compatible avec tous les clients de broadcasting proposés par Laravel. Laravel Reverb permet de profiter du temps réel sans efforts dans un contexte PHP, mais attention aux limitations de volumétries qui peuvent demander des configurations sur-mesure avancées . Et cerise sur le gâteau, il est compatible avec Laravel Pulse ! [lien vers la section Pulse ?]

Socialite – Authentification OAuth (via les réseaux sociaux)

Socialite simplifie l’authentification oAuth en permettant aux utilisateurs de se connecter avec leurs comptes de réseaux sociaux comme Facebook, Twitter, LinkedIn, Google, GitHub, GitLab, Bitbucket et Slack. L’intégration des connexions depuis de systèmes tiers est grandement facilité grâce à Socialite, qui  est facile à configurer, et prend en charge d’autres types de connexions (Apple, Microsoft, Instagram, Snapchat, etc.)  via des paquets supplémentaires.

Spark – Solutions de paiement

Spark facilite l’intégration de solutions de paiement dans les applications Laravel. Il permet de mettre en place des abonnements mensuels ou annuels, de générer des factures.Il supporte les plateformes de paiement Paddle et Stripe. Spark offre une interface front personnalisable et est disponible pour 99$/an pour un projet unique ou 199$/an pour un nombre illimité de projets.

Telescope –  Surveillance et débogage 

Telescope est un outil de surveillance et de débogage qui enregistre et visualise les requêtes, les exceptions, les logs, les requêtes à la base de données, les queues et jobs, les notifications, et plus encore. Principalement utilisé en environnement local, Telescope peut également être déployé en production pour une surveillance approfondie des applications Laravel.

Vapor – Déploiement serverless AWS.

Vapor est une plateforme de déploiement serverless pour Laravel basée sur AWS. Elle offre une option sandbox gratuite pour un projet unique avec 10 déploiements et un nom de domaine fourni par Amazon. Les plans payants commencent à 39$/mois ou 399$/an pour un nombre illimité de projets et de déploiements, facilitant le déploiement et la gestion des applications Laravel à grande échelle.

Pulse – Monitoring en temps réel

Un des derniers nés de l’éco-système Laravel, le tant attendu Pulse permet de monitorer les performances d’une application Laravel. Il met à disposition un dashboard permettant de consulter les données importantes de son application, comme les requêtes lentes, les erreurs remontées, ou encore l’utilisation du CPU ou de la RAM. L’outil parfait pour s’assurer de la bonne conduite de ses développements en production ! 

En conclusion, Laravel offre un ecosystème extrêmement riche et permet de répondre à beaucoup de besoins. Que ce soit pour la gestion des fonctionnalités, l’authentification, le déploiement ou la surveillance, Laravel et son écosystème fournissent des solutions puissantes et intégrées, rendant le développement web redoutablement efficace !

WordPress, faut-il encore l’utiliser pour son site vitrine ? 

Vous devez créer un site vitrine et vous hésitez sur la technologie à choisir ? Alors qu’on entend beaucoup parler des nouvelles solutions No Code comme Webflow par exemple, voici pourquoi WordPress ne devrait pas être écarté trop rapidement… 

Nous sommes dans une entreprise constituée quasiment exclusivement de développeurs et à chaque fois que l’on doit faire un site vitrine, on se pose la question : “Que faut-il utiliser comme solution ?”. Utiliser des solutions toute faite, un peu grand public n’est pourtant pas très populaire parmi les développeurs…

Et puis, depuis le temps que la solution WordPress existe, on se dit qu’il devrait y avoir une meilleure solution ou bien une solution technique plus optimale. Dans le domaine des CMS, il y a par exemple une tendance lourde au Headless.

Pourtant WordPress, c’est comme une paire de Converse, c’est une paire indémodable, facile à porter. Alors, dans le grand dressing des solutions techniques, on s’habille parfois avec des classiques… 

Faut-il encore faire son site vitrine sous WordPress ? 

1. Quelques avantages de la plateforme WordPress : 

Le plus gros avantage de WordPress est sa simplicité d’utilisation. Il offre une interface utilisateur intuitive qui permet aux utilisateurs de gérer leur site web sans avoir besoin de compétences techniques avancées en programmation. Sans connaissance préalable de la solution, n’importe qui peut s’en sortir (à peu près). Et puis, WordPress dispose d’une communauté active d’utilisateurs et de développeurs. Il est facile de trouver des ressources, des forums de support et des tutoriels en ligne pour résoudre des problèmes ou obtenir de l’aide en cas de besoin. 

Un autre avantage est que WordPress est très personnalisable. La plateforme offre une grande flexibilité en matière de conception  : vous pouvez personnaliser votre site web en utilisant de nombreux thèmes (templates) prédéfinis ou bien en utilisant une large gamme de plugins. Que vous ayez besoin d’un système de gestion de contenu, de commerce électronique, de SEO, de médias sociaux, de formulaire de contact, etc. il y a probablement un plugin déjà développé.

Un autre point fort est que WordPress est conçu de manière à être optimisé pour les moteurs de recherche. Cela permet d’avoir un bon référencement sans trop d’efforts. Par ailleurs, les mises à jour sont régulières et cela évite de nombreux problèmes de sécurité. Dernier point, et non des moindre, de nombreuses fonctionnalités de base de WordPress sont gratuites, notamment le logiciel lui-même. Vous pouvez personnaliser votre site en fonction de votre budget et faire appel à des spécialistes si vous souhaitez quelque chose de plus pointu. 

2. Quelques limites aussi ! 

WordPress, bien que très populaire et largement utilisé pour la création de sites web, présente certains inconvénients:

Bien que WordPress offre une grande flexibilité, le développement de besoins spécifiques nécessitent des compétences particulières pour être bien intégrés. En outre, WordPress peut devenir lent si le site est chargé avec trop de plugins ou si le thème est mal codé. De plus, des images non optimisées et un hébergement de qualité médiocre peuvent également affecter la vitesse du site. Dernier point, bien que les plugins ajoutent de nombreuses fonctionnalités, une dépendance excessive à ces derniers peut entraîner des problèmes de compatibilité, des failles de sécurité et des problèmes de performance.

Comme la solution WordPress est très répandue, elle est une des cibles parmi les plus populaires pour les pirates. Les sites WordPress nécessitent donc une maintenance régulière, des mises à jour de sécurité et l’utilisation de plugins de sécurité pour minimiser les risques.

Enfin, bien que WordPress soit plutôt bon en SEO, des optimisations sont souvent nécessaires sur les marchés les plus compétitifs (en termes de référencement) et cela peut impliquer des modifications techniques.

3. La différence entre WordPress et les CMS de type headless

Les CMS « headless » ont des approches fondamentalement différentes de la gestion de contenu. Évidemment, il est possible de faire du headless avec WordPress (en passant par l’API REST WordPress) mais il n’est pas conçu pour cela dès l’origine. WordPress fonctionne comme un système tout-en-un, gérant à la fois la partie frontale (le « head ») et la partie back-end du site web. Il est souvent utilisé pour des blogs, des sites d’entreprises et des boutiques en ligne. 

Là où les CMS Headless séparent le back-end (où le contenu est stocké et géré) du front-end (la présentation du site). Cela permet de pousser le contenu sur diverses plateformes via des API.

Les CMS Headless sont généralement plus rapides et plus efficaces en termes de performances, plus adaptés à servir du contenu à mais au prix des développements plus importants parce qu’il faut développer le front. 

4. La différence entre WordPress et les solutions No Code

En opposition à l’écosystème No Code émergent, WordPress est considéré quant à lui comme une solution « Low Code » car il est très rare de ne pas devoir faire un peu de code quand on souhaite un site WordPress (ne serait-ce que du HTML).

Des solutions comme Webflow ont misé sur l’interface de création de contenus. En effet, l’interface de conception de Webflow ressemble plus à celui d’un outil de designer (type Sketch ou Figma) qu’à un Back-Office traditionnel comme celui de WordPress. Ainsi, Webflow est particulièrement adapté pour créer des landings pages, voire des petits sites, très visuels et esthétiques. Vos équipes Design devraient pouvoir directement travailler sur Webflow sans être dépaysé !

Toutefois, la force de WordPress revient à ses origines. En effet, WordPress a été conçu pour gérer un blog et des contenus ce qui n’est pas nécessairement le cas de Webflow. Comme expliqué précédemment , WordPress est donc bien plus structuré pour mettre en place votre stratégie de contenu et avoir un SEO technique performant.

Bref, Webflow semble pertinent si vous souhaitez un site vitrine esthétique qui n’a pas forcément de visée SEO (car votre clientèle y arrivera par d’autres canaux). Mais si vous souhaitez faire de votre site une véritable usine à contenus afin de générer du trafic naturel alors dans ce cas WordPress semble encore tenir la pôle.

Pour conclure

Evidemment, WordPress n’est pas la seule solution pour la création de sites web et le choix dépendra de tout un tas de facteurs. En attendant, si vous recherchez une solution facile à utiliser, robuste et simple, WordPress est certainement une bonne option. Si vous souhaitez être à la pointe de la mode technologique, choisissez plutôt des solutions Headless… mais c’est aussi un peu plus risqué. Si enfin, vous avez besoin d’une solution attractive en termes visuels, n’oubliez pas Webflow !

Vous hésitez toujours ? N’hésitez pas à prendre contact avec notre experte, Virginie Pignon, et on en discute !

Faut-il encore faire son site vitrine sous WordPress ? - Virginie Pignon

Crédit d’impôt innovation : une fiscalité de l’innovation avantageuse pour les entreprises

Votre entreprise innove ?

Pour soutenir les entreprises qui développent des projets innovants, différentes aides fiscales ont été mises en place, parmi lesquelles le crédit d’impôt innovation, également appelé CII.

TheCodingMachine dispose pour 5 ans (jusqu’en 2026) d’un agrément CIR – Crédit d’impôt recherche et d’un agrément CII (ou C2I) – Crédit d’impôt innovation. Grace à ces agréments, vous pouvez récupérer sous forme de crédits d’impôts une partie (jusqu’à 30%) des honoraires de TheCodingMachine à condition que votre projet soit éligible.

Vous souhaitez en discuter plus en détails et obtenir des conseils ? Contactez-nous.

Sinon, découvrez dans la suite de cet article, les critères de cette fiscalité de l’innovation particulière avantageuse pour les entreprises.


Qu’est-ce que le crédit d’impôt innovation ?

Le crédit d’impôt innovation est :

  • Un crédit d’impôt : il s’agit d’un véritable financement, car à la différence d’une réduction d’impôt, si le montant du crédit d’impôt dépasse celui des impôts que votre entreprise doit payer, vous aurez droit au remboursement de la somme restante. Il peut donc représenter un gain de trésorerie pour les PME qui pourra être réinvesti dans de nouveaux projets innovants.
  • Pour les PME, c’est-à-dire les entreprises dont l’effectif est inférieur à 250 salariés ET dont le chiffre d’affaires est inférieur à 50 millions d’euros ou dont le total du bilan inférieur à 43 millions d’euros.
  • Pour des projets de conception de prototypes ou d’installations pilotes de nouveaux produits au sens de la définition fiscale.
    Pour être éligibles au crédit d’impôt innovation, ces nouveaux produits doivent être innovants.

Quelles innovations sont éligibles au CII ?

1- Une innovation de produit

Un document fait référence au niveau de l’OCDE pour définir l’innovation, c’est le manuel d’Oslo. Celui-ci distingue 4 types d’innovations :

  • les innovations de produit : il peut s’agir d’un bien ou d’un service,
  • les innovations de procédé,
  • les innovations de commercialisation,
  • les innovations d’organisation.

Le crédit d’impôt innovation n’est possible que pour les innovations de produit reposant sur un bien, comme les fonctionnalités innovantes d’une application. Ce bien doit être tourné vers l’extérieur, pour un usage externe (et non pour un usage interne à l’entreprise).

2- Une innovation par rapport à un marché

Pour que ce bien soit jugé innovant, il doit présenter des performances supérieures à celles des produits déjà commercialisés sur le marché. Le gain de performance doit concerner l’une de ces quatre dimensions :

fonctionnement crédit d’impôt innovation

Quel est le montant du crédit d’impôt innovation ?

Le CII permet de bénéficier d’un crédit d’impôt à hauteur de 30 % des dépenses engagées depuis le 1er janvier 2023 (20 % des dépenses effectuées avant le 1er janvier 2023) par votre entreprise, dans la limite d’un plafond de dépenses d’innovation de 400 000 € par an et par entreprise.

Bon à savoir : Votre déclaration de CII n’entraîne pas le remboursement immédiat du crédit d’impôt, sauf demande particulière de votre entreprise.


Le CII se déduit de l’impôt de votre entreprise au titre de l’année au cours de laquelle les dépenses ont été réalisées. Lorsque le CII est supérieur à l’impôt de l’année, le crédit excédentaire peut être utilisé pour le paiement de l’impôt les 3 années suivantes. À l’issue de cette période, la fraction non utilisée est remboursée. Le CII est donc un financement indirect qui donne lieu à un gain de trésorerie pour votre entreprise au bout de la 3e année.


Quelles sont les dépenses éligibles au CII ?

Pour le calcul du montant du crédit d’impôt innovation, la plupart des dépenses correspondent au temps passé par les ressources dédiées sur le projet innovant.

  • À la différence du crédit d’impôt recherche (CIR), différents profils peuvent rentrer dans les dépenses éligibles au CII. Il n’y a notamment pas de contrainte liée au diplôme. Les marketeurs et les designers qui ont participé au projet peuvent par exemple être comptabilisés pour le crédit d’impôt innovation.
  • Le CII permet d’intégrer dans le calcul du crédit d’impôt plus de travaux que le CIR. Il n’y a pas que le développement qui est éligible à cette aide. La phase de conception et la phase de test sont également prises en compte dans le calcul du crédit d’impôt innovation. Toutefois, les dépenses liées à une étude de marché ou à la phase de communication ne sont pas éligibles au CII.

Comment sécuriser un projet innovant avec le rescrit fiscal ?

Le risque avec les crédits d’impôt, c’est le contrôle de l’administration fiscale a posteriori. Si celle-ci considère que votre projet n’est pas innovant, vous pouvez faire l’objet d’un redressement fiscal, avec toutes les conséquences financières que cela peut engendrer pour votre entreprise.

Pour sécuriser votre projet au niveau fiscal, vous pouvez faire un rescrit. Cette démarche consiste à demander à l’avance à l’administration fiscale si votre projet est innovant ou pas, et donc s’il est ou pas éligible au crédit d’impôt innovation.

Les demandes de rescrit doivent être adressées au plus tard six mois avant la date limite de dépôt de la déclaration de CIR-CII (le 15 mai pour les exercices de décembre à décembre) au Service des impôts des entreprises (SIE) auquel est rattachée votre entreprise.

Bon à savoir : À défaut de réponse de l’administration fiscale dans le délai de 3 mois à compter de la réception de votre dossier complet, l’avis est réputé favorable et sera opposable à l’administration fiscale en cas de contrôle ultérieur.


Vous souhaitez en savoir plus sur le CII et le CIR ?

Découvrez notre webinaire dédié aux crédits d’impôt :

Vous avez encore quelques interrogations à ce sujet ? Contactez-nous

Airtable : une base de données no code

Associant les fonctionnalités d’une feuille de calcul à celles d’une base de données, Airtable est un outil no code qui permet de stocker, classer et partager un grand nombre d’informations.

Doté de nombreux templates et applications, Airtable permet des utilisations très variées : création d’un formulaire, suivi de projet, production de films, catalogue de produits, calendrier de contenu, gestion des stocks et CRM sur-mesure. Il couvre ainsi un grand nombre de besoins et s’adresse à des entreprises et des secteurs très différents. Autant de raisons de s’intéresser à cette solution no code.


Présentation de la solution no code Airtable

Les concepts clés d’Airtable

  • Les fields : ils correspondent aux colonnes de la base dans Airtable. Les fiels permettent de créer des liens entre deux tables. Par rapport à une base de données classique, Airtable propose une plus grande variété de fields (checkbox, Formula, Rollup, etc.).
  • Les views : elles permettent d’afficher la donnée de manière différente, soit en créant plusieurs views du même type pour segmenter les données et ainsi simplifier les interfaces, soit en utilisant différents types de views (calendrier, Kanban, GANTT, etc.).
  • Les automations : elles mettent à jour automatiquement les informations et assurent la cohérence de la donnée entre les différentes tables et views par exemple.
  • Les interfaces : c’est de la dataviz. Cela peut même aller plus loin, car les interfaces peuvent se comporter comme un front. L’objectif est de faire de l’affichage dynamique de données en provenance de la base créée.
  • Les extensions : il en existe beaucoup. Parmi celles développées par Airtable et testées par TCM : Page Designer, pour générer des PDF et faire du publipostage basé sur les fields de la base, Dedupe, pour gérer les doublons, Scripting, pour coder des scripts en JS et intégrer des données d’API tierce notamment.
  • Les tools : deux outils sont proposés par Airtable : Manage fields qui est un gestionnaire avancé des droits, et Insights qui est un outil d’analyse des actions des collaborateurs et des données saisies.

Pourquoi utiliser Airtable ?

Airtable présente de nombreux atouts :

  • Il permet à des équipes métiers de prendre la main sur les données et de les impliquer dans des projets techniques. Il contribue ainsi à mobiliser toutes les équipes sur des projets.
  • Il permet de rassembler toutes les données sur un seul et même outil et permet ainsi d’avoir une vision globale des informations.
  • Il offre des possibilités de uses-cases quasi infinies pour toutes les entreprises et toutes les activités.
  • Il propose énormément d’intégrations possibles.
  • Lorsque l’outil est maîtrisé et qu’on a acquis les bonnes pratiques, on peut les appliquer dans un très grand nombre de projets différents.

Quels sont les inconvénients d’Airtable ?

  • Airtable est un outil no code presque trop riche. Il existe tellement de possibilités que si on ne part pas d’un template, il est difficile de savoir quoi faire et par où commencer.
  • Airtable a un fonctionnement qui lui est propre. Les réflexes acquis sur Excel ou Sheets ne marchent pas toujours. Il faut donc s’acculturer à ce nouvel outil.
  • Il existe un risque élevé de perte de contrôle de la donnée du fait des nombreux points d’entrée et des automations multiples. Il est donc nécessaire de prendre le temps de paramétrer et gérer les droits, surtout si beaucoup de collaborateurs sont amenés à aller sur l’outil et mettre à jour de la donnée depuis des endroits différents.
  • L’abonnement est assez cher : 20 $ par mois et par utilisateur avec des droits d’édition.
  • Il faut être vigilant aux enjeux du RGPD et à la protection des données personnelles. Lors du choix de l’abonnement, il faut donc vérifier où sont hébergées les données (Etats-Unis ou Europe).
  • Airtable n’est pas adapté au traitement des données sensibles.

Découvrez en vidéo comment nous avons utilisé Airtable Chez The Coding Machine pour créer un CRM sur mesure et les enseignements que nous avons pu en tirer.

Qu’est ce que le domain driven design ?

Le Domain-Driven Design (DDD), souvent traduit en français par « Conception orientée métier, » est une approche méthodologique qui repose sur la modélisation du domaine métier d’une application de manière à refléter fidèlement la réalité du domaine. Développé par Eric Evans et présenté en détail dans son livre *Domain-Driven Design: Tackling Complexity in the Heart of Software*, le DDD vise à mieux organiser le code des applications complexes en s’appuyant sur une représentation exacte et partagée du domaine métier.

L’objectif du DDD est de permettre aux développeurs et aux experts métiers de collaborer autour d’un modèle commun, facilitant la compréhension et la maintenance de l’application à long terme. En utilisant un langage et une structure partagée, le DDD contribue à améliorer la qualité des solutions logicielles, en capturant les concepts, les règles et les interactions clés de l’environnement métier. Voici un aperçu des concepts essentiels du DDD et de leur rôle dans la création d’applications robustes et maintenables.

Entités

Les entités représentent des objets du domaine ayant une identité unique et des attributs susceptibles d’évoluer au fil du temps. Contrairement aux simples structures de données, les entités portent un identifiant stable, souvent unique, qui permet de les différencier dans le système. Par exemple, dans un système de gestion de clients, chaque client est une entité identifiée par un identifiant unique, tel qu’un numéro de client. Les entités peuvent contenir des informations variées (nom, adresse, date d’inscription, etc.), mais leur identité reste inchangée, même si leurs attributs sont modifiés.

Les entités jouent un rôle crucial dans la structure du domaine, car elles permettent de suivre et de gérer les états au fil du temps. Leur gestion rigoureuse facilite la traçabilité des actions et la cohérence des données dans les systèmes complexes.

Agrégats

Les agrégats constituent un ensemble cohérent d’entités et d’objets de valeur (value objects), traités comme une unité logique et conceptuelle. Ils définissent des frontières qui restreignent les interactions entre les différentes entités d’un système, garantissant ainsi que les règles métier sont respectées lors de toute manipulation. Par exemple, dans une application de commerce en ligne, une commande pourrait être un agrégat composé d’entités telles que le client, la liste de produits commandés et l’adresse de livraison.

Les agrégats simplifient le contrôle des règles métier et réduisent les erreurs potentielles en encapsulant les opérations permises sur les objets qui les composent. Ils jouent également un rôle fondamental dans la gestion de la cohérence transactionnelle dans les systèmes distribués.

Services de domaine

Les services de domaine encapsulent la logique métier complexe qui ne trouve pas naturellement sa place dans une entité ou un agrégat. Contrairement aux entités, les services de domaine ne possèdent pas d’état propre ; ils sont utilisés pour réaliser des opérations de haut niveau, souvent transversales aux différentes entités ou agrégats. Par exemple, un service de domaine pourrait s’occuper de calculer le montant total d’une commande après application de diverses réductions, taxes et frais de livraison.

Les services de domaine facilitent le respect des règles métier sans surcharger les entités d’une logique complexe, rendant ainsi le code plus lisible et plus facile à maintenir.

Value Objects (Objets-valeurs)

Les objets-valeurs sont des objets immuables qui représentent des concepts sans identité propre. Contrairement aux entités, leur rôle se limite à représenter une valeur précise ou un concept. Des exemples typiques d’objets-valeurs incluent les dates, les montants financiers ou encore des coordonnées géographiques. Ces objets n’ont pas d’identifiant spécifique, car leur importance réside dans leur contenu, et non dans leur existence individuelle.

Les objets-valeurs permettent de simplifier le modèle en encapsulant des informations courantes et en réduisant le risque de duplication de données. Leur immutabilité garantit également la stabilité des informations partagées entre plusieurs entités et services.

Bounded Contexts (Contextes limités)

Les contextes limités constituent une notion essentielle dans le DDD. Un contexte limité définit un périmètre conceptuel et technique dans lequel un modèle de domaine spécifique s’applique. Les contextes limités permettent de découper un système en différentes sous-parties, chacune traitant un aspect particulier du domaine métier et ayant sa propre interprétation des concepts. Par exemple, dans un système de gestion d’entreprise, le département de comptabilité peut avoir une vision différente de celle du département commercial en ce qui concerne les « clients » et « produits ».

Les contextes limités aident à structurer les applications de manière modulaire, facilitant ainsi la compréhension et l’évolution du code. En plus de clarifier les responsabilités, ils permettent d’isoler les changements et de réduire les conflits potentiels dans les grandes équipes de développement.

Ubiquitous Language (Langage omniprésent)

Le langage omniprésent est un concept clé du DDD qui encourage l’utilisation d’un vocabulaire commun entre les développeurs et les experts métier. Ce langage partagé contribue à éliminer les malentendus et à aligner les équipes autour d’une terminologie uniforme. En intégrant le langage métier directement dans le code, il devient plus facile pour toutes les parties prenantes de comprendre les différentes fonctions et concepts implémentés.

Le langage omniprésent sert de pont entre les besoins métier et les solutions techniques, garantissant ainsi que le modèle reste cohérent avec la réalité du domaine. 

Factories (Fabriques)

Les fabriques sont des éléments structurants utilisés pour créer des instances complexes d’entités ou d’agrégats. Elles permettent de regrouper la logique de création en un point central, ce qui simplifie le code et garantit que chaque instance d’une entité respecte les règles de création. Les fabriques sont particulièrement utiles lorsqu’une entité comporte de nombreuses dépendances ou lorsqu’elle nécessite des vérifications spécifiques lors de son initialisation.

Les fabriques facilitent l’intégration de la logique de création d’entités dans le modèle de domaine sans surcharger les autres parties du code.

Repositories (Dépôts)

Les dépôts sont des interfaces ou des classes de gestion de données qui permettent de récupérer et de stocker des entités ou des agrégats. Ils agissent comme des intermédiaires entre le modèle de domaine et la couche d’accès aux données (par exemple, une base de données), en simplifiant la gestion des opérations de persistance. Par exemple, un dépôt pourrait fournir des méthodes pour récupérer un client par son identifiant ou pour sauvegarder une commande.

Les dépôts offrent une abstraction qui améliore la flexibilité et la testabilité du code, permettant ainsi aux développeurs de se concentrer sur la logique métier sans se soucier des détails de persistance.

Avantages et limites du DDD

Le DDD se montre particulièrement utile pour les applications complexes où une compréhension approfondie du domaine est cruciale, telles que les systèmes de gestion d’entreprise, les plateformes financières, ou les applications dans le secteur de la santé. En adoptant le DDD, les développeurs sont en mesure de créer des modèles de domaine robustes, des architectures logicielles cohérentes et des applications qui répondent de manière optimale aux besoins spécifiques de l’entreprise. 

Cependant, il est essentiel de noter que le DDD peut s’avérer complexe et exigeant. La mise en place d’un DDD réussi nécessite une collaboration étroite entre les équipes de développement et les experts métiers. De plus, la courbe d’apprentissage peut être élevée, notamment pour les équipes peu habituées aux modèles de domaine. Malgré cela, pour les applications nécessitant une adaptation fine aux processus métiers, le DDD reste une approche de choix.