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

Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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.

Page 2: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

Merci à nos partenaires et sponsors!

13/11/2014  

Page 3: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

 

Page 4: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

Page 5: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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.  

Page 6: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

…  

•  …  

Page 7: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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/    

Page 8: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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    

Page 9: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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.  

Page 10: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

Page 11: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

Page 12: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

Page 13: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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.    

Page 14: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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.  

Page 15: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

Page 16: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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.  

Page 17: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

Page 18: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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    

Page 19: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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  

Page 20: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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é  

Page 21: Mastackd’oulsagiles, tout#un#programme#!atmrs.esprit-agile.com/wp-content/uploads/2014/05/AT2014...CédricLeblondMeris ’ Consultantsur’l’ALMetTFS’depuis’5’ans’ ’

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