DÉFI SUR UN LANCEMENT EXPRESS ET LE DÉPLOIEMENT D’UN NOUVEL OMS
Créée en 2005 à Marseille par Michaël Azoulay, American Vintage est une marque incontournable alliant des pièces casual, des tons pastels nuancés et des matières délicates. En 17 ans, la marque s’est imposée dans le paysage mode français en revisitant les basiques du quotidien.
Depuis 1 an et demi, Madagence accompagne American Vintage dans 28 pays, sur la solution Salesforce Commerce Cloud et sur l’implémentation d’un nouvel OMS.
Plus qu’un simple client, American Vintage représente la relation parfaite de ce que Madagence souhaite entreprendre avec ses clients. Hormis le fait de partager des valeurs similaires comme l’amour du travail bien fait, la bienveillance et la sincérité, Madagence et American Vintage ont bâti ensemble une relation de confiance et de proximité depuis le lancement du projet.
Aujourd’hui, AMV considère Madagence comme un véritable partenaire, une extension de leur équipe interne.
STÉPHANIE DELPUECH
Directrice e-commerce & CRM chez American Vintage depuis 6 ans, Stéphanie nous a fait part de son retour d’expérience sur la collaboration avec Madagence pour l’intégration de la solution Salesforce Commerce Cloud.
QUELLES ONT ÉTÉ LES RAISONS QUI VOUS ONT POUSSÉ À FAIRE APPEL À UN INTÉGRATEUR DE SOLUTION E-COMMERCE ? ET POURQUOI AVOIR CHOISI LA SOLUTION SALESFORCE B2C COMMERCE VS UNE AUTRE SOLUTION E-COMMERCE ?
« La croissance d’American Vintage s’est vu s’accélérer, notamment avec la crise sanitaire. Nos besoins ont donc rapidement évolué. Notre site e-commerce antérieure ne répondait plus à la forte demande et à nos ambitions de croissance internationale. »
« Nous recherchions une solution puissante et innovante, capable de répondre efficacement à nos besoins en termes de merchandising, de design, de volume de commande… Salesforce Commerce Cloud a été LA solution cochant toutes les cases. »
POURQUOI AVEZ-VOUS CHOISI MADAGENCE POUR L’IMPLÉMENTATION DE VOTRE SOLUTION E-COMMERCE ?
« L’équipe Madagence a d’abord su apporter des réponses adaptées à l’ensemble de notre cahier des charges qui était assez exhaustif. Leur expertise technique ainsi que le feeling avec l’équipe projet nous a directement convaincu. Nous avons pu développer une véritable relation de confiance, de simplicité et de proximité à leur côté. »
« Il était aussi important pour nous d’avancer avec une agence qui partage le même état d’esprit qu’AMV : bienveillance, sincérité et authenticité. »
QUELS SONT LES FREINS QUE VOUS AVEZ RENCONTRÉ ? COMMENT LES AVEZ-VOUS DÉPASSÉS ?
« Nous avons rencontré trois problématiques sur le projet : un lancement très rapide, le déploiement d’un nouvel OMS avec les équipes Salesforce et Madagence ainsi qu’un merchandising assez exigeant. »
« En effet, le projet était une véritable course contre la montre. Notre roadmap était très intense puisque nous devions lancer le site en l’espace de 6 mois. L’appel d’offres a donc été très rapide et le choix de notre PSP (solution de paiement en ligne) aussi. »
« Nous avons dû faire face à un autre défi majeur : le déploiement d’un nouvel OMS (Order Management System) réalisé conjointement par Madagence et les équipes Salesforce. Madagence a été le premier en France à l’implémenter, et cela, dans un délai restreint. Les équipes ont fourni un travail de qualité et le projet a été réalisé avec succès. »
« Enfin, chez AMV, le merchandising est très poussé et visuel. Nous avons dû prendre la décision de faire développer par Madagence, un module de gestion poussé du merchandising complémentaire à l’offre Salesforce. Malgré une roadmap très fournie, le site a été lancé dans les temps. »
LA DÉMARCHE DE GESTION DE PROJET AGILE A ÉTÉ MENÉE DURANT LE PROJET ; QU’EN AVEZ-VOUS PENSÉ ?
Le mode de gestion de projet AGILE permet aux équipes de suivre régulièrement l’avancement du projet, en le décomposant en plusieurs étapes. Plus souple et plus flexible qu’une méthodologie traditionnelle, la gestion de projet agile place les besoins du client au centre des priorités du projet.
« Nous apprécions ce mode de fonctionnement, notamment pour la construction du site et également aujourd’hui sur les TMA. Les périodes de sprint de deux semaines ainsi que les daily (point quotidien), nous permettent d’échanger activement avec l’ensemble des équipes AMV et Madagence. Cela donne une véritable rythmique au projet et assure un suivi régulier. »
« Cette organisation sous forme de sprint est très importante pour nous, car elle nous a permis de voir la construction du site au fil des semaines et ainsi de mieux percevoir l’avancée du projet. Cela permet de revenir progressivement sur des éléments qui peuvent évoluer, mais aussi de pouvoir étaler la recette. Nous recommandons à 200%, cette méthode test and learn. »
« Néanmoins, il faut savoir que cette méthode est tout de même très intense. Elle impose un focus constant et quotidien sur le projet, ce qui peut parfois, être difficile à combiner avec le reste des impératifs parallèles. »
QUELS ONT ÉTÉ LES BÉNÉFICES QUE VOUS AVEZ SU TIRER DE LA PLATEFORME ?
« Aujourd’hui, le site fonctionne très bien par rapport à quelques mois où il ne tenait pas la charge. Nous avons désormais un rendu plus design et plus visuel. Les process ont été simplifiés et automatisés. »
« Notre bénéfice réel reste plutôt opérationnel. Il fallait un temps de stabilisation, de conduite du changement, d’accompagnement des équipes et également de montée en compétence. »
COMMENT DÉCRIVEZ-VOUS LA RELATION QUE VOUS AVEZ AUJOURD’HUI AVEC MADAGENCE & SES ÉQUIPES ?
« La relation que nous avons avec Madagence est optimale. Nous travaillons ensemble depuis plus d’un an et demi. Aujourd’hui, les équipes sont restées les mêmes pour les TMA. »
« Nous avons grand plaisir à échanger avec Madagence tous les jours.Nous considérons les équipes Madagence comme une extension de celle d’AMV. Que cela soit professionnellement ou humainement, nos relations se passent parfaitement bien. »
« En effet, Madagence et AMV possèdent une vraie relation de proximité, de simplicité et d’intégrité. Nous avons confiance l’un envers l’autre et nous partageons la même vision des choses. »
RECOMMANDERIEZ-VOUS MADAGENCE AUTOUR DE VOUS ?
« American Vintage recommande Madagence pour, son professionnalisme, son expertise, la qualité des prestations, et surtout pour son côté humain qui offre une véritable relation de confiance entre les équipes. »
Atlassian… Salesforce… Microsoft… Trois éditeurs, trois géants et des offres produits fondamentalement différentes. Différentes oui, mais chez Madagence nous avons souhaité pousser la démarche de rapprochement technologique entre ces trois monstres au bout du bout.
Déployer un projet e-Commerce sous Salesforce Commerce Cloud B2C nécessite de l’organisation, de la rigueur mais aussi (surtout) de la scalabilité, de la visibilité et de l’agilité.
Préambule
Dans cet article, nous allons vous présenter une manière de faire pour intégrer la suite Atlassian (Jira & BitBucket principalement) et Office 365 (Teams principalement) sur un projet Salesforce Commerce Cloud B2C. Nous allons ici parler d’intégration continue, d’automatisation projet et de versioning.
Nos objectifs de conception de l’intégration entre Atlassian, Microsoft & Salesforce chez Madagence ont été les suivants :
Faciliter le quotidien de nos collaborateurs (Développeurs, Leaders Technique et Chefs de Projet)
Augmenter la lisibilité technique des projets (Versionning, Déploiement, etc.) pour l’ensemble des acteurs non-techniques des projets
Arrêter de perdre du temps sur les actions à faible valeur ajoutée
Dans cet article nous parlerons de « manière de faire ». Effectivement toute méthode est potentiellement non applicable à un contexte donné ; elle est aussi très certainement critiquable. Pour finir, cette manière de faire est surement perfectible. C’est pour cela que nous rédigeons cet article ; pour avancer avec la communauté ;).
Madagence
Madagence est une agence de développement experte e-commerce. Nous sommes aujourd’hui partenaire & intégrateur de la solution Salesforce Commerce Cloud B2C. Notre expertise technologique est aujourd’hui assurée par une équipe de Makers (Collaborateurs) spécialisés & certifiés sur cette plateforme (Architectes, Leaders technique, etc.) .
Nous croyons au marché et aux innovations que Salesforce Commerce Cloud B2C propose au travers de ce Cloud dédié à la chaîne de valeur e-Commerce de nos clients.
L’ensemble des projets déployés chez Madagence sont construits avec le Framework Agile Scrum. Nous ne déployons pas le Framework Scrum de manière hybride ou partiel ; nous l’intégrons dans son état d’art le plus complet. Plus qu’une simple méthode de gestion de projet, l’agilité est un véritable mindset de l’entreprise et de nos collaborateurs.
Revue des objectifs
Objectif 1 : Faciliterle quotidien de nos collaborateurs (Développeurs, Leaders technique et Chefs de Projet)
Objectif 2 : Augmenterla lisibilité technique des projets (Versionning, Déploiement, etc.) pour l’ensemble des acteurs non-techniques des projets
Objectif 3 : Arrêterde perdre du temps sur les actions à faible valeur ajoutée
Objectif 1 : Faciliter le quotidien
Qu’est-ce qu’un Développeur n’aime pas faire ? Qu’est-ce qu’un Leader Technique n’aime pas faire ? Qu’est-ce Chef de Projet n’aime pas faire ? Trois questions bêtes, trois questions qui lorsqu’on y apporte des réponses, puis des solutions, permettent de gagner du temps.
Qu’est-ce que le Développeur n’aime pas faire :
Mettre à jour ses tickets.
Saisir ses temps
Qu’est-ce que le Leader Technique n’aime pas faire :
[..] IDEM Développeur [..]
Passer plus de temps à déployer qu’à coder
Passer des heures à mettre à jour les jeux de données entre les environnements (IMPEX)
Qu’est-ce que le Chef de Projet n’aime pas faire :
Premier point, le plus important, il n’aime pas faire ce que les autres auraient dû faire 😉
Devenir archéologue pour savoir quel ticket est déployé (ou pas)
Suivre son reste à faire de manière manuelle
Ne pas savoir quand il peut démarrer sa recette
Objectif 2 : Augmenter la lisibilité
Faire vivre un projet e-Commerce et l’ensemble de ses composantes n’est pas chose aisée. Effectivement les couches nécessaires à la mise en oeuvre d’un projet de ce type sont nombreuses.
La roadmap du client, le backlog fonctionnel, le découpage technique, le suivi des temps, le management des priorités, la gestion des sources, l’administration des environnements; toutes ses couches invitent à la multiplicité des outils.
Il n’est pas rare aujourd’hui de trouver la roadmap d’un client sur un fichier Excel, le backlog fonctionnel dans un Word, le découpage technique dans un outil de gestion de projet (Redmine, Mentis, Jira, etc.) et pour finir un système de versioning couplé à un moteur d’intégration continue qui vivent en autarcie.
La multiplicité des outils et le manque d’intégration de ces derniers apportent un manque de lisibilité sur les projets. La manière de faire présentée dans cet article devra répondre à ce problème.
Objectif 3 : Arrêter de perdre du temps
Même si la restructuration de certains grands groupes apportent un vent nouveau sur les organisation des entreprises. Même si l’agilité commence à se déployer dans les esprits. La France reste un pays où l’on aime les choses complexes ; où l’on aime les organisations complexes ; où l’on construit les processus bien faits et répondant à l’ensemble des cas.
Chez Madagence nous croyons en la proximité, la flexibilité & la simplicité. Ce sont les axes à suivre partout; aussi bien sur l’organisation des entreprises, que le management des projets et que la structuration des outils.
Revenons en à nos projets Salesforce Commerce Cloud B2C ; voilà les éléments sur lesquels nous considérons perdre du temps, sans réel valeur ajoutée. Ceci n’est bien-sur par propre à Salesforce B2C Commerce.
Saisir, voir ressaisir, manuellement nos temps
Savoir quand les déploiements ont lieu
Savoir où les tickets sont déployés
Mettre à jour les statuts des tickets
Construire manuellement des reportings
Burn-Down, Sprint Load, etc.
Avancement des releases
Calcul de la vélocité
Déployer manuellement les tickets
Déployer manuellement les releases
Déployer manuellement les données (IMPEX)
Estimer les tâches de manière rapide & efficace
Identification instantanée de DownTime
Identification instantanée de demandes en priorité 1
La manière de faire devra permettre à limiter la déperdition de temps sur les éléments ci-dessus.
Architecture globale
Afin de comprendre de manière globale l’architecture des échanges entre les différents éditeurs. Voici le schéma des interactions entre ces derniers.
Attention cela semble être un projet de 70 jours. Ne vous inquiétez pas ! Nous l’avons mis en oeuvre en 20 jours ouvrés grâce aux intégrations déjà existantes entre les différents outils.
La clé de la réussite ; avoir les bons outils : Teams, Jira, BitBucket, SFCC-CI. Avec l’utilisation de ces 4 outils ; peu de problèmes risquent de venir se mettre au milieu de votre chemin.
Le déploiement d’une architecture de ce type est simple à mettre en oeuvre lorsque l’on a pas ou peu d’historique. Migrer plusieurs dizaines de projets sous cette architecture se verra être une autre paire de manches.
Keys features
Nous n’allons pas évoquer dans cet article la manière de mettre en oeuvre une architecture de ce type (c’est notre petit secret ;)). Nous allons parler du plus important et donc des fonctionnalités qu’offre cette manière de faire.
Smart Commit
Lors de la création d’une branche associée à un ticket ou lors du premier commit. Plusieurs actions se lance dans Jira.
Le passage du ticket de « To Do » à « In Progress »
L’affichage des informations de « Commit » s’affiche sur le ticket
Sur l’ensemble des commits, nous obligeons une normalisation des commentaires sous le format suivant : ISSUE_KEY#time [Some amount in Jira time syntax] <Your worklog comment text>.
Cela permet d’ajouter une fonctionnalité de Time Tracking directement dans les tickets JIRA.
La fonctionnalité de Suivi Temporel dans JIRA permet de piloter la notion de « Reste à faire ». Ainsi d’un simple coup d’œil il est facile d’observer les tâches prenant plus/moins de temps que prévu. Cette fonctionnalité permet aussi de gérer facilement l’atterrissage planning du fait que le « Reste à faire » est dissocié de l’estimation initiale.
Cela nous permet d’extraire automatiquement une gestion des atterrissages de nos releases. Exemple sur une release de test qui sera très certainement impossible à produire 😉
Pull Request in JIRA
Durant l’ensemble de son développement, le développeur n’a pas à aller dans JIRA pour mettre à jour l’avancement de son ticket. L’intégration BitBucket / Jira s’occupe d’indexer l’évolution du ticket sur base de l’avancement technique.
Lors de la création de la Pull Request :
Changement de statut du ticket : « In Progress » vers « Developed »
Assignation de la tâche automatique à la personne en charge de la PR
Lors du refus de la Pull Request :
Changement de statut du ticket : « Developed » vers « To Do »
Assignation à la personne ayant créé la Pull Request
Notification Teams à la personne ayant créé la Pull Request
Lors de l’acceptation de la Pull Request :
Changement de statut du ticket : « Developed » vers « Reviewed »
Déploiement automatique vers l’environnement de « Demo »
Une notification Teams est envoyé au Chef de Projet Madagence pour qu’il puisse démarrer la recette
L’ensemble des informations sur les Pull Request associées à un ticket sont visibles directement dans JIRA.
Release Done in JIRA
Dans JIRA la gestion des sprints au travers des versions offre une vue très claire de l’avancement projet & technique des tickets présents dans le release.
Lors que l’ensemble des tickets d’une version sont dans le statut « Tested », autrement dit que l’ensemble des tickets ont été recettés par nos Chefs de Projet Madagence ; un déploiement packagée de l’ensemble de la Release (Code Source + différentiel DATA) est effectif sur l’environnement « Development ».
Nous avons pour cela mis en oeuvre un Bitbucket Pipeline utilisant SFCC-CI. Nous passons dans un premier temps par le staging sans activer les versions, ni importer la donnée. Puis nous déploiement sur « Development » en activant la version de code & en important les données déposées.
SFCC-CI et les Builds
Nous avons tordu deux solutions de Build mises à disposition pour la plateforme Salesforce Commerce Cloud B2C. La fameuse et ancienne « Build Suite » et la petite nouvelle « SFCC-CI ».
Sans l’ombre d’une hésitation ; nous recommandons « SFCC-CI ». La prise en main est plus simple, la compréhension de la suite plus aisée, des gains de performance sur les builds constatés allant jusqu’à 70% de rapidité supplémentaire et pour finir une mise en oeuvre 3 à 4 fois plus rapide.
Via la solution BitBucket Pipelines nous avons donc implémenté la suite « SFCC-CI ». La lecture de l’interface de BitBucket Pipelines est claire, simple, efficace. Les fonctions essentielles sont présentes, pas de bling-bling ça répond à 100% des besoins.
La gestion des successions de build entre les différents environnements est normée et les déploiements entre demo, development, staging/prod sont interdépendants.
Chez Madagence nous avons arrêté le « Continious Delivery » à l’environnement de « Development » du fait que nos clients ne sont pas prêt à travailler de cette manière sur les environnement de Production (Staging & Production). Mais en quelques clics la solution serait en place.
Une fois de plus on retrouve dans JIRA, les informations sur les Builds.
Une fois de plus dans Jira on automatise :
Lors du déploiement de la release en « Development » > Changement du statut de la version JIRA. Le client peut maintenant démarrer sa recette.
Environments management
Obtenir une représentation graphique de ce que contient ou non un environnement à un moment donné est un gain de lisibilité significatif.
Une fois de plus JIRA nous offre cette possibilité. Directement sur le ticket il est possible de savoir où se trouve (techniquement) une demande.
Il est aussi possible de récupérer l’historique des déploiements.
Il est même possible de visualiser le cycle de vie inter-environnements d’un ticket au travers de la vue ci-dessous présente dans BitBucket.
Pour avoir une vue à l’environnement & non plus au ticket. Une autre interface est existante au sein de BitBucket.
DATA Deployment
La gestion des données entre les environnements est toujours un casse-tête. Nous avons tous vécu des événements comme ceux-ci :
Mise à jour d’une base de données sur un environnement de dev, non répliqué en demo.
Mise à jour d’un contenu de test en demo, non présent en développement.
Nous avons mis en place via SFCC-CI, un upload des modifications apportées sur les données vers les environnements cibles. Cet upload se base sur des données provenant de l’environnement sources & attachés au commit associé. Le différentiel des modifications effectuées par le développeur sur les données est construit automatiquement ! Il est juste nécessaire de lancer une ligne de commande en début & fin de développement et le différentiel de données s’accroche automatiquement au code source.
Le gain de temps & la gestion des effets de bords est significative sur ce point. Même si difficilement quantifiable nous estimons entre 5% et 10% le gain de temps sur une équipe projet en phase de BUILD.
Prority « Highest »
Nous possédons 5 niveaux de priorité chez Madagence ; sur lesquelles tournent nos SLAs. Via le Project Automation de Jira ; nous avons créé des cheminements simples qui permettent de remonter efficacement des alertes sur les demandes prioritaires.
Par exemple, nous notifions dans Teams les demandes de priorité 1 ou « Highest ».
Automation ROI
Nous planifions les sprints avec nos clients sur base d’un seul & unique indicateur. Le R.O.I. Cet indicateur permet en quelques secondes de savoir les tâches qui possèdent le rapport effort/effet le plus élevé.
Cet indicateur est calculé automatiquement selon une recette savante & sécrète de Madagence. Cette recette nous l’avons implémenté dans Jira via un Script Listener (Script Runner). Ce script s’exécute à chaque mise à jour des tâches pour recalculer le ROI en live.
Push up / down on Issue
Nous avons conçu dans JIRA plusieurs script permettant de gérer la dépendance entre les tâches parentes & les tâches enfants.
Ainsi lorsque nous estimons la complexité des tâches durant le planning poker, les estimations remontent automatiquement dans les Stories puis dans les Epics.
De la même manière un script de gestion des statuts entre les tâches est présent. Lorsqu’une mise à jour d’un ticket à lieu :
Si le ticket est une Story ; alors l’ensemble des sous tickets s’indexent automatiquement sur le statut de la Story
Si le ticket est une Tâches ; alors la Story contenant la Tâches s’indexe sur le plus petit statut de ses sous tâches
Des choses bêtes qui chaque jour permettent de gagner quelques minutes ; chaque semaine quelques heures et à la fin d’une année plusieurs dizaine de jours.
Conclusion
Nous n’allons pas faire une conclusion à rallonge. Nous avons listé ci-dessous les objectifs que nous nous étions fixés et quelles sont les fonctionnalités qui adressent cet objectif.
Une chose est sûre. Chez Madagence nous voyons l’intégration continue & le Project Automation comme un juste équilibre qui a pour unique et seul objectif : une augmentation de la productivité & de la qualité de nos prestations.
Les possibilités sont infinies lors que les bons outils sont en places ; il faut donc toujours garder en tête que l’intégration continue & le Project Automation sont au service du projet et non l’inverse. Pour être au service du projet, ces outils doivent être simples à la compréhension, à la maintenance.
Notre conclusion : La simplicité est la clé de l’adhésion, l’adhésion la clé du succès.
Madagence accompagne Ba&sh Paris depuis aujourd’hui plus de 7 années. Plus qu’un simple client, Ba&sh représente la relation parfaite de ce que Madagence souhaite entreprendre avec ses clients : une aventure pleine d’agilité, de rebondissements & de conquêtes !
Fondée en 2003 par Barbara Boccara et Sharon Krief Ba&sh est une marque de vêtements prêt-à-porter ; une marque singulière, une marque à contre courant dans le marché difficile du prêt-à-porter. Une marque touchante par son style et son positionnement.
Madagence accompagne Ba&sh Paris depuis ses débuts dans le Digital. Après un déploiement d’un premier site e-Commerce sous Prestashop en 2013, le déploiement d’un système de Gestion d’entrepôts (Solution Madagence) en 2015 ; cette année Ba&sh nous confie sa nouvelle plateforme e-Commerce sous Salesforce B2C Commerce.
Fort de notre volonté de conquérir une partie du marché de la solution Commerce Cloud B2C ; marché ayant connu un essor fulgurant à partir de 2016 ; nous avons étoffé nos effectifs Parisiens & Lyonnais de nouveaux collaborateurs certifiés Salesforce B2C Commerce (Architecte, Leader Technique, Chef de Projet).