Ma stack d’outils agiles,
tout un programme !
OU COMMENT BÉNÉFICIER DES TECHNOLOGIES GRAND PUBLIC
POUR AMÉLIORER ET OPTIMI...
Cédric Leblond Meritis
Consultant sur l’ALM et TFS depuis 5 ans
MVP Visual Studio ALM 2014
MCTS Team Foundation Server
CSM...
LOB Apps tout une histoire!
LOB Apps (Lines Of Business Applications) est une équipe de développement transverse.
Ils sont...
Lob Apps imagine sa stack d’outils
Gestion des
sources
• Git, SVN,
Mercurial,
Perforce, Clear
Case, TFVC, …
• Manuel
Gesti...
Gestion des
sources
Gestion des
builds
Gestion Agile
du produit
ou
Gestion des
déploiements
Gestion Agile
du produit
ou
Ge...
Pourquoi les outils sont parfois peu utilisés ?
Outil pas directement accessible
Fonctionnalités incomplètes ou pas suffis...
Extension et synchronisation “old school”
AppliAAccessible via
librairies clientes
Synchronizer
3rd party
aka moulinette
•...
Exemples plus modernes pour notre Stack
Zoom sur Zapier
◦ Outil permettant des échanges simples
◦ Permet des “Zap” entre p...
OAuthTiers
Les apports des nouveaux standards du Web
OAuth
Tokens
AppliA
APIREST
OAuth
Hooks
Extensions light
(HTML, Javas...
Comment choisir ?
Pour éviter le mille feuille, choisissez une application principale
fournissant :
• Un maximum des fonct...
Les limites du prêt à consommer
Avec les interfaces déjà préparées, il peut vous manquer :
◦ Le transfert de champs spécif...
Création de code pour l’intégration
Exemple en C# d’intégration de TFS avec Target Process :
storyToUpdate.Name = "Ma Stor...
Adoptez un robot nommé Hubot
https://hubot.github.com/
Hubot est un robot conçu pour automatiser le chat. Il sait :
◦ Lanc...
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
s...
Prochain SlideShare
Chargement dans…5
×

Ma stack d'outils agiles, tout un programme !

1 208 vues

Publié le

Pour le développement, nous utilisons tous des outils. Leur nombre et surtout leur intégration peuvent même devenir un vrai casse tête. Surtout s'il vous faut supporter des technologies parfois très distinctes ... Je vous propose de monter une plateforme entièrement intégrée et flexible avec Visual Studio Online. Intégrée car toutes les données y sont disponibles. Flexible car ses API permettent de l'étendre avec vos outils agiles préférés (Trello, Zendesk, Jenkins, Jira, ...) et de l’adapter ainsi à vos besoins

Publié dans : Technologie
  • Soyez le premier à commenter

Ma stack d'outils agiles, tout un programme !

  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. 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
  3. 3. 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.
  4. 4. 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 … • …
  5. 5. 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 tests ? 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 surveillance ? Gestion des sources Gestion des builds Gestion Agile du produit ou Gestion des déploiements Gestion Agile du produit ou Gestion des déploiements Gestion des tests ? Collaboration ? Gestion de la surveillance ? LOB Apps créé sa RoadMap 3 mois
  6. 6. 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
  7. 7. Extension et synchronisation “old school” AppliAAccessible via librairies clientes Synchronizer 3rd party aka moulinette • Techno imposée par Appli A • intégration avec l’Appli B peu fiable AppliB Accessible via WebServices peu documentés ou uniquement par l’interface web Difficultés de mise en place Lourd à maintenir à chaque mise à jour Etendue par des Plug-Ins et extensions Etendue par des Plug-Ins et extensions Etendue par des Plug-Ins et extensions
  8. 8. 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
  9. 9. OAuthTiers Les apports des nouveaux standards du Web OAuth Tokens AppliA APIREST OAuth Hooks Extensions light (HTML, Javascript) Tokens Events Basic Authen. AppliB APIREST OAuth Hooks Extensions light (HTML, Javascript) Tokens Events Basic Authen.
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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é
  14. 14. 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

×