Skip to content

Latest commit

 

History

History
817 lines (484 loc) · 12.1 KB

slides.md

File metadata and controls

817 lines (484 loc) · 12.1 KB

slidenumbers: true

#[fit]15 minutes avec l'équipe Caradisiac

^ G-S Bonjour; voici 15 minutes avec l'équipe Caradisiac

^ S discours off pates


fit

^ [G] Maintenant, je vous invite à rechercher Caradisiac, non pas sur Google Images parce que vous allez avoir du NSFW mais plutôt sur Google Play et sur l'App Store.


TOO LONG; WON'T LISTEN:

  • Pôle d'Expertise Mobilité - Xebia Studio
  • Sprints Scrum d'une semaine
  • Services Web gérés en interne par le client
  • La recette gérée par le client
  • Application sortie et bien notée

^ [G] Mais ce qu'il faut retenir [citer]
Le projet s'est plutÔt bien déroulé dans l'ensemble malgré la non agilité évidente de notre PO qu'on a tenté de remettre sur le droit chemin à plusieurs reprises


Plan

^ [G] Le plan... Alors on a parlé de plein de trucs cools

<La flemme, Personne lit ça>


On se présente

https://twitter.com/viteinfinite

https://plus.google.com/+GautierMechling

^ [G] Et on va se présenter
Lui c'est Simone, il fait de l'iOS Et moi Gautier sur Android
On est consultant chez Xebia


Les besoins Android

Pôle d'Expertise Mobilité

^ [G] C'est un projet Studio supervisé par François Laurain
On a un interlocuteur de leur côté, le PO
J'ai pas trouvé de photo de notre PO, mais il ressemble un peu à un ours mignon donc voila, c'est lui


Les besoins Android

Pôle d'Expertise Mobilité

^ [G] Ou peut-être juste qu'il y avait pas le budget.

^ Au final Caradisiac c'est un contrat Studio avec CarAndBoat qui édite entre autres l'application LaCentrale sur 1 an où Xebia doit developper et maintenir leurs applications mobiles
C'est plutôt cool


Notre coach agile

inline

^ [G] Qui est l'heureux gagnant ?
D'ailleurs il est dans la salle ou pas ? (chercher dans la salle)
Non... normal on en avait pas En vrai on est le rêve des coachs agiles, l'équipe auto-organisée


Intro

Une chose pas plus mal c'est notre coach agile


Les besoins Android

^ S Allo? ipad Mamma envoyé 3kg de pâtes

^ [G] Pour Android, on est parti d'une application PhoneGap tellement pourrie qu'ils ont décidés de tout refaire de zéro

^ Et c'est pas plus mal


Les besoins iOS

^[S]


Les besoins iOS

original

^[S] Objectif c'était d'adapter l'application iPad à la taille de l'iPhone


Les besoins, recap

^[S] Le client voulait créer des applications comme celles-ci


La méthodo

^ [S]


La méthodo

Démo

^ [S]


La méthodo

Démo

^ [S]



La méthodo

La rétro

En fin de sprint

^ [S] et une rétro de fin sprint très intense



La méthodo

Daily

tous les jours

^ [S] Généralement on fait un daily tous les jours Avec plein de monde


La méthodo

Durée du sprint

1 semaine

^ [S]


La méthodo

Magic Cycle en V


^ [S]


La méthodo

Magic estimation

^ [S]


La méthodo

Pilotage avec eXceL

inline

^ [S] Oui Excel, l'outil agile


La méthodo

Pilotage avec XL

inline

^[S] Au niveau de la méthodo, on a pris le choix de tout piloter par Excel
[G]

  • "éxel", pas "ixel"

^[S]

  • et le déploiement chez le client est au top, dans le respect des meilleures méthodologies DevOps

^[G] Je le connais lui !


^[S] ...savoureux


Les outils : SonarQube

inline

^[S] La qualité du code de l'appli cliente ne nous preoccupe pas trop car le code des WS est [savoureux]


Les outils

inline

^[S]


Les outils : mam.xebia.fr

inline

^[S] Finalement le binaire est deploié sur la plateforme de distribution d'applications Xebia


Les outils : Node

inline

^[S] Nous avons mis en place un serveur de mock avec Node


Les outils : Spoon

inline

^[S]


Les outils : KIF

inline

^[S] et fonctionnels


Les outils : Testing

inline

^[S] executer les tests unitaires


Les outils : Jenkins

inline

^[S] À l'interieur d'un job Jenkins qui s'occupe de


Les outils

inline

^[S] Mais heureusement qu'on a des bons outils Notre usine logicielle recupère le code depuis BitBucket


La page de détail

original

^ [S] Pour la créer il faut récuperer du JSON...


La page de détail

original

^ [S] Comme par exemple dans cette page de détail


Les services web

fit

^ [G] Dans certains écrans de l'application, il faut appeler jusqu'à 9 services en même temps pour avoir les bonnes informations -STOP-


original

^ [G] Voila c'est cet espèce de truc super galère à parser qu'on a en permanence


original

^ [G] Non pas ça


Les services web

La compléxité

Actuellement

<result>
  <_connexion_db>OK</_connexion_db>
  <_erreurs/>
  <_data>
    <tag label="Clio 3" url="modele--renault-clio-3">
    <tag label="Renault" type="brand"/>
    <tag label="Clio" type="model"/>
    <logo path="/logos-ref/modele">modele--renault-clio-3.jpg</logo>
  </_data>
</result>

^ [G] En vérité c'est plutôt comme ça Il faut retrouver dans le XML plein de valeurs et les concaténer entre elles
[expliquer concatenation]
Et encore, on a simplifié pour l'exemple parce qu'en vrai c'est plutôt ça


Les services web

La compléxité

right

Idéalement

<model name="Renault Clio 3"
  image="logos-ref/modele/modele--
    renault-clio-3/S5-modele--renault-clio-3.jpg" />

^ [G] Et puis tant qu'à faire, autant les rendre super compliqués à utiliser
Idéalement pour l'écran suivant j'ai besoin d'un WS avec champ pour le nom du modèle : "Renault Clio 3" et l'url de l'image
Normal quoi


Les services web

Du XML qui n'en est pas

<commentaire>
  <line>
     Salut <smiley mnemo=":hello:"/> les gamins <smiley mnemo=":lol:"/> !
  </line>
</commentaire>

? Connaît pas

^ [G] En plus de ça leurs WS XML sont invalides
Ils contiennent des tags à des endroits qui ne devraient pas en contenir
Ça serait trop facile sinon


Les services web

  • REST-like (mais pas RESTful)
  • XML + JSON
  • content-type="text/plain"
  • Tous les services sont en XML
  • La moitié aussi dispo en JSON
  • 1 WS est en JSON uniquement

^ [G]

  • Leurs services web, on va dire qu'ils sont en REST
  • Avec un content-type incorrect sinon ça serait trop simple
  • Tous leurs services web sont en XML sauf 1
  • Du coup t'es obligé côté code de faire une stack qui gère à la fois XML et JSON

La recette

^ [G] Par contre un truc qu'on aime pas, c'est leurs Services Webs


La recette

^ [G] Mais bon c'est le client, c'est lui qui nous paye et du coup on l'aime bien quand même.


La recette

^ [G] Et me fait EXACTEMENT le même coup la semaine d'après


La recette

^ [G] Il teste que dalle pendant 1 mois, reporte la release parce qu'il teste le jour même


La recette

^ [G] Je me fais chier à sortir son app dans les temps (qui sont déjà ultra courts)


La recette

^ [G] Résultat : Release Android reportée d'un sprint
Vous imaginez ma réaction


La recette

^ [G] Ça c'est un peu la réaction de notre PO quand il s'est rendu compte qu'une story correspondait pas à ce qu'il attendait pendant cette recette. Bien sûr il avait pas écrit les BDD de ce qu'il souhaitait vraiment et avait validé la story il y a 1 mois de cela


La recette

^ [G] Et le jour de la release Sinon c'est pas drôle


La recette

[fit] 10 minutes

^ [G - S] "La recette : 10 minutes !"


La recette

1 sprint

1 jour

1 heure

10 minutes

^ [S]

^ [G] Oui


La recette

1 sprint

1 jour

1 heure

^ [S]

^ [G] Non


La recette

1 sprint

1 jour

^ [S]

^ [G] Non


La recette

1 sprint

^ [S] ...et nous on fait pas de recette d'un sprint

^ [G] Non


La recette

Nous sommes agiles !

^ [S] Nous sommes agiles...


Fin projet

^ [S]


La rétro

inline

^ [S] ...et la rétro de fin projet


[fit] ❤️

^ [S] ...comme nous aimons les pratiques agiles


Publicité

[fit] Caradisiac ❤️ Pub

^ [S] Eh oui, Caradisiac aime la pub


Publicité

original,inline

^[S] ...partout


Publicité

original,inline

^[S] ...partout


Publicité

original,inline

^[S] ...partout


Publicité

original,inline

^[S] Au fait... Il y a de la pub partout


^ [S] Une grande histoire d'amour... Mais comme beaucoup d'histoires d'amour, elles peuvent mal tourner


[fit] ❤️❤️❤️❤️❤️

[fit] Publicité

^ [S] Au fait la pub chez Caradisiac c'est plutôt grande histoire d'amour


[fit] ⭐⭐⭐⭐⭐

[fit] Publicité

^ [S] Dont la pub!


[fit] ⭐⭐⭐⭐⭐

^ [S] Les commentaires positifs c'est surtout grâce aux fonctionnalités exclusives de l'application


Commentaires positifs

inline fit inline fit inline fit

^ [S] Linette; le DP s'appelle Aline, probablement un homonyme

^ [G] Ou pas


Commentaires positifs

inline fit inline fit

^ [S] Voici d'ailleurs quelques commentaires sur les stores A tel point qu'elle apparaît même dans les captures d'écran du store


Les applis sur les Stores

inline fill inline fill

^ [S] Vous serez étonnés mais malgré l'icône nous avons même eu des commentaires positifs


L'appli / Android

inline fitinline fitinline fit

^ [S] Bannières dans les screenshots


L'appli / iOS

inline fitinline fit

^ [S]


Conclusions

^ [G] Qui a installé l'application ?

^ [S] Bon, personne. Ca fait plaisir, merci.


Merci

^ [G] Aujourd'hui, on va vous parler de Caradisiac, une application native de news auto (comme turbo ou auto plus) qu'on a réalisé et qu'on a sorti dernièrement


Merci

^ [G] Mais merci d'être venus si nombreux

^ [S] Même si vous aviez pas trop le choix

^ [G] Vous êtes vraiment un public formidable


Questions ?

^ [G] OK, On aura pas le temps pour les questions