Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Ma stack d’ou,ls agiles, tout un programme ! OU COMMENT BÉNÉFICIER DES TECHNOLOGIES GRAND PUBLIC POUR AMÉLIORER ET OPTIMISER MES OUTILS LOGICIELS.
Merci à nos partenaires et sponsors!
13/11/2014
Cédric Leblond Meri,s Consultant sur l’ALM et TFS depuis 5 ans
MVP Visual Studio ALM 2014
MCTS Team Founda?on Server
CSM Cer?fied ScrumMaster
CSPO Cer?fied Scrum Product Owner
Accompagne les équipes de développements dans l’industrialisa?on et l’op?misa?on de leur environnement, processus et ou?ls agiles
@leblond_c
hNp://cedricleblond.blogspot.com
Conseil en systèmes d’informa?on pour la finance de marché
Accompagne ses clients sur tous les mé?ers : ◦ Fonc?onnel ◦ Technologique ◦ Méthodologique 5ème Best Workplaces France 2013 de moins de 500 salariés
Agenda Stack d’ou?ls Agile, de quoi parlons-‐nous ? Soucis rencontrés dans l’adop?on
Possibilités d’interac?ons entre ou?ls Intégrer de nouveaux ou?ls à ma stack
LOB Apps (Lines Of Business Applica?ons) est une équipe de développement transverse de 10 personnes qui main?ent actuellement plus de 50 applica?ons web pour des mé?ers très différents. L’équipe a démarrée depuis 10 ans, les clients sont rela?vement sa?sfaits. L’architecture des applica?ons web et leur ou?ls de développements et intégra?on 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’ou?ls.
Stack d’ou,ls Ges?on des sources
• Git, SVN, Mercurial, Perforce, Clear Case, TFVC, …
• Manuel
Ges?on des Builds
• Ant, Maven, MSBuild, NuGet, Jenkins, Team City, Team Build..
• Manuel
Ges?on des déploiements
• Chef, Puppet, Deploy it, Azure, MS Release Management, …
• Manuel
Ges?on Agile du produit
• Trello, Jira, Redmine, Asana, BaseCamp, VSO/TFS, …
• Manuel
Ges?on des tests et qualité
• BDD, ATDD, TDD • Analyse de code • Pairing, Pull request, Code reviews
• QC, Test Manag.
Ges?on de la surveillance
• New Relic, Zabbix, AppDynamix, System Center, Applica?on Insights, …
Collabora?on
• Campfire, HipChat, Slack, Team rooms
• Face à face
…
• …
Comme leur technologie est essen?ellement (90%) basée sur .Net, LOB Apps décide de d’u?liser Visual Studio Online. L’équipe a découvert qu’il pouvait l’héberger en Europe et l’un d’eux est tombé sur un post très enthousiaste d’un néophyte .
hNp://blogs.msdn.com/b/bharry/archive/2014/10/28/visual-‐studio-‐online-‐is-‐in-‐europe.aspx hNp://theagilecoder.wordpress.com/2014/04/21/how-‐visual-‐studio-‐online-‐won-‐me-‐over-‐in-‐under-‐90-‐minutes/
Pourquoi les ou,ls sont parfois peu u,lisés ? Ou?l pas directement accessible
Fonc?onnalités incomplètes ou pas suffisamment poussées
U?lisa?on de plusieurs / trop d’ou?ls ◦ Créé un rejet ◦ Demande des synchronisa?ons compliquées
LOB Apps a développé une synchronisa?on entre leur ou?l de bug tracking Man?s et l’ou?l groupe de ges?on des changements. L’intégra?on n’est pas complète et les plantages sont réguliers, suite aux misies à jours de l’ou?l groupe le plus souvent.
Extension et synchronisa,on “old school” Ap
pli A Accessible via
librairies clientes
Synchron
izer 3rd party
aka moulineNe
• Techno imposée par Appli A
• intégra?on avec l’Appli B peu fiable
Appli B
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
LOB Apps a une nouvelle applica?on à développer, ils en profitent bien-‐sûr pour u?liser une nouvelle architecture technique. Mais LOB Apps devra coordonner son travail avec l’équipe Marke?ng pour une nouvelle offre. L’équipe Marke?ng a l’habitude d’u?liser Trello et veut suivre aussi l’avancement de l’équipe sur la par?e applica?on. Le sujet étant très intéressant, LOB Apps décide de prendre en charge l’effort de synchronisa?on
Exemples plus modernes pour notre Stack
Zoom sur Zapier ◦ Ou?l permeNant des échanges simples ◦ Permet des “Zap” entre plus de 500 applica?ons différentes ◦ Créa?on des interac?ons en?èrement guidées
Exemples de « Zap » : ◦ Lors de la créa?on d’une card dans Trello à Créer une task dans Todoist ◦ Lors de la créa?on 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
OAu
th Tiers
Les apports des nouveaux standards du Web
OAuth
Tokens
Appli A
API R
EST
OAuth
Hooks
Extensions light (HTML, Javascript)
Tokens
Events
Basic Authen.
Appli B
API R
EST
OAuth
Hooks
Extensions light (HTML, Javascript)
Tokens
Events
Basic Authen.
LOB Apps a un détecté un souci, ils ont du mal à gérer les demandes de support de leurs clients qui leur arrivent par mail, téléphone, messagerie instantané. L’équipe décide de s’équiper d’une solu?on de helpdesk.
Comment choisir ?
Pour éviter le mille feuille, choisissez une applica?on principale fournissant : • Un maximum des fonc?onnalité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 ou?ls complémentaires
Le groupe a racheté une nouvelle société aux Etats-‐Unis. LOB Apps va se synchroniser avec l’équipe américaine pour les futurs développements. L’équipe américaine a bien-‐sûr l’habitude de travailler avec une autre Stack d’ou?ls. En échangeant avec ceNe nouvelle équipe, il décident ensemble de prendre le meilleur des deux et limiter ainsi les changements pour chaque équipe. Cela conduit à intégrer Visual Studio Online avec un autre ou?l de ges?on agile : Target Process.
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 synchronisa?on bidirec?onnelle
Bref l’implémenta?on ne suit pas toujours vos envies …
Ecrivez un peu de code pour les suivre : ◦ Ecrire un ou?l en?èrement personnalisé ◦ U?liser une structure d’applica?on extensible comme Zapier, ou Hubot
Créa,on de code pour l’intégra,on Exemple en C# d’intégra?on 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égra?on : ◦ TFS : hNp://www.visualstudio.com/en-‐us/integrate/explore/explore-‐vso-‐vsi ◦ Target Process : hNp://dev.targetprocess.com/rest/gexng_started
Le groupe décide de monter une troisième équipe en Inde pour LOB Apps afin d’accompagner son développement dans la région. La coordina?on entre les équipes devient alors très compliquée car les mee?ngs en commun peuvent se tenir qu’à certaines heures et en horaires décalés. Les équipes doivent trouver un moyen d’échanger les infos quo?diennes et décide d’u?liser un chat
Adoptez un robot nommé Hubot
hNps://hubot.github.com/
Hubot est un robot conçu pour automa?ser le chat. Il sait : ◦ Lancer une build, déployer un site web, ◦ Traduire, rechercher des images, une adresse, ◦ Conver?r, … et ce vous imaginerez
Github l’a écrit pour sa propre u?lisa?on 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, OpenShiz, Azure, …
Hubot a 2 par?es 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é
Conclusion
CE QUE L’ON A VU
Les récents standards d’échanges OAuth, API REST, Hooks
Le limites du mashup au niveau de la synchronisa?on
L’u?lisa?on de hubot comme automate universel
CE QU’IL FAUT RETENIR
Choisissez bien votre applica?on principale ◦ intègre par défaut un maximum d’ou?ls ◦ permet des extensions avec les récents standards
L’intégra?on « sans code » d’ou?ls pro
Dis?llez et infusez du fun dans votre stack Agile
@leblond_c