Ma stack d’outils agiles, 
tout un programme ! 
OU COMMENT BÉNÉFICIER DES TECHNOLOGIES GRAND PUBLIC 
POUR AMÉLIORER ET OPT...
Merci à nos sponsors 
Prestige Platinum 
Gold
Cédric Leblond Meritis 
Consultant sur l’ALM et TFS depuis 5 ans 
MVP Visual Studio ALM 2014 
MCTS Team Foundation Server ...
LOB Apps tout une histoire! 
LOB Apps (Lines Of Business Applications) est une équipe de développement transverse. 
Ils so...
Lob Apps imagine sa stack d’outils 
Gestion des 
sources 
• Git, SVN, 
Mercurial, 
Perforce, Clear 
Case, TFVC, … 
• Manue...
Gestion des 
sources 
Gestion des 
builds 
Gestion Agile 
du produit 
ou 
Gestion des 
déploiements 
Gestion Agile 
du pro...
Pourquoi les outils sont parfois peu utilisés ? 
Outil pas directement accessible 
Fonctionnalités incomplètes ou pas suff...
Extension et synchronisation “old school” 
Appli A 
Accessible via 
librairies clientes 
Synchronizer 
3rd party 
aka moul...
Exemples plus modernes pour notre Stack 
Zoom sur Zapier 
◦ Outil permettant des échanges simples 
◦ Permet des “Zap” entr...
Les apports des nouveaux standards du Web 
OAuth Tiers 
OAuth 
Tokens 
Basic 
Authen. 
Appli A 
API REST 
OAuth 
Tokens 
E...
Comment choisir ? 
Pour éviter le mille feuille, choisissez une application principale 
fournissant : 
• Un maximum des fo...
Les limites du prêt à consommer 
Avec les interfaces déjà préparées, il peut vous manquer : 
◦ Le transfert de champs spéc...
Création de code pour l’intégration 
Exemple en C# d’intégration de TFS avec Target Process : 
storyToUpdate.Name = "Ma St...
Adoptez un robot nommé Hubot 
https://hubot.github.com/ 
Hubot est un robot conçu pour automatiser le chat. Il sait : 
◦ L...
En résumé 
CE QUE L’ON A VU 
Les récents standards d’échanges OAuth, 
API REST, Hooks 
Les limites du mashup au niveau de ...
Prochain SlideShare
Chargement dans…5
×

Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric LEBLOND

2 327 vues

Publié le

-

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 327
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1 179
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Je rêve de ne plus avoir débattre à chaque besoin de « quel outil allons nous adopter? ». Que chacun puisse utiliser l’outil qui lui convient le mieux.
    Nous avons fait une partie du chemin. Les technologies et standards du web apportent une grande facilité à combiner,intégrer des applications. L’idée est de vous montrer concrètement ce qui est possible et comment.
  • J'interviens chez nos clients sur les problématiques ALM. J'en déploie les bonnes pratiques et les processus avec Visual Studio ALM et Team Foundation Server. Je suis également ScrumMaster et développeur.
    Je participe régulièrement aux évènements des communautés Microsoft, ALM et Agiles (Agile .Net France, French Scrum User Group, TechDays) en tant que participant et autant que possible comme conférencier
    Meritis est une société de en systèmes d’information pour la finance de marché.
    Au sein des banques de financement et d’investissement et des sociétés de gestion d’actifs, les consultants Meritis interviennent à tous les stades du traitement d’ordre que ce soit fonctionnels, méthodologiques et technologiques - associée à la multitude des actifs et des produits rencontrés, garantissent aux consultants de Meritis un développement important de leurs compétences combiné à des évolutions aussi bien transversales que verticales
    Afin de concrétiser ses valeurs méritocratie, équipe, résultat, innovation, Meritis a participé au Palmarès Great Place To Work 2013 et a été classé 5ème des Best Workplaces France des entreprises de moins de 500 salariés
  • Legacy Old Basic Apps
  • A chaque grand ensemble d’activité dans le cycle de vie de dev d’une application, on retrouve des outils (logiciels ou pas). Ils sont parfois très spécialisé dans un domaine. Dans de domaines comme la gestion des sources, on utilise plus du manuel/humain. Dans la gest du produit/travail moins et encore moins dans la collaboration.
    La Stack n’est pas complète (ex : outils de def du produit avec lean Canvas, product box, prototypage, … ou de support avec Zendesk, FreshDesk, System Center )
    Guide lines doivent supporter l’Agilité, Software Craftmanship, Continuuous delivery, Devops
  • La Roadmap sur 18 mois prévoit une adoption par étape. Une période de trois mois est prévue à chaque étape pour permettre l’équipe d’apprendre et maitriser le nouveau domaine.
    Lors de son périple l’équipe va de voir l’adapter et nous allons voir comment les nouveaux outils permettent une rapide intégration
  • Tableau blanc dans une autre pièce/bureau. Outil pas intégrer à l’IDE, pas possible de lier vos changements de code à votre tache ou US. L’outil est donc pas accessible directement.
    Fonctionnalité incomplètes par ce que la fréquence mises à jour est lente. ou les extensions existent mais sont payantes (ex JIRA et JIRA Agile, TFS et la gestion du Portfolio Agile accès en lecture gratuite)
    Le tableau des user stories et task physique et un outil de tracking à côté pour conserver l’historique. (impressions des User Stories)
    Sur ces 2 dernières, les récentes innovations de ces dernières années, ont produit de nouveaux standards qui ouvrent de nouvelles perspectives.
  • La première possibilité est d’écrire ou acheter des extensions (de l’editeur ou d’un editeur tiers)  cela fonctionne assez bien, le coût peut poser problème l’extension est très dépendante et peut générer des coûts supplémentaires
    La synchronisation entre 2 applications, elle n’était pas standardisée avec parfois des approches différentes qui même quasi souvent à écrire soit même un outils tiers supplémentaire qu’il faut ensuite maintenir.
  • 2 applis, 1 tiers d’authen (optionnel), plus de moulinette obligatoire
    On les utilise tous les jours avec Twitter, LinkedIn, Facebook….
    Oauth : Authentification standardisée permettant aussi à une application d’agir en notre nom avec des restrictions .
    cela permet de donner un accès à ses ressources sur une application à une autre application.
    Histo : nov 2006 debut en travaillant sur l’imp de OpenID pour Twitter. Avec l’impulsion de google, un groupe propose la V1 en octobre 2007
    différence avec OpenID OpenID se charge d’être sur de que l’utilisateur est celui qu’il prétend, OAuth se charge d’accorder les accès
    API REST étudier pour l’HTTP, couramment utilisé, Presque standard à défaut utilisation d’une API Web très proche
    API claire et facile à apréhender basée sur les verbes HTTP GET, PUT, POST, PATCH, DELETE
    Fournit souvent avec des exemples
    Events / hooks permettent de déclencher une notification appel à un autre application sans action spécifique.
    Ces mécanismes permettent aux applications elle-même de proposer des extensions ou de créer soit même des interactions dans la techno/langage que nous souhaitons/connaissons
  • Exemple avec les web hooks de visualstudio vers Trello et le Mashup avec ZenDesk pour la synchro.
  • Je créé une autre Appli « C » qui elle aussi utilise les même standard (pas comme le code présenté ci-dessus pour les besoins de lisibilité). L’Appli C est permet de réaliser des synchros mais potentiellement pas que cela.
  • Ce que l’on a vu.
    Ce qu’il faut retenir.
  • Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric LEBLOND

    1. 1. Ma stack d’outils agiles, tout un programme ! OU COMMENT BÉNÉFICIER DES TECHNOLOGIES GRAND PUBLIC POUR AMÉLIORER ET OPTIMISER MES OUTILS LOGICIELS.
    2. 2. Merci à nos sponsors Prestige Platinum Gold
    3. 3. Cédric Leblond Meritis Consultant sur l’ALM et TFS depuis 5 ans MVP Visual Studio ALM 2014 MCTS Team Foundation Server CSM Certified ScrumMaster CSPO Certified Scrum Product Owner Accompagne les équipes de développements dans l’industrialisation et l’optimisation de leur environnement, processus et outils agiles @leblond_c http://cedricleblond.blogspot.com Conseil en systèmes d’information pour la finance de marché Accompagne ses clients sur tous les métiers : ◦ Fonctionnel ◦ Technologique ◦ Méthodologique 5ème Best Workplaces France 2013 de moins de 500 salariés
    4. 4. LOB Apps tout une histoire! LOB Apps (Lines Of Business Applications) est une équipe de développement transverse. Ils sont 10 personnes avec un expérience de 2 à 30 ans. Ils développent environ 50 applications web pour des métiers très différents. L’équipe a démarrée depuis 10 ans, les clients sont relativement satisfaits. L’architecture des applications web, leur outils de développements et intégration ont peu évolués. Il souhaitent pouvoir bénéficier des nouveautés et aider plus efficacement leurs clients internes. Ils décident de conserver la technologie actuelle et de commencer par changer leur Stack d’outils.
    5. 5. Lob Apps imagine sa stack d’outils Gestion des sources • Git, SVN, Mercurial, Perforce, Clear Case, TFVC, … • Manuel Gestion des Builds • Ant, Maven, MSBuild, NuGet, Jenkins, Team City, Team Build.. • Manuel Gestion des déploiements • Chef, Puppet, Deploy it, Azure, MS Release Management, … • Manuel Gestion Agile du produit • Trello, Jira, Redmine, Asana, BaseCamp, VSO/TFS, … • Manuel Gestion des tests et qualité • BDD, ATDD, TDD • Analyse de code • Pairing, Pull request, Code reviews • QC, Test Manag. Gestion de la surveillance • New Relic, Zabbix, AppDynamix, System Center, Application Insights, … Collaboration • Campfire, HipChat, Slack, Team rooms • Face à face … • …
    6. 6. Gestion des sources Gestion des builds Gestion Agile du produit ou Gestion des déploiements Gestion Agile du produit ou Gestion des déploiements Intégration avec équipe produit Gestion des demandes utilisateurs Gestion des Collaboration ? Coordination avec une équipe issue d’un rachat aux Etats-Unis Collaboration entre les équipes en France, Etats- Unis et Inde Gestion de la tests ? surveillance ? LOB Apps créé sa RoadMap 3 mois
    7. 7. Pourquoi les outils sont parfois peu utilisés ? Outil pas directement accessible Fonctionnalités incomplètes ou pas suffisamment poussées Utilisation de plusieurs / trop d’outils ◦ Créé un rejet ◦ Demande des synchronisations compliquées
    8. 8. Extension et synchronisation “old school” Appli A Accessible via librairies clientes Synchronizer 3rd party aka moulinette • Techno imposée par Appli A • intégration avec l’Appli B peu fiable Appli B Accessible via WebServices peu documentés ou uniquement par l’interface web Etendue par des Plug-Ins et extensions Etendue par des Plug-Ins et extensions Etendue par des Plug-Ins et extensions Difficultés de mise en place Lourd à maintenir à chaque mise à jour
    9. 9. Exemples plus modernes pour notre Stack Zoom sur Zapier ◦ Outil permettant des échanges simples ◦ Permet des “Zap” entre plus de 500 applications différentes ◦ Création des interactions entièrement guidées Exemples de « Zap » : ◦ Lors de la création d’une card dans Trello  Créer une task dans Todoist ◦ Lors de la création d’un WI  Créer une card dans Trello ◦ Lorsqu’une Build est échouée  Créer une card dans Trello ◦ Ajout d’un Pull Request  Créer une task dans Todoist
    10. 10. Les apports des nouveaux standards du Web OAuth Tiers OAuth Tokens Basic Authen. Appli A API REST OAuth Tokens Events Hooks Extensions light (HTML, Javascript) Basic Authen. Appli B API REST OAuth Tokens Events Hooks Extensions light (HTML, Javascript)
    11. 11. Comment choisir ? Pour éviter le mille feuille, choisissez une application principale fournissant : • Un maximum des fonctionnalités intégrées • Une extension avec des mécanismes modernes et standards : • Extensions (PlugIns, Apps, Mashup) • OAuth v2 • API REST • Web Hooks • Des interfaces déjà existantes avec les outils complémentaires
    12. 12. Les limites du prêt à consommer Avec les interfaces déjà préparées, il peut vous manquer : ◦ Le transfert de champs spécifiques ◦ La synchronisation bidirectionnelle Bref l’implémentation ne suit pas toujours vos envies … Ecrivez un peu de code pour les suivre : ◦ Ecrire un outil entièrement personnalisé ◦ Utiliser une structure d’application extensible comme Zapier, ou Hubot
    13. 13. Création de code pour l’intégration Exemple en C# d’intégration de TFS avec Target Process : storyToUpdate.Name = "Ma Story modifiée"; var ns = new XmlSerializerNamespaces(); ns.Add("", ""); var storySerializer = new XmlSerializer(typeof(UserStory)); var output = new StringWriter(); storySerializer.Serialize(output, storyToUpdate, ns); var result = clienttp.UploadString(PathToTp + string.Format("api/v1/UserStories/{0}?include=[Id,Name,Project[Id,Name]]", storyToUpdate.Id), "POST", output.ToString()); var projectname = "AwesomeTools"; var witype = "Product Backlog Item"; var pbi = new WorkItem(); pbi.Fields["System.Title"] = "Tp: " + storyToUpdate.Name; pbi.Fields["System.AssignedTo"] = "Cédric Pro"; var httpContent = new StringContent(JsonConvert.SerializeObject(pbi.FieldUpdates), Encoding.UTF8, "application/json- patch+json"); var request = new HttpRequestMessage(new HttpMethod("PATCH"), PathTovso + string.Format("/{0}/_apis/wit/workitems/${1}?api-version=1.0-preview.2", projectname, witype)); request.Content = httpContent; HttpResponseMessage response = clientvso.SendAsync(request).Result; var responseBody = response.Content.ReadAsStringAsync(); Pour démarrer, explorer les APIs et exemples d’intégration : ◦ VSO : http://www.visualstudio.com/en-us/integrate/explore/explore-vso-vsi ◦ Target Process : http://dev.targetprocess.com/rest/getting_started
    14. 14. Adoptez un robot nommé Hubot https://hubot.github.com/ Hubot est un robot conçu pour automatiser le chat. Il sait : ◦ Lancer une build, déployer un site web, ◦ Traduire, rechercher des images, une adresse, ◦ Convertir, … et ce vous imaginerez Github l’a écrit pour sa propre utilisation puis réécrit et rendu Open Source. Hubot s’appuie sur Node.js et Coffee-script Hubot se déploie facilement sur des plateformes comme Heroku, OpenShift, Azure, … Hubot a 2 parties fondamentales : ◦ Les adaptateurs pour communiquer avec les chat : Campfire, HipChat, Team rooms, … ◦ Les scripts pour exécuter toute sortes de taches Quelques scripts viennent de base. Ensuite il est facile d’ajouter ceux maintenus par la communauté
    15. 15. En résumé CE QUE L’ON A VU Les récents standards d’échanges OAuth, API REST, Hooks Les limites du mashup au niveau de la synchronisation L’utilisation de hubot comme automate universel CE QU’IL FAUT RETENIR Choisissez bien votre application principale ◦ intègre par défaut un maximum d’outils ◦ permet des extensions avec les récents standards L’intégration « sans code » d’outils pro Distillez et infusez du fun dans votre stack Agile @leblond_c

    ×