Publicité

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

Agile Montréal
21 Nov 2016
Publicité

Contenu connexe

Présentations pour vous(20)

En vedette(20)

Publicité

Plus de Agile Montréal(20)

Publicité

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

  1. Déploiement continu, l'agilité maximisée? Agile Tour Montréal 2016
  2. 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
  3. 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 customer through early and continuous delivery of valuable software.
  4. Qu’est-ce que c’est? 4 Développe- ment Intégration Tests Déploie- ment Surveillance Soutien
  5. 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
  6. 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
  7. Qu’est-ce que c’est? Développement Intégration Tests Déploiement Surveillance Soutien • Tests automatisés – Acceptation – Capacité – Fonctionnels – Performance – Régression – Système – Vulnérabilité 7
  8. Qu’est-ce que c’est? Développement Intégration Tests Déploie- ment Surveillance Soutien • Gestion de la configuration • Retour arrière ou de secours • Versions multiples – Canary – Dark 8
  9. 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
  10. Qu’est-ce que c’est? Développement Intégration TestsDéploiement Surveillance Soutien • Autonomisation de l’utilisateur • Contact omnicanal • Visibilité des changements 10
  11. 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 Commutateurs Autonomisation, retour arrière auto.Spécialisation Spécialisation Adaptative Spécialisation Axé innovation
  12. Qu’est-ce que c’est? 12 Développe- ment Intégration Tests Déploie- ment Surveillance Soutien
  13. Est-ce vraiment utile? 13
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. Comment s’y rendre? 19 • Gouvernance – Culture + Gestion de changement + Impliquer la haute direction – Processus + Accélérer + Automatiser + Simplifier – Structure + Aplanir + Client-collaborateur
  20. Comment s’y rendre? 20 • Les utilisateurs – Informer + Blogues, Sondages, Wikis, … – Impliquer + Ciblage + Production participative – Former + Webinaire – Liens avec développeur?
  21. Comment s’y rendre? 21
  22. Comment s’y rendre? 22 SOURCE: martinfowler.com/articles/feature-toggles.html
  23. 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 %
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. Références intéressantes + Leppänen, M. et al., The Highways and Country Roads to Continuous Deployment dans IEEE Software, Mars/avril 2016. + 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
  30. Dr. Pierre-Martin Tardif, ing., MBA, PMP, CGEIT pmtardif@visisyst.com tardifpm Agile Tour Montréal 2016
Publicité