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 Ges?on des Builds Ges?on des déploiements Ges?on Agile du produit Git, SVN, Mercurial, Perforce, Clear Case, TFVC, Manuel Ant, Maven, MSBuild, NuGet, Jenkins, Team City, Team Build.. Manuel Chef, Puppet, Deploy it, Azure, MS Release Management, Manuel Trello, Jira, Redmine, Asana, BaseCamp, VSO/ TFS, Manuel Ges?on des tests et qualité Ges?on de la surveillance Collabora?on BDD, ATDD, TDD Analyse de code Pairing, Pull request, Code reviews QC, Test Manag. New Relic, Zabbix, AppDynamix, System Center, Applica?on Insights, 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 Appli A Accessible via librairies clientes Etendue par des Etendue Plug- Ins Etendue par et par des des Plug- Ins et extensions Plug- Ins extensions et extensions Synchronizer 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
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
Les apports des nouveaux standards du Web Basic Authen. OAuth Tokens OAuth Tokens OAuth Tiers OAuth Tokens Basic Authen. Appli A API REST Events Events API REST Appli B Hooks Hooks Extensions light (HTML, Javascript) Extensions light (HTML, Javascript)
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 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é hnps://hubot.github.com/
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