Upload
guillaume-sondag
View
82
Download
0
Tags:
Embed Size (px)
Citation preview
www.sooyoos.commercredi 18 mars 20153
« Laws of chaos » enquête de 1994 du « Standish Group »
31 % des projets informatiques sont arrêtés en cours de route, 52 % n’aboutissent qu’au prix d’un important dépassement des délais et du budget tout en offrant moins de fonctionnalités qu’il n’en était demandé ;
seuls 16 % des projets peuvent être considérés comme des succès.
www.sooyoos.commercredi 18 mars 2015
Cahier des charges
Etude des besoins
Etude de faisabilité
Développement
Tests
Validation
Recette
temps
détails
www.sooyoos.commercredi 18 mars 2015
Peur
Euphorie
Inquiétude
Panique
Recherche des coupables
Punition des innocents
promotion de ceux qui n’ont pas
trempé dans le projet
temps
détails
www.sooyoos.commercredi 18 mars 201511
• Mauvaise maitrise des délais dues à de nombreux facteurs non maitrisés• Contrainte d’un budget limité au détriment de la qualité• Aucune flexibilité en cours de développement• Evolutivité après livraison du produit non évalué• Mauvaise compréhension du besoin• Cahier des charges mal étudié ou incomplet car moins standard• Aucune visibilité sur le travail en cours• Fonctionnalités inutiles développées et finalisées• Effet tunnel
LES PROBLÈME RENCONTRÉS SUR LE DÉVELOPPEMENT LOGICIEL
www.sooyoos.commercredi 18 mars 201515
Quand l’équipe technique est obligée d’assister à une réunion avec le client
www.sooyoos.commercredi 18 mars 201519
AGILE MANIFESTOLES 4 VALEURS
Nous découvrons de meilleures approches pour faire du développement logiciel, en en faisant nous même et en aidant les autres à en faire. G râce à ce travail nous en sommes arrivés à préférer et favorise
• Les individus et leurs interactions plus que les processus et les outils.• Du logiciel qui fonctionne plus qu’une documentation exhaustive.• La collaboration avec les clients plus que la négociation contractuelle.• L’adaptation au changement plus que le suivi d’un plan.
C ela signifie que bien qu'il y ait de la valeur dans les items situés à droite, notre préférence se porte sur les items qui se trouvent sur la gauche.
www.sooyoos.commercredi 18 mars 201520
AGILE MANIFESTOLES 17 EXPERTS
Kent Beck : inventeur de l’Extreme Programming avec Ward Cunningham et Ron Jeffries ; co fondateur de Junit avec Erich Gamma
Ward Cunningham : inventeur du wiki
Ken Schwaber et Jeff Sutherland : inventeur du scrum
Jim Highsmith : inventeur de la méthode ASD -Adaptive software development
Alistair Cockburn : inventeur de la méthode Crystal clear
Martin Fowler, Dave Thomas et Arie van Bennekum : inventeurs de la méthode DSDM – Dynamic System Development Method
2001Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
www.sooyoos.commercredi 18 mars 2015
21
• Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
• Accueillez positivement les changements de besoins, même tard dans le projet. Les processus agiles exploitent le changement pour donner un avantage compétitif au client.
• Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts.
• Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.
• Réalisez les projets avec des personnes motivées. Fournissez-leur l’environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés.
• La méthode la plus simple et la plus efficace pour transmettre de l’information à l'équipe de développement et à l’intérieur de celle-ci est le dialogue en face à face.
AGILE MANIFESTOLES 12 PRINCIPES
www.sooyoos.commercredi 18 mars 201522
• Un logiciel opérationnel est la principale mesure d’avancement.
• Les processus agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant.
• Une attention continue à l'excellence technique et à une bonne conception renforce l’agilité.
• La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle.
• Les meilleures architectures, spécifications et conceptions émergent d'équipes autoorganisées.
• À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.
AGILE MANIFESTOLES 12 PRINCIPES
www.sooyoos.commercredi 18 mars 201524
EXTREME PROGRAMMING1 996 : Reprise du projet C 3 qui était en échec après 1 8 mois de développement.
Kent Beck : « C’était un mélange de préparation soigneuse et de panique »
Faire des économies d’équipe et de temps sur la recette avec la mise en place de test en amont.
Travail en tandem pour assurer la reprennabilité :« Si un programmeur parvient à communiquer clairement ses idées à un autre programmeur travaillant à ses côtés, il y a de grandes chances pour que celui qui vérifiera le programme deux ans plus tard n’ait aucun mal à le comprendre »
1 997 fin du projet C 3 et publication de la méthode
www.sooyoos.commercredi 18 mars 201525
XP VS MÉTHODES TRADITIONNELLES
Les méthodes agiles essayent de formaliser le bon sens et le pragmatisme que des équipes mettent déjà en œuvre dans le cadre de projets dits traditionnels
XP n’est pas l’ennemi d’UML
XP peut compléter des méthodes traditionnelles.
www.sooyoos.commercredi 18 mars 201526
EXTREME PROGRAMMING
XP pousse à l’extrême des principes simplesIl se définie comme :
• une tentative de réconcilier l'humain avec la productivité• un mécanisme pour faciliter le changement social• une voie d'amélioration• une discipline de développement d'applications informatiques• un style de développement
Son but principal est de réduire les coûts du changement.
www.sooyoos.commercredi 18 mars 201527
XP : LE CONSTAT
Il faut rendre moins lourdes les démarches
Diminuer les risques liés à l’utilisation de documents à rallonges illisibles.Equilibre entre « pas de démarche » et « trop de démarche »Focus sur le code bien commenté plutôt que des docs techniques
Il faut changer les principes
Etre adaptif plutôt que prédictif. Car le prédicat de base ou le contexte changent toujours.Priorité aux personnes plutôt qu’aux process, pour que le développement reste agréable.
www.sooyoos.commercredi 18 mars 201528
XP : LES VALEURS
Communication
Dans l’équipe : chacun doit tenir au courant les autres de l’état d’avancement dans son travail. Créer un esprit d’équipe, une dynamique de groupe.Commenter son code.
Avec le client : Rapprocher le client et les développeurs. Intégrer le client dans le projet.
www.sooyoos.commercredi 18 mars 201529
XP : LES VALEURS
Feedback
Du client : Livrer régulièrement pour avoir des retours réguliers.La mise en place de tests unitaires permettent de détecter les bugs et les régressions.Le client aura tendance naturellement à féliciter l’avancement du projet.Les développeurs auront moins de crainte car toute divergence sera détectée rapidement
De l’équipe : programmation en pair programming, critiques constructives et félicitations permettront aux équipes de monter en compétence naturellement.
www.sooyoos.commercredi 18 mars 201530
XP : LES VALEURSSimplicité
Le Yagni (You ain't gonna need it : tu n’en aura pas besoin). Toujours chercher à supprimer l’inutile pour optimiser au maximum la productivité.Qu’elle est la solution la plus simple qui peut fonctionner ?il vaut mieux faire simple aujourd'hui, quitte à changer demain, plutôt que de faire tout de suite compliqué sans être absolument certain de l'utilité de ce que l'on développe
Permet de faire des économies en moyenne, car la simplicité d'aujourd'hui revient moins cher et le surcoût éventuel.
Rester précis, « le plus simple possible » ne veut pas dire « simpliste ».Ne jamais dupliquer du code.
www.sooyoos.commercredi 18 mars 201531
XP : LES VALEURS
Courage
Le client doit avoir le courage de donner des priorités à ses besoins, et dire quel besoin n’est finalement pas très clair.Le responsable doit avoir le courage de commencer le projet avant que tout ait été précisé clairement sur un document contractuel. Le développeur doit avoir le courage de jeter du code pour repartir sur de bonnes bases. Le développeur doit avoir le courage de laisser son binôme observer son travail et ses compétences.
www.sooyoos.commercredi 18 mars 201532
XP : MISE EN OEUVRE
Diviser pour mieux régner
Des réunions « planning game » permettent d’attaquer les fonctionnalités par petits lots.De nombreuses itérations.
Définition des besoins par des users stories
Descriptions à l’image d’une bande dessinée (contenu simple et imagé)Aucune considération techniqueUsage de métaphore pour bien faire comprendre
www.sooyoos.commercredi 18 mars 201533
XP : MISE EN OEUVRE
Estimations
Estimation par user story.Estimation faite en unités arbitraires (XP units)Renégociations régulièresLes estimations se préciseront au fur et à mesure des itérations
www.sooyoos.commercredi 18 mars 201534
XP : MISE EN OEUVRE
TDD
Test driven development.« Ecrire les tests puis coder : si vous ne le faites pas, vous n'êtes pas un Extreme Programmer »Fait partie de la documentationAutomatisé
2 types de tests
Tests fonctionnels (rédigé par le client à partir d’un language formel)Tests unitaires. Vérifie la qualité du développement.
www.sooyoos.commercredi 18 mars 201535
XP : MISE EN OEUVRE
Code propre et efficace
Conception la plus simple possible (simple design) surtout au début.La relecture du code doit être la plus aisée possible.Aucune duplication, principe du DRY (Don’t repeat Yourself)Refactoring régulier
www.sooyoos.commercredi 18 mars 201536
XP : MISE EN OEUVRE
Organisation du développement
Programmation en pair programmingUne personne produit (driver), l’autre (partner) prend du recul, vérifie la cohérence globale, la conception et l’application d’XP
Développeurs heureux
Stand-up meetingEsprit d’équipeXP préconise de ne pas faire d’heures supp plus de deux semaines de suite.
www.sooyoos.commercredi 18 mars 201538
SCREUM, SCRUME, SCROUME
Scrum
Signifie mêlée au rugby.Reprend les valeurs et l’esprit d’équipe du rugby et les adapte au projets de développement.
www.sooyoos.commercredi 18 mars 201539
RÔLES
•Product owner•Scrum master•Développeurs•Parties prenantes
www.sooyoos.commercredi 18 mars 201541
APPROCHE ITÉRATIVE ET INCRÉMENTALE
Timebox
Sprint de même durées pour donner le rythmePas de sprint extensiblesBudget fixé
Release
On privilégie la release à date fixée à l’avance, avec l’objectif d’apporter le maximum de valeur.
www.sooyoos.commercredi 18 mars 201543
LE PO : PRODUCT OWNER
Il défend le produit avant toutDes responsabilités produit sans responsabilité hiérarchique Il définit le contenu du produitIl planifie la vie du produitIl doit être disponible et participer aux cérémoniaux
Les compétences
Maitrise des techniques de définition de produitAutorité pour prendre des décisions rapidementCapacité à détailler au bon momentEsprit ouvert au changementAptitude à la négociation
www.sooyoos.commercredi 18 mars 201544
LE SM : SCRUM MASTER
Ce n’est pas un chef de projet mais un facilitateurVecteur progressiste capable d’entraîner ses co-équipiers vers plus d’auto-organisationIl doit : Veiller à l’application de scum Encourager l’équipe à apprendre et à progresser Eliminer les obstacles Inciter l’équipe à devenir pluridisciplinaire et auto-organisée
Les compétences
Maitriser scrumAptitude à comprendre le fonctionnel et la techniqueFacilité à communiquerCapacité à guiderTalent de médiateur (ne jamais s’opposer au PO) Ténacité (pour faire sauter les obstacles, il en faut)Inclination à la transparenceGoût à être au service de l’équipe
www.sooyoos.commercredi 18 mars 201545
Quand le Scrum Master protège poliment son équipe des envahisseurs
www.sooyoos.commercredi 18 mars 201547
Visible des parties prenantes
Visible des développeurs
Ajoute de la valeur Rétablie de la valeur
CATÉGORIES D’UNE STORY
www.sooyoos.commercredi 18 mars 201548
CYCLE DE VIE D’UNE STORY
Bac à glace
PP+PO+E PO+E E PO+E PP+PO+E
PO
www.sooyoos.commercredi 18 mars 201549
RELEASE
Composé de plusieurs sprintsDéfinir les critères de fin de releaseEstimer les stories du backlogPlanning poker : Fibonacci : 1, 2, 3, 4, 8, 13, 20
www.sooyoos.commercredi 18 mars 201550
SPRINTEngagements lors de la planification de sprint :•Conditions•Disponibilités pour ce sprint •But du sprint•Liste de stories Lancement de sprint : Prise des tâchesBurndown chart
www.sooyoos.commercredi 18 mars 201551
SPRINT
Standup meeting (XP), daily scrum meetingS’adapter pour réussir le sprint :• identifier les obstacles• préparer les discusions d’équipe• garder l’équipe concentrée sur l’objectif• évaluer l’avancement du travail en cours• préparer les travaux nécessaires pour finir les stories
Les 3 questions :•Qu’ai-je fait depuis le dernier scrum•Que vais-je faire jusqu’au prochain scrum•Quels sont les obstacles qui me freinent dans mon travail ?Toute l’équipe participe au meeting
www.sooyoos.commercredi 18 mars 201552
REVUE DE SPRINT
Plus grand nombre d’invitésLa revue montre le produitCollecter le feedbackCalculer la vélocitéAjouter les prévisions
www.sooyoos.commercredi 18 mars 201553
RÉTROSPECTIVE DE SPRINT
Inter équipe (avec PO)Un moment de réflexion collectiveL’équipe refait le match• Qu’est ce qui a bien fonctionné ?• Qu’est ce qui s’est mal passé ?• Qu’est ce que nous pouvons améliorer ?
Ne pas hésiter à adapter scrumNe pas en faire une séance de règlements de compte
www.sooyoos.commercredi 18 mars 201555
CULTURE DEVOPS
Continuité de l’agilitéRapprochement du « développement » et de « l’opération »Aligner les objectifs et rapprocher 2 cultures en une seule Regrouper les équipesEnvironnement de développement et celui de production (problématiques de couts)
www.sooyoos.commercredi 18 mars 201560
INTÉGRATION CONTINUE
Compiler, tester et livrer régulièrement.• Le code source est géré dans un repository ( GIT, SVN, Mercurial)• Compiler et construire l’application de façon automatique • Ecrire des tests unitaires et fonctionnels et les exécuter régulièrement• Construire et packager l’application à intervalle régulier ou déclancher la construction après chaque commit.
www.sooyoos.commercredi 18 mars 201561
LIVRAISON CONTINUE
Automatiser la livraison de l’application sur différents environnement tout au long de son cycle de vie :Dev, Integration, Recette, Production
Environnements le plus proche possible de celui de production
Le déploiement doit se faire sans modification de code.
Déploiement 100% automatisé
www.sooyoos.commercredi 18 mars 201562
DÉPLOIEMENT CONTINUE
Vient après la livraison continue, mais est déployé jusqu’en production.
Nécessite une automatisation complète (possibilité de validation manuelle)
Peut être fait sans interruption de service
Certains grands sites déploient des dizaines de release par jour.
www.sooyoos.commercredi 18 mars 201563
Quand … pour la première fois on déploie en devops une appli complète en mois de 2 minutes
www.sooyoos.commercredi 18 mars 201564
AMÉLIORATION CONTINUE
Tout automatiser mais sans répéter les mêmes erreurs.
Récolter régulièrement des feedbacks
Prendre uniquement les indicateurs permettant de réduire le time to market (pas de conflit)
www.sooyoos.commercredi 18 mars 201565
AUTRES
Multiplier les sondes, et indices pour le monitoring
Monitoring et logs partagés
Viser la performance
Autoscaling
Sécurité automatisé
www.sooyoos.commercredi 18 mars 201566
OUTILS AGILES
Taiga.ioTrelloAsanaPivotaltrackerWrikeTimeperformance
www.sooyoos.commercredi 18 mars 201568
OUTILS DE VERSIONNING
GITSVNMercurialLiquibase pour les schémas de BDD
www.sooyoos.commercredi 18 mars 201569
CLIENTS GRAPHIQUE
TortoisegitSourcetreeUngitSmartgit
GitlabGithubBitbucketUsvn
www.sooyoos.commercredi 18 mars 201574
OUTILS DE TESTING
PhpunitSeleniumCasperjs + phantomjsJasmineKarma
www.sooyoos.commercredi 18 mars 201575
OUTILS D’ORCHESTRATION ET DEPLOIEMENT
CapistranoCapifonyRundeck
Actions en masses :FuncmCollective
www.sooyoos.commercredi 18 mars 201580
MONITORING
ElasticSearch + KibanaCollectd, Stats, JMXTrans, Metrics, Esper, Ganglia, Graphite, CubeGraylog2, Flume, Logstash
www.sooyoos.commercredi 18 mars 201583
AdresseContactGuillaume Sondag01 48 06 80 [email protected]
Sooyoos,11 rue Oberkampd75011 Paris
83