SlideShare a Scribd company logo
1 of 14
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.
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
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.
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
…
• …
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
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
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
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
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.
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
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
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
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é
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

More Related Content

What's hot

L'Obeya - Agile France 2015
L'Obeya - Agile France 2015L'Obeya - Agile France 2015
L'Obeya - Agile France 2015Operae Partners
 
How to fail at benchmarking?
How to fail at benchmarking?How to fail at benchmarking?
How to fail at benchmarking?Pierre Laporte
 
Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?Romain Couturier
 
Le scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheurLe scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheursebastien_fournel
 
Scrum, comment tomber dans le panneau
Scrum, comment tomber dans le panneauScrum, comment tomber dans le panneau
Scrum, comment tomber dans le panneauRomain Couturier
 
SkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipe
SkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipeSkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipe
SkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipeBenoit Fillon
 
Formation agile - Certification Professional Scrum Product Owner
Formation agile - Certification Professional Scrum Product OwnerFormation agile - Certification Professional Scrum Product Owner
Formation agile - Certification Professional Scrum Product OwnerNovUp
 
Agiliser un département Marketing d'une société de conseil
Agiliser un département Marketing d'une société de conseilAgiliser un département Marketing d'une société de conseil
Agiliser un département Marketing d'une société de conseilPublicis Sapient Engineering
 
No scrum no win atbx 2015 v1.0
No scrum no win   atbx 2015 v1.0No scrum no win   atbx 2015 v1.0
No scrum no win atbx 2015 v1.0Olivier Patou
 
Xebicon REX Société Générale agile chez les ops
Xebicon REX Société Générale agile chez les opsXebicon REX Société Générale agile chez les ops
Xebicon REX Société Générale agile chez les opsClément Rochas
 
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existantsMise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existantsNicolas De Boose
 
Formation agile - Certification Professional Scrum Master
Formation agile - Certification Professional Scrum MasterFormation agile - Certification Professional Scrum Master
Formation agile - Certification Professional Scrum MasterNovUp
 
Meetup : De l'agilité de la DSI à l'agile Marketing
Meetup : De l'agilité de la DSI à l'agile MarketingMeetup : De l'agilité de la DSI à l'agile Marketing
Meetup : De l'agilité de la DSI à l'agile MarketingBuy The Way
 
Comment se préparer pour les certifications Salesforce
Comment se préparer pour les certifications SalesforceComment se préparer pour les certifications Salesforce
Comment se préparer pour les certifications SalesforceDoria Hamelryk
 
Preparation et certification PSM Niv1
Preparation et certification PSM Niv1 Preparation et certification PSM Niv1
Preparation et certification PSM Niv1 Jean-Luc MAZE
 
ALM et Agilite : la convergence
ALM et Agilite : la convergenceALM et Agilite : la convergence
ALM et Agilite : la convergenceLucian Precup
 

What's hot (20)

L'Obeya - Agile France 2015
L'Obeya - Agile France 2015L'Obeya - Agile France 2015
L'Obeya - Agile France 2015
 
Scrum cook and go
Scrum cook and goScrum cook and go
Scrum cook and go
 
How to fail at benchmarking?
How to fail at benchmarking?How to fail at benchmarking?
How to fail at benchmarking?
 
XebiCon'17 : Agile Smells - Julien Rossignol
XebiCon'17 : Agile Smells - Julien RossignolXebiCon'17 : Agile Smells - Julien Rossignol
XebiCon'17 : Agile Smells - Julien Rossignol
 
Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?
 
Le scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheurLe scrum master, metamorphe du bonheur
Le scrum master, metamorphe du bonheur
 
Scrum, comment tomber dans le panneau
Scrum, comment tomber dans le panneauScrum, comment tomber dans le panneau
Scrum, comment tomber dans le panneau
 
SkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipe
SkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipeSkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipe
SkillValue Startup Weekend Future Of Work - Mise en place Scrum dans une équipe
 
Formation agile - Certification Professional Scrum Product Owner
Formation agile - Certification Professional Scrum Product OwnerFormation agile - Certification Professional Scrum Product Owner
Formation agile - Certification Professional Scrum Product Owner
 
Agiliser un département Marketing d'une société de conseil
Agiliser un département Marketing d'une société de conseilAgiliser un département Marketing d'une société de conseil
Agiliser un département Marketing d'une société de conseil
 
Agile Tour 2016 @ Lille
Agile Tour 2016 @ LilleAgile Tour 2016 @ Lille
Agile Tour 2016 @ Lille
 
No scrum no win atbx 2015 v1.0
No scrum no win   atbx 2015 v1.0No scrum no win   atbx 2015 v1.0
No scrum no win atbx 2015 v1.0
 
Xebicon REX Société Générale agile chez les ops
Xebicon REX Société Générale agile chez les opsXebicon REX Société Générale agile chez les ops
Xebicon REX Société Générale agile chez les ops
 
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existantsMise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existants
 
Formation agile - Certification Professional Scrum Master
Formation agile - Certification Professional Scrum MasterFormation agile - Certification Professional Scrum Master
Formation agile - Certification Professional Scrum Master
 
Meetup : De l'agilité de la DSI à l'agile Marketing
Meetup : De l'agilité de la DSI à l'agile MarketingMeetup : De l'agilité de la DSI à l'agile Marketing
Meetup : De l'agilité de la DSI à l'agile Marketing
 
Comment se préparer pour les certifications Salesforce
Comment se préparer pour les certifications SalesforceComment se préparer pour les certifications Salesforce
Comment se préparer pour les certifications Salesforce
 
Preparation et certification PSM Niv1
Preparation et certification PSM Niv1 Preparation et certification PSM Niv1
Preparation et certification PSM Niv1
 
#11 rex
#11 rex#11 rex
#11 rex
 
ALM et Agilite : la convergence
ALM et Agilite : la convergenceALM et Agilite : la convergence
ALM et Agilite : la convergence
 

Viewers also liked

Safevsspotify 150407085000-conversion-gate01
Safevsspotify 150407085000-conversion-gate01Safevsspotify 150407085000-conversion-gate01
Safevsspotify 150407085000-conversion-gate01Moitié Benjamin
 
Personal Kanban @ Agile Tour Lille
Personal Kanban   @ Agile Tour LillePersonal Kanban   @ Agile Tour Lille
Personal Kanban @ Agile Tour LilleGuillaume LOURS
 
Formation des espaces de coworking Nantais à Slack
Formation des espaces de coworking Nantais à SlackFormation des espaces de coworking Nantais à Slack
Formation des espaces de coworking Nantais à Slackremymarrone
 
Guide d'usage #2 Slack
Guide d'usage #2 SlackGuide d'usage #2 Slack
Guide d'usage #2 Slackagence Ondine
 
Introduction to slack and how my team used it
Introduction to slack and how my team used itIntroduction to slack and how my team used it
Introduction to slack and how my team used itMuchamad Ishaq Z
 
Formation agile - Devenir un leader agile
Formation agile - Devenir un leader agileFormation agile - Devenir un leader agile
Formation agile - Devenir un leader agileNovUp
 
Le manager agile : un père, un héros, un coach ou un bourreau?
Le manager agile : un père, un héros, un coach ou un bourreau?Le manager agile : un père, un héros, un coach ou un bourreau?
Le manager agile : un père, un héros, un coach ou un bourreau?Benjamin Cabanne
 
Lean Agile Kanban Guide du Routard 2014
Lean Agile Kanban Guide du Routard 2014Lean Agile Kanban Guide du Routard 2014
Lean Agile Kanban Guide du Routard 2014Christophe Keromen
 
Estimation et planification Agile
Estimation et planification AgileEstimation et planification Agile
Estimation et planification AgileYannick Quenec'hdu
 

Viewers also liked (9)

Safevsspotify 150407085000-conversion-gate01
Safevsspotify 150407085000-conversion-gate01Safevsspotify 150407085000-conversion-gate01
Safevsspotify 150407085000-conversion-gate01
 
Personal Kanban @ Agile Tour Lille
Personal Kanban   @ Agile Tour LillePersonal Kanban   @ Agile Tour Lille
Personal Kanban @ Agile Tour Lille
 
Formation des espaces de coworking Nantais à Slack
Formation des espaces de coworking Nantais à SlackFormation des espaces de coworking Nantais à Slack
Formation des espaces de coworking Nantais à Slack
 
Guide d'usage #2 Slack
Guide d'usage #2 SlackGuide d'usage #2 Slack
Guide d'usage #2 Slack
 
Introduction to slack and how my team used it
Introduction to slack and how my team used itIntroduction to slack and how my team used it
Introduction to slack and how my team used it
 
Formation agile - Devenir un leader agile
Formation agile - Devenir un leader agileFormation agile - Devenir un leader agile
Formation agile - Devenir un leader agile
 
Le manager agile : un père, un héros, un coach ou un bourreau?
Le manager agile : un père, un héros, un coach ou un bourreau?Le manager agile : un père, un héros, un coach ou un bourreau?
Le manager agile : un père, un héros, un coach ou un bourreau?
 
Lean Agile Kanban Guide du Routard 2014
Lean Agile Kanban Guide du Routard 2014Lean Agile Kanban Guide du Routard 2014
Lean Agile Kanban Guide du Routard 2014
 
Estimation et planification Agile
Estimation et planification AgileEstimation et planification Agile
Estimation et planification Agile
 

Similar to Ma stack d'outils agiles, tout un programme !

Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Stéphane Traumat
 
SharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationSharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationMicrosoft Technet France
 
Bien comprendre le nouveau modèle Apps de SharePoint 2013
Bien comprendre le nouveau modèle Apps de SharePoint 2013Bien comprendre le nouveau modèle Apps de SharePoint 2013
Bien comprendre le nouveau modèle Apps de SharePoint 2013Louis-Philippe Lavoie
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...PimpMySharePoint
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Peak Ace
 
Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Gilles Pommier
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
Développer avec les technologies Microsoft : productivité et open source
Développer avec les technologies Microsoft : productivité et open sourceDévelopper avec les technologies Microsoft : productivité et open source
Développer avec les technologies Microsoft : productivité et open sourceJulien Chable
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetFrédéric Vandenbriele
 
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...Sébastien Levert
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMGrégory Ott
 
MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer Jason De Oliveira
 
Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Gregory Renard
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 

Similar to Ma stack d'outils agiles, tout un programme ! (20)

Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?
 
SharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle générationSharePoint Framework : le développement SharePoint nouvelle génération
SharePoint Framework : le développement SharePoint nouvelle génération
 
Bien comprendre le nouveau modèle Apps de SharePoint 2013
Bien comprendre le nouveau modèle Apps de SharePoint 2013Bien comprendre le nouveau modèle Apps de SharePoint 2013
Bien comprendre le nouveau modèle Apps de SharePoint 2013
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
 
Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Développer avec les technologies Microsoft : productivité et open source
Développer avec les technologies Microsoft : productivité et open sourceDévelopper avec les technologies Microsoft : productivité et open source
Développer avec les technologies Microsoft : productivité et open source
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
SharePoint Summit 2012 - Gouvernance et évolution d'une équipe de développeme...
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer MEGA International: Junior .NET Developer
MEGA International: Junior .NET Developer
 
Presentation Kantree et Méthodologies
Presentation Kantree et MéthodologiesPresentation Kantree et Méthodologies
Presentation Kantree et Méthodologies
 
Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)Wygday Session PléNièRe (1)
Wygday Session PléNièRe (1)
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 

More from Cédric Leblond

Migrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaMigrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaCédric Leblond
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
Bon App - Création collaborative de maquettes efficaces
Bon App -  Création collaborative de maquettes efficacesBon App -  Création collaborative de maquettes efficaces
Bon App - Création collaborative de maquettes efficacesCédric Leblond
 
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...Cédric Leblond
 
Agile Tour 2012 Paris - Nouveaux Outils Agile MS
Agile Tour 2012 Paris - Nouveaux Outils Agile MS Agile Tour 2012 Paris - Nouveaux Outils Agile MS
Agile Tour 2012 Paris - Nouveaux Outils Agile MS Cédric Leblond
 
Je démarre avec TFS 2012
Je démarre avec TFS 2012Je démarre avec TFS 2012
Je démarre avec TFS 2012Cédric Leblond
 
Actionner ses processus qualité avec Visual Studio ALM
Actionner ses processus qualité avec Visual Studio ALMActionner ses processus qualité avec Visual Studio ALM
Actionner ses processus qualité avec Visual Studio ALMCédric Leblond
 

More from Cédric Leblond (7)

Migrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaMigrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds Java
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Bon App - Création collaborative de maquettes efficaces
Bon App -  Création collaborative de maquettes efficacesBon App -  Création collaborative de maquettes efficaces
Bon App - Création collaborative de maquettes efficaces
 
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
TechDays 2013 - Développer avec Visual Studio et TFS 2012 ses applications Wi...
 
Agile Tour 2012 Paris - Nouveaux Outils Agile MS
Agile Tour 2012 Paris - Nouveaux Outils Agile MS Agile Tour 2012 Paris - Nouveaux Outils Agile MS
Agile Tour 2012 Paris - Nouveaux Outils Agile MS
 
Je démarre avec TFS 2012
Je démarre avec TFS 2012Je démarre avec TFS 2012
Je démarre avec TFS 2012
 
Actionner ses processus qualité avec Visual Studio ALM
Actionner ses processus qualité avec Visual Studio ALMActionner ses processus qualité avec Visual Studio ALM
Actionner ses processus qualité avec Visual Studio ALM
 

Ma stack d'outils agiles, tout un programme !

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

Editor's Notes

  1. 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.
  2. 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
  3. Outils pas toujours utilisés Pq? Couverture fonctionnelle incomplète Utilisation de plusieurs (trop) outils, avec des synchronisations parfois compliquées (les fameuses moulinettes) PQ cela change aujourd’hui ? Protocole d’échange standard (Oauth, APIs REST) Ex avec Zapier Convaincus … ou pas ? Comment choisir son outils principal (minimum de survie Oauth, APIs REST, + outils d’interfacages sans code) Exemples avec Trello Limites (la synchro)  parfois il faut ecrire un peu de code (ex avec Target Process) D’autres possibilités avec Hubot
  4. Legacy Old Basic Apps
  5. 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
  6. 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
  7. 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.
  8. Legacy Old Basic Apps
  9. 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.
  10. Legacy Old Basic Apps
  11. 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
  12. Exemple avec les web hooks de visualstudio vers Trello et le Mashup avec ZenDesk pour la synchro.
  13. Legacy Old Basic Apps
  14. 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.
  15. Ce que l’on a vu. Ce qu’il faut retenir.