30
Déploiement continu, l'agilité maximisée? Agile Tour Montréal 2016

Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Embed Size (px)

Citation preview

Page 1: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Déploiement continu, l'agilité maximisée?

Agile Tour Montréal 2016

Page 2: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Plan

• Pourquoi je vous parle de ce sujet?• Qu’est-ce que c’est?• Est-ce vraiment utile?• Et les enjeux?• Comment s’y rendre?• Et puis…

2

Page 3: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

3

• Approche popularisée depuis 2010– Initié par le rappel de

– Accélération de bout en bout de la chaîne de développement

+ De l’utilisateur au développeur à l’utilisateur

Agile Principle #1

Our highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software.

Page 4: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

4

Développe-ment

Intégration

TestsDéploie-ment

Surveillance

Soutien

Page 5: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

Développe-ment

Intégration

TestsDéploiement

Surveillance

Soutien

• Analyse• Architecture• Cas de tests• Cueillette des besoins• Documentation• Priorisation• Programmation• Tests unitaires

5

Page 6: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

Développement

Intégration

TestsDéploiement

Surveillance

Soutien

• Assemblage• Compilation • Édition de liens• Gestion des versions• Modularisation• Tests d’intégration

6

Page 7: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

Développement

Intégration

TestsDéploiement

Surveillance

Soutien

• Tests automatisés– Acceptation– Capacité– Fonctionnels– Performance– Régression– Système– Vulnérabilité

7

Page 8: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

Développement

Intégration

TestsDéploie-

ment

Surveillance

Soutien

• Gestion de la configuration

• Retour arrière ou de secours

• Versions multiples– Canary– Dark

8

Page 9: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

Développement

Intégration

TestsDéploiement

Surveillance

Soutien

• Gestion de la capacité• Surveillance

– Capacité, erreurs, Fraude, intrusion, journaux, performance, plantage, …

– Utilisation• Tests A/B

9

Page 10: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

Développement

Intégration

TestsDéploiement

Surveillance

Soutien

• Autonomisation de l’utilisateur

• Contact omnicanal• Visibilité des

changements

10

Page 11: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Dev

Int

Tests

Dep.

Surv.

Sou.

Qu’est-ce que c’est?

11

100 jrs 10 jrs 1 jr 0.1 jr 0.01 jr

Monolithique Par service, approche Lean

Spécialisation Continue, infra. souple

Spécialisation Main dans la main

CommutateursAutonomisation, retour arrière auto.Spécialisation

Spécialisation Adaptative

Spécialisation Axé innovation

Page 12: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Qu’est-ce que c’est?

12

Développe-ment

Intégration

TestsDéploie-ment

Surveillance

Soutien

Page 13: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Est-ce vraiment utile?

13

Page 14: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Est-ce vraiment utile?

• Marketing accéléré– plus facile de comprendre ce que les clients

recherchent• Diminuer le temps de cycle

– mise en marché accélérée• Produit plus pertinent

– rétroaction rapide des utilisateurs• Productivité accrue

– automatisation

14

Page 15: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Est-ce vraiment utile?

• Diminution des risques d’une livraison– petits incréments

• Impacts d’une erreur limités– erreur rapidement identifiée

• Qualité de l’architecture qui peut se dégrader– à surveiller

• Proactivité accrue face aux vulnérabilités

15

Page 16: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Et les enjeux?

• Certains clients rébarbatifs– c’est pas pour tous

• Investissements massifs– automatiser c’est pas toujours simple

• Rétrocompatibilité avec logiciels tiers et migration des données– architecture à revoir

16

Page 17: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Et les enjeux?

• Découvertes des nouvelles fonctionnalités par les utilisateurs– comment bien le faire?

• Interruption des opérations– infrastructure à revoir

• Réglementaires– conformité à démontrer

17

Page 18: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Et les enjeux?

• Automatisation difficile– par exemple les tests d’acceptation

• Suivi de la documentation– défi de synchronisation et de pertinence

• Arrimage des environnements• Interventions humaines

– cela ralentit la cadence

18

Page 19: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

19

• Gouvernance– Culture

+ Gestion de changement+ Impliquer la haute direction

– Processus+ Accélérer+ Automatiser+ Simplifier

– Structure+ Aplanir+ Client-collaborateur

Page 20: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

20

• Les utilisateurs– Informer

+ Blogues, Sondages, Wikis, …– Impliquer

+ Ciblage+ Production participative

– Former+ Webinaire

– Liens avec développeur?

Page 21: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

21

Page 22: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

22

SOURCE: martinfowler.com/articles/feature-toggles.html

Page 23: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

23

Équilibreur de charge

Ancienne version

Nouvelle version

(100 – s) %

s %

Mise en production :• t : s = 0 %• t + T : s = 5 %• t + n T : s = 100 %

Page 24: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

• Bien surveiller le nombre de• Bogues (+sévérité)• Nombre de dév.• Nombre de LoC par dév.• Pannes• Problèmes rapportés par

les clients• Tâches de correction• Utilisateurs

24

Page 25: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

• Applications mobiles– Retour arrière et correctifs d’urgence difficiles– Stabiliser (5 jours) et figer (3 jours) le code– Suivre la cadence du propriétaire de la plateforme

(1 semaine Android, 2 semaines iOS)+ Bien choisir la journée de livraison, car la qualité diminue

le jour de la livraison. FB suggère le dimanche– 1 développeur = 1 fichier de code

+ Le nombre de bogues varie selon le nombre de personnes qui changent un même fichier par livraison

25

Page 26: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Comment s’y rendre?

– Utilisateur choisit quand il change de version– Utiliser les commutateurs (feature toggle)– Versions multiples

+ Appareil+ Système d’exploitation (type et version)+ Version de l’application

26

Page 27: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Et puis…

• La fréquence de livraison– N’affecte pas le nombre d’erreurs critiques– Affecte peu le nombre d’erreurs de moindre priorité

• Le déploiement continu– N’affecte pas la productivité des développeurs

27

Page 28: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Mais surtout…

• N’oublions pas notre client-collaborateur !– Appel à tous sur comment, de façon continue, peut-

on optimiser:+ l’identification des besoins d’une masse d’utilisateurs?+ la découverte de nouvelles fonctionnalités?+ le transfert de connaissances à nos clients?

28

Page 29: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Références intéressantes

+ Leppänen, M. et al., The Highways and Country Roads to Continuous Deployment dans IEEE Software, Mars/avril2016.

+ Rossi, C. et al., Continuous Deployment of Mobile Software at Facebook dans FSE 2016, Novembre 2016

+ Rodríguez, P. et al., Continuous Deployment of Software Intensive Products and Services: A Systematic Mapping Study, Journal of Systems and Software, Janvier 2016

+ Ur Raman, A. A. et al., Synthesizing Continuous Deployment Practices Used in Software Development dans Agile Conference 2015

29

Page 30: Déploiement continu, l'agilité maximisée ? - Pierre-Martin Tardif

Dr. Pierre-Martin Tardif, ing., MBA, PMP, [email protected]

tardifpm

Agile Tour Montréal 2016