Méthodes agiles et culture Devops au service du Web
Qui suis-je ?
Vanessa Kovalsky David
Développeuse sur des CMS libres depuis 5 ans
Lead dev Drupal chez Webnet et scrum master sur les projets
Agilité ?
Et si on vous proposait une méthode qui vous évite d'entendre lors de la livraison : « mais c'est pas ce qu'on voulait / ce qui est dans le cahier des charges» ? (effet tunnel)
Et si votre client par son implication, vous permettait de livrer un outil encore plus proche des besoins métiers ?
http://pierre-fraser.com/2011/05/24/effet-tunnel-mediatique/
Des méthodes
• Opposition Cycle en V VS Méthode Agiles
http://commons.wikimedia.org/wiki/File:SemiIteratif.jpg
http://dc312.4shared.com/doc/9rI17IoE/preview.html
Les 4 valeurs de l'agilité
http://arnaud-jacquemin.blogspot.fr/
Les 12 principes de l'agilité
1) La plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à forte valeur ajoutée.
2) Le changement est accepté, même tardivement dans le développement, car les processus agiles exploitent le changement comme avantage concurrentiel pour le client.
3) La livraison s’applique à une application fonctionnelle, toutes les deux semaines à deux mois, avec une préférence pour la période la plus courte.
4) Le métier et les développeurs doivent collaborer régulièrement et de préférence quotidiennement au projet.
5) Le projet doit impliquer des personnes motivées. Donnez-leur l'environnement et le soutien dont elles ont besoin et faites leur confiance quant au respect des objectifs.
6) La méthode la plus efficace de transmettre l'information est une conversation en face à face.
7) L’unité de mesure de la progression du projet est un logiciel fonctionnel (ce qui exclut de comptabiliser les fonctions non formellement achevées).
8) Les processus agiles promeuvent un rythme de développement soutenable (afin d’éviter la non qualité découlant de la fatigue).
9) Les processus agiles recommandent une attention continue à l'excellence technique et à la qualité de la conception.
10) La simplicité et l'art de minimiser les tâches parasites, sont appliqués comme principes essentiels.
11) Les équipes s'auto-organisent afin de faire émerger les meilleures architectures, spécifications et conceptions.
12) À intervalle régulier, l'équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son processus de travail en conséquence.
Pourquoi faire ?
Et les CMS ?
• Méthode à l'origine pour le développement
• Modularité des CMS permet l'utilisation des méthodes agiles
• Montée en puissance des système d'industrialisation
• Réponse adaptée aux besoins évolutifs de nos clients
https://blog.crafting-labs.fr/?post/2012/02/03/Agilit%C3%A9-dans-les-IUT
Des humains avant tout• Une équipe qui comprend et accepte le
fonctionnement agile
• Le client est capable de se disponibiliser, d'accepter les risques et de décider
• Des développeurs avec des connaissances suffisantes des cms (notament des extensions disponibles) ou une capacité à monter en compétence rapidement
Sprints / Backlog / User Story /
• Découpage en sprint court (une à deux semaines)
• Un backlog alimenté en permanence et priorisé avant le début d'un sprint
• Des users story pour permettre aux développeurs de comprendre la demande fonctionnel
http://www.agilegarden.fr/agilite-et-logiciels-libres-meme-combat/
Daily Scrum et Présentation
• Un point quotidien rapide entre développeurs pour levé les difficultés et faciliter la collaboration
• Une présentation par l'ensemble de l'équipe à la fin de chaque sprint
http://blog.soat.fr/2010/06/agile-conference-%E2%80%93-la-pnl-programmation-neuro-linguistique/
Quels outils pour quels usages
• Un mur de Post It si tout le monde est physiquement dans le même bâtiment
• Des outils numériques en cas de collaboration à distance
• => Visualiser rapidement l'avancement et les goulots d'étranglement
http://blog.garethjmsaunders.co.uk/archives/2010/04/17/agile-planning-poker/
Vous avez dit DevOps ?
Contraction de l'anglais Development et Operations (exploitation)
Né en Belgique en 2009
Concept qui consiste à appliquer les méthodes agiles d'un bout à l'autre de la chaine SI
http://en.wikipedia.org/wiki/File:Devops.svg
Devs VS Exploit
Contraintes opposés :
Besoin de stabilité, de cohérence, d'un nombre limité d'applis pour la prod pour faciliter la maintenance
Besoin de répondre rapidement aux demandes clients en ajoutant des fonctionnalités
Pourquoi de l'agilité sur toute la chaîne ?
Faciliter et fluidifier l'ajout de fonctionnalités sur les sites
Raccourcir au maximum le temps entre la demande d'un client et la livraison de la fonctionnalités correspondantes en prod
Meilleurs communication => moins de travail « inutile », donc plus de productivité et de motivation, lié à la suppression des tâches répétitives pas forcément intéressantes
http://gblogs.cisco.com/fr-datacenter/category/data-center/
Culture d'entreprise et communication
Besoin de « casser » l'organisation en silos
Nécessite une transformation en profondeur de l'entreprise pour que cela fonctionne
Le Devops s'appuie surtout sur plus de communication entre les différentes personnes
Plus de communication exclusivement homme – machine, mais de la communication + riche d'humain à humain
Compétences et objectifs communs
• Amazon « You build it, you run it ! »
• Dans une équipe DevOps, chacun sait faire (à minima) le travail des autres et donc les personnes peuvent s'entraider
La performance des équipes est mesurée sur des objectifs communs, ce qui permet une plus forte implication de chacun des acteurs pour aboutir à l'objectif
http://www.ulysceo.com/fr-metiers-nos-metiers-performance-des-equipes.html
Outillage commun
• OS, outils de travail
• Outils de déploiement automatisés
• Tests automatisés
https://www.ibm.com/developerworks/community/blogs/c914709e-8097-4537-92ef-8982fc416138/entry/we_reach_our_goal_with_devops?lang=en
Merci pour votre écoute .
Des questions ?
Recommended