





{"id":82736,"date":"2019-01-28T05:00:00","date_gmt":"2019-01-28T10:00:00","guid":{"rendered":"https:\/\/www.applause.com\/blog\/publication-app-train-livraison-mobile\/"},"modified":"2025-07-21T11:22:35","modified_gmt":"2025-07-21T15:22:35","slug":"publication-app-train-livraison-mobile","status":"publish","type":"post","link":"https:\/\/www.applause.com\/fr\/blog\/publication-app-train-livraison-mobile\/","title":{"rendered":"Planifier la publication de votre app avec le train de livraison mobile"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section preset--module--divi-section--31615dad-3f88-477f-a866-c2b40c889be5\"><div class=\"et_pb_row_0 et_pb_row et_flex_row\"><div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone et_flex_column_24_24_phoneWide et_flex_column_24_24_tabletWide et_flex_column_24_24_widescreen et_flex_column_24_24_ultraWide\"><div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module preset--group--divi-text--divi-font-body--default preset--group--divi-text--divi-font-body--h19rs5u--default preset--group--divi-text--divi-font-body--h1yjkjr--default preset--module--divi-text--4564d33f-bb24-4931-8445-a739e42249ca\"><div class=\"et_pb_text_inner\"><h1>Planifier la publication de votre app avec le train de livraison mobile<\/h1>\n<p>Dans le monde du d\u00e9veloppement agile, peu de choses peuvent s\u2019av\u00e9rer plus frustrantes qu\u2019un processus de livraison \u00e0 l\u2019arr\u00eat. Une telle situation peut se produire lorsque les Product Managers sont dans l\u2019incapacit\u00e9 de travailler sur la prochaine version d\u2019une app car celle-ci est d\u00e9velopp\u00e9e par diff\u00e9rentes \u00e9quipes, travaillant sur diff\u00e9rents aspects de la storyline.<\/p>\n<p>Lors de l\u2019\u00e9laboration du planning de livraison, on r\u00e9alise rapidement que les applications d\u00e9velopp\u00e9es par plusieurs \u00e9quipes en parall\u00e8le ont besoin de coordination pour \u00eatre livr\u00e9es dans les temps. C\u2019est l\u00e0 que la notion de \u00ab train de livraison mobile \u00bb entre en jeu.\u00a0<strong>En adoptant cette d\u00e9marche, vos diff\u00e9rentes \u00e9quipes de d\u00e9veloppeurs pourront publier des apps dans les diff\u00e9rents app stores de mani\u00e8re simultan\u00e9e.<\/strong><\/p>\n<p>Le concept n\u2019a rien de nouveau et rentre dans le cadre du\u00a0<em>Scaled Agile Framework\u00a0<\/em>(qui vise \u00e0 appliquer les principes de l\u2019agile \u00e0 grande \u00e9chelle). Le train de livraison mobile d\u00e9crit une m\u00e9thode sp\u00e9cifique pour livrer un logiciel, et peut \u00eatre utilis\u00e9 par tout type de service, petit ou grand, qui travaille sur une seule app avec diff\u00e9rentes \u00e9quipes.<\/p>\n<h3><strong>Comment prendre le train de livraison mobile<\/strong><\/h3>\n<p>D\u00e9couvrons un train de livraison mobile. L\u2019image ci-dessous repr\u00e9sente un exemple simple, avec une phase de d\u00e9veloppement de 2 \u00e0 4 semaines (qui correspond \u00e0 la plupart des cas).<\/p>\n<p>\u00c0 un jour et une heure d\u00e9finis (un lundi \u00e0 15h par exemple), le code est gel\u00e9. Jusqu\u2019\u00e0 cet instant pr\u00e9cis, les \u00e9quipes ont la possibilit\u00e9 de contr\u00f4ler, tester et incorporer les nouvelles fonctionnalit\u00e9s \u00e0 la branche principale qui doit faire partie du train. \u00c0 15h, une personne cr\u00e9era une branche de livraison \u00e0 partir de la branche principale, de mani\u00e8re automatique ou manuelle.<\/p>\n<p>Cette branche de livraison fera l\u2019objet d\u2019une phase finale de tests d\u2019int\u00e9gration. Lors de cette phase, tous les membres de l\u2019\u00e9quipe devront v\u00e9rifier que les nouvelles fonctionnalit\u00e9s marchent bien comme pr\u00e9vu. Si un probl\u00e8me est d\u00e9tect\u00e9 sur la branche de livraison, le bug sera corrig\u00e9 sur celle-ci et incorpor\u00e9 par la suite \u00e0 la branche principale.<\/p>\n<div class=\"blog-image-single\">\u00a0<\/div>\n<div><img decoding=\"async\" class=\"alignnone size-medium wp-image-98827\" src=\"https:\/\/www.applause.com\/wp-content\/uploads\/Mobile_Release_train_1-1024x519_W585_Mfit_ratioauto-1-300x150.jpg\" alt=\"\" width=\"300\" height=\"150\" \/><\/div>\n<p>D\u00e8s le moment o\u00f9 le code est gel\u00e9, un nouveau cycle de d\u00e9veloppement d\u00e9marre, et toutes les \u00e9quipes qui contribuent au projet peuvent d\u00e9marrer un nouveau sprint de d\u00e9veloppement. Le principal avantage du train de livraison mobile est que\u00a0<strong>chacun sait quand aura lieu la prochaine livraison<\/strong>\u00a0et peut organiser son travail en cons\u00e9quence.<\/p>\n<h3><strong>Qui est aux commandes du train ?<\/strong><\/h3>\n<p>Chaque livraison doit \u00eatre pilot\u00e9e par une \u00e9quipe ou une personne. Il peut s\u2019agit toujours de la m\u00eame personne\/\u00e9quipe, ou bien l\u2019effort peut \u00eatre r\u00e9parti entre tous les d\u00e9veloppeurs. Dans tous les cas, une personne doit avoir la fonction de RTE (Release Train Engineer). Cette personne est charg\u00e9e d\u2019obtenir toutes les informations n\u00e9cessaires pour la livraison (par exemple les notes de version, les nouvelles images pour le store, etc.). Cette personne doit \u00e9galement organiser un point hebdomadaire pour informer le reste de l\u2019\u00e9quipe des versions en cours et des probl\u00e8mes existants sur la version actuellement en production.<\/p>\n<h3><strong>Int\u00e9grez toujours les tests \u00e0 votre planning<\/strong><\/h3>\n<p>Si une \u00e9quipe opte pour des tests en interne avec des coll\u00e8gues, des tests en b\u00eata avec de vrais clients et un d\u00e9ploiement par \u00e9tapes, le train de livraison mobile peut ressembler \u00e0 \u00e7a :<\/p>\n<div class=\"blog-image-single\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-98832\" src=\"https:\/\/www.applause.com\/wp-content\/uploads\/Mobile_Release_train_2-1024x480_W585_Mfit_ratioauto-1-300x150.jpg\" alt=\"\" width=\"300\" height=\"150\" \/><\/div>\n<p>Cet exemple pourrait d\u00e9crire un train de livraison Android. Les phases de d\u00e9veloppement et d\u2019int\u00e9gration sont les m\u00eames que dans la version simple du train. Une fois que l\u2019application a \u00e9t\u00e9 test\u00e9e en interne ou en externe, le RTE importe l\u2019application dans le canal b\u00eata. Dans ce canal, de vrais clients re\u00e7oivent une notification de mise \u00e0 jour sur leur appareil pour des tests.<\/p>\n<p>Lors de la phase de b\u00eata-test, les b\u00eata-testeurs peuvent transmettre leurs retours directement sur l\u2019app store. En parall\u00e8le de ces retours, les crashs peuvent \u00eatre enregistr\u00e9s dans des outils tels que TestFlight, HockeyApp or Crashlytics.<\/p>\n<p>Apr\u00e8s la phase de b\u00eata-test de l\u2019application, vient la phase de d\u00e9ploiement par \u00e9tapes. \u00c0 ce stade, le RTE peut d\u00e9finir le pourcentage des utilisateurs qui recevra la mise \u00e0 jour. Dans ce cas pr\u00e9cis, l\u2019application sera d\u2019abord d\u00e9ploy\u00e9e pour 10 % des utilisateurs, puis 20 %, puis 50 %. \u00c0 chaque \u00e9tape, les commentaires ainsi que les outils de suivi des crashs doivent \u00eatre contr\u00f4l\u00e9s pour identifier tout probl\u00e8me \u00e9ventuel.<\/p>\n<div class=\"grammalecte_menu_footer\">\u00a0<\/div>\n<hr \/>\n<p><strong><em>Apprenez-en plus sur les\u00a0<a role=\"link\">tests d\u2019applications mobiles<\/a>\u00a0avec Applause<\/em><\/strong><\/p>\n<hr \/>\n<div id=\"grammalecte_menu11\" class=\"grammalecte_menu\">\n<div class=\"grammalecte_menu_footer\">\u00a0<\/div>\n<\/div>\n<p>Si un bug appara\u00eet lors de l\u2019\u00e9tape de d\u00e9ploiement \u00e0 20 %, l\u2019\u00e9quipe a la possibilit\u00e9 de r\u00e9agir et d\u2019utiliser la grille d\u2019\u00e9valuation des bugs pour mobile afin de d\u00e9cider si le probl\u00e8me n\u00e9cessite un correctif. Si tel est le cas, le train ne doit pas atteindre l\u2019\u00e9tape suivante de d\u00e9ploiement \u00e0 50 %. Le probl\u00e8me doit d\u2019abord \u00eatre r\u00e9solu pour les 20 % d\u2019utilisateurs concern\u00e9s. Une fois le probl\u00e8me corrig\u00e9 et v\u00e9rifi\u00e9, le train peut reprendre sa route et passer \u00e0 l\u2019\u00e9tape suivante du d\u00e9ploiement.<\/p>\n<p>Comme dans la version simple du train, seul le RTE (ou l\u2019\u00e9quipe d\u00e9sign\u00e9e) g\u00e8re le processus de livraison apr\u00e8s le gel du code. Toutes les autres \u00e9quipes poursuivent le d\u00e9veloppement \u00ab normal \u00bb.<\/p>\n<h3><strong>Comment mettre en place un train de livraison mobile<\/strong><\/h3>\n<p>Avant de lancer un train de livraison mobile dans votre entreprise, vous devez d\u00e9finir la dur\u00e9e de chaque \u00e9tape. Dans la plupart des cas, la phase de d\u00e9veloppement dure de 2 \u00e0 4 semaines.\u00a0<strong>Mais vous devez ensuite d\u00e9finir combien de temps vous voulez consacrer aux tests d\u2019int\u00e9gration, aux b\u00eata-tests et aux phases de d\u00e9ploiement.<\/strong>\u00a0Voici un exemple :<\/p>\n<ol>\n<li>10 jours de d\u00e9veloppement<\/li>\n<li>2 jours de tests d\u2019int\u00e9gration<\/li>\n<li>3 jours de b\u00eata-tests<\/li>\n<li>2 jours de d\u00e9ploiement pour 10 % des utilisateurs<\/li>\n<li>4 jours de d\u00e9ploiement pour 20 % des utilisateurs<\/li>\n<li>2 jours de d\u00e9ploiement pour 50 % des utilisateurs<\/li>\n<\/ol>\n<p>Au total, il faut 23 jours pour qu\u2019une nouvelle version de l\u2019app soit en ligne pour 100 % des clients. Pour certaines apps et certains clients cela peut \u00eatre trop rapide, pour d\u2019autres c\u2019est bien trop long. Chaque \u00e9quipe\/entreprise doit d\u00e9finir la dur\u00e9e de ses phases.<\/p>\n<p>Si vous voulez cr\u00e9er un train de livraison mobile plus avanc\u00e9 pour iOS, vous pouvez supprimer le d\u00e9ploiement par \u00e9tapes au profit d\u2019une phase de tests internes plus compl\u00e8te avec vos coll\u00e8gues. Vous pouvez distribuer l\u2019app en interne en utilisant des outils tels que TestFlight ou HockeyApp. Une fois la phase de tests internes termin\u00e9e, vous pouvez utiliser les m\u00eames outils pour envoyer l\u2019application \u00e0 vos clients b\u00eata. Il ne restera plus ensuite qu\u2019\u00e0 importer l\u2019application dans l\u2019App Store et la proposer directement \u00e0 100 % de vos clients.<\/p>\n<h3><strong>Aspects importants \u00e0 consid\u00e9rer lors de la planification des livraisons<\/strong><\/h3>\n<p>Cr\u00e9er et utiliser un train de livraison mobile est une excellente id\u00e9e, mais suivre et maintenir le processus \u00e0 chaque livraison peut s\u2019av\u00e9rer difficile. Voici quelques conseils pour mettre toutes les chances de votre c\u00f4t\u00e9 :<\/p>\n<ul>\n<li>Une \u00e9quipe\/personne doit \u00eatre en charge de la coordination et la livraison de la version.<\/li>\n<li>Organisez un point hebdomadaire\/bi-hebdomadaire pour permettre aux \u00e9quipes concern\u00e9es d\u2019\u00e9changer.<\/li>\n<li>Planifiez et annoncez les dates de d\u00e9part du train plusieurs semaines\/mois \u00e0 l\u2019avance.<\/li>\n<li>N\u2019acceptez que le code qui a \u00e9t\u00e9 v\u00e9rifi\u00e9 et test\u00e9.<\/li>\n<li>N\u2019acceptez que le code qui dispose de tests unitaires et (si besoin) de tests automatis\u00e9s de bout en bout.<\/li>\n<li>Ne prenez pas de passagers en retard. N\u2019incorporez pas \u00e0 la branche principale de code encore en cours de d\u00e9veloppement le jour du gel. Ce code n\u2019a pas \u00e9t\u00e9 suffisamment contr\u00f4l\u00e9 et test\u00e9.<\/li>\n<li>Optez si possible pour un d\u00e9ploiement par phases.<\/li>\n<li>N\u2019oubliez pas de suivre les performances de la version apr\u00e8s sa publication.<\/li>\n<\/ul>\n<\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Un train de livraison mobile peut vous aider \u00e0 coordonner diff\u00e9rentes \u00e9quipes de d\u00e9veloppement et autres tests pour gagner en efficacit\u00e9.<\/p>\n","protected":false},"author":42,"featured_media":82970,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[281],"tags":[977],"resource-industry":[],"resource-solution":[],"resources\/types":[1242],"class_list":["post-82736","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-non-classifiee","tag-mobile","resource-type-blogues"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/posts\/82736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/comments?post=82736"}],"version-history":[{"count":0,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/posts\/82736\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/media\/82970"}],"wp:attachment":[{"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/media?parent=82736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/categories?post=82736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/tags?post=82736"},{"taxonomy":"resource-industry","embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/resource-industry?post=82736"},{"taxonomy":"resource-solution","embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/resource-solution?post=82736"},{"taxonomy":"resource-type","embeddable":true,"href":"https:\/\/www.applause.com\/fr\/wp-json\/wp\/v2\/resources\/types?post=82736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}