Livrer le vendredi - Calendrier de l'avent 7 décembre 2018

Livrer le vendredi - Calendrier de l'avent 7 décembre 2018

TGIF Darth Vader dancing Voici le 7e article de notre calendrier de l’avent Agile 2018, qui tombe un vendredi, nous nous sommes dit qu’il serait bien de parler d’un sujet sensible : livrer le vendredi. Comme nous, vous avez dû apprendre que c’était le pilori pour toute personne qui se permettait de mettre en production juste avant le week end. Pourtant, sans donner tort à ce principe vieux comme le Web, les pratiques modernes, livraison continue ou déploiement continue, nous permettent de revoir cette idée.

Je vais même proposer une chose simple : Vous souhaitez livrer votre appli principale et grand public. On est vendredi, mettons à 17h30, sachant que vous avez prévu de partir en week end en Dordogne à un endroit où le réseau ne passe pas et vous partez dans 5 minutes. Qu’est-ce qui pourrait vous donner confiance dans votre déploiement ?

Clear fix

  1. De toute façon, notre appli a tellement de bug que ça ne se verra même pas si ça plante.
  2. Je m’en fous, j’ai des DevOps senior de 2,5 ans d’expériences que je paye pour ça !
  3. De toute façon, ce week end, ce sera avec une secte apocalyptique qui prévoit la fin du monde dimanche au plus tard
  4. Mon développement a été fait en Test Driven Development, notre pipeline de mise en production est suffisamment éprouvée et notre appli comporte une couverture complète de tests de différentes natures. Le déploiement continue ne finira pas si tout ne passe pas. Et si, dans un cas très improbable, voire chaotique, une erreur non détectée venait à arriver, nous avons la personnes d’astreinte qui a des alertes sur les surveillances auto et qui peut faire un rollback en 30s sur notre serveur failover.

Children hiding under the table preparing for deploy

Bien entendu, la réponse D est l’idéal… une utopie, diraient certains. Mais c’est bien la réalité d’entreprises de plus en plus nombreuses. Les pratiques liées au déploiement continu, intégrées à un environnement DevOps permettent cette mise en oeuvre.

Si aujourd’hui vous n’en êtes pas là, je vous invite à essayer ces nouvelles habitudes:

  • Notez les plus gros blocages, freins et risques pour déployer le vendredi sans avoir peur. Soyez précis, découpez en faits concrets, mesurables et simples
  • Pour chaque incrément de votre appli, assurez-vous que votre implémentation n’ajoute pas d’élément à cette liste
  • Démarrez une liste partagée des lignes de commande, procédures et routines de vérification qui pourraient être automatisées
  • A chaque nouveau déploiement, assurez-vous d’avoir automatisé au moins un élément de cette liste

Rails fixing right before the train

Vous pouvez même mesurer votre avancement. Pas en nombre dans la liste, mais en résultat de vos déploiements : temps total de déploiement, vitesse de rollback, niveau de stress des équipes, fréquence des déploiements, nombre d’erreurs par déploiement. Il est à parier que chaque déploiement améliorera ces indicateurs… et le déploiement continu se rapprochera !

PS : Je viens de déployer notre site statique généré les yeux fermés en suivant cette routine. Je sais, c’est très modeste, mais des pas de bébé valent mieux que de rester sur place :-)