Notre offre "Développement produit"
Développer vos produits digitaux Web, mobile ou Data selon l’état de l’art du product design, des architectures composables et du déploiement en continu. Quelles composantes techniques et pratiques pour développer et faire vivre vos produits à la vitesse des besoins du marché ?
Gilles Guirand
Directeur Technique
Est-ce le bon moment pour investir dans la conception d’un design system ? Comment minimiser l’effort entre la version Web et mobile ? Comment déployer rapidement sans régressions ? Comment désiloter les développements back-end et front-end par feature team ? Comment brancher le nouveau produit au legacy ?
Un produit digital peut prendre naissance selon divers chemins : qu’il s’agisse d’une nouvelle itération Web ou mobile majeure suite à un POC/POV, d’une conquête rapide de marché en fast delivery, ou encore d’une réalisation planifiée (Digital roadmap) et attribuée à une Digital Factory.
Malgré cette grande diversité de contextes produit, un motif d’architecture composable et universel s’est dessiné au fil des années. Il convient de le calibrer sans dogmatisme selon l’histoire individuelle d’un produit.
Frontend Web et/ou mobile
Une fois la stratégie front-end bien définie, entre deux front Web et mobile natif, ou alors un seul front-end PWA, il convient de définir la stratégie de développement front :
- Utilisation d’un design system mature pour les interfaces d’administration, de type Material, déjà implémenté dans des framework de composants ultra productifs comme Vuetify (pour la construction d’interface de gestion notamment)
- Construction d’un design system front-end, parfois perçu comme un effort initial important, mais payant sur le long terme : maintenabilité, cohérence visuelle et fonctionnelle, productivité, outillage des équipes de développement, etc.
- Utilisation ou non d’un framework CSS productiviste, type Tailwinds CSS ?
- Développement des composants Vue ou React et exposition des rendus et documentations dans un storybook
- Développement des meilleures stratégies de rendu HTML entre le Client Side Rendering (CSR), Server Side Rendering (SSR), Server Side Generating (SSG) et les hybridations possibles.
Back for front et services applicatifs tiers
La partie visible d’une application Web et mobile masque la grande diversité des backend, API, web services présent dans le legacy, aux performances et modernités souvent très variables. Nous déployons sur les applications backend systématiquement un Back for Front, dont le rôle est de :
- Exposer une unique API backend pour les appels front-end, dédié et adapté à l’expérience utilisateur front-end, de préférence en graphQL (Apollo) pour limiter les aller/retour entre le front et back
- Ne jamais exposer en direct les API métiers pour des raisons de sécurité, de performances et de découplage (pouvoir brancher, débrancher de nouvelles API selon la roadmap du système d’information
- Charger les données des systèmes backend métiers (API REST, SOAP, fichiers..) et des solutions d’éditeurs (headless CMS type Strapi ou Contentful) pour les lier entre elles, les adapter, les transformer vers l’API servie au front-end
- Stocker les données nécessaires de façon persistante (données inexistante sur les backend métiers) ou temporaire (cache volatile, index de recherche), au cas par cas selon le besoin fonctionnel
- Unifier les authentifications entre les divers backend
- Utiliser des systèmes de cache en entrée (réponses API) et en sortie (cache HTTP) pour protéger les API métiers et le Back for Front lui-même de trop d’appels.
CMS, eCommerce, Search & IAM
Les architectures composables, en opposition aux architectures monolithiques “tout en un”, permettent et demandent de sélectionner les meilleurs outils SaaS ou Open Source pour chacune des grandes fonctions de l’écosystème : le CMS, l’identity manager, le Digital Asset Manager, le e-Commerce, le CRM et autres outils de marketing, etc.
Nous vous conseillons sur les choix de solutions les plus adaptés selon vos métiers et vos enjeux de scalabilités, sécurité, gouvernance et cohérence avec le legacy, concernant :
- Les CMS headless : Strapi, Contentful ou les API de CMS existants (Drupal, Ibexa, etc.)
- Les moteurs de recherche : Elasticsearch, Algolia ou autres services managés sur le Cloud
- Du eCommerce en solution SaaS headless ou en sur mesure lorsque trop spécifique
- Les framework backend et leur mode d’exécution : Node.js, graphQL, Nest.js en serverless ou conteneur
- Les bases de données : PostgreSQL, MariaDB, MongoDB, etc.
- Les identity managers et SSO : Keycloak, Okta, IAM managé, etc.
DevOps et QA automation
Les entreprises et organisations sont maintenant très souvent adossées à un ou plusieurs fournisseurs Cloud, des outils SaaS, leur propre Git et pipelines, leur propre jeu de templates Terraform. Il convient de nous adapter et de nous intégrer à ces pratiques et concevant avec vos digital factory, vos services IT/DSI la meilleure fusion possible entre vos pratiques, votre écosystème et notre retour d’expérience dans le DevOps et l’automation :
- Gitflow et pipeline (CI/CD) selon nos pratiques ou en collaboration
- Exploitation des catalogues de services managés au plus proche des philosophies propre à AWS, GCP, Azure, Scaleway et Kubernetes
- Optimisation des performances et de la chaîne de cache, du CDN jusqu’au cache applicatifs interne
- Partage des pratiques de sécurités autour des accès VPN, clés privées (KMS), du chiffrement, anti-DDOS et WAF
- Contribution avec l’IT sur les scripts Terraform.
Chaque cas d’usage est unique, et la stratégie doit s’adapter à la réalité du besoin et aux compétences des équipes. C’est pourquoi il peut d’ailleurs être utile de faire appel à l’expertise as a service afin d’aider à la décision sur ces choix d’organisation et d’architecture.
Afin d’accélérer son time-to-market, une organisation en Digital Factory peut être mise en place. Cette dernière, ainsi qu’une culture produit proposant une expérience centrée sur les besoins des utilisateurs, sont clés dans la réussite d’un projet de conception digitale, au même titre que l’expertise technologique.