Devoxx 2016 - L'odyssée du Continuous Delivery

Post on 26-Jan-2017

571 views 0 download

Transcript of Devoxx 2016 - L'odyssée du Continuous Delivery

#DevoxxFR#DevoxxFR

L’odyssée du Continuous Delivery

Nicolas BourgeoisDavid Caramelo @David_CarameloDiego Lemos @dlresende

1

#DevoxxFR#DevoxxFR

Hello

2

Nicolas BourgeoisIT Manager domaine finance

DSI de GBIS

David CarameloTech Lead / Scrum Master

Diego LemosTech coach

#DevoxxFR

Au départ...

3

Techno : Java, JEE, JSF 1.2, Rich Faces, Oracle

Orga : 2 équipes mixtes Paris / Bangalore (Inde) orientées composant

Mise en production : 1 fois par trimestre

Et quelques applications datant d’il y a 10 ans...

#DevoxxFR 4

Pourquoi maintenant ?

Coté Métier :

● Un SI “Financement” vieillissant (2006 - 2008)

● Un business qui repart mais l’incertitude demeure

● Beaucoup de processus réglementaires non informatisés

#DevoxxFR 5

Mais aussi...

Coté DSI :

Évolution du niveau d’exigence des utilisateurs (iPad, iPhone, etc.)

Département IT en pleine transformation agile / continuous delivery

Volonté de s’inspirer des géants du web & Fintech

#DevoxxFR 6

Nos challenges

#DevoxxFR

Mais attention !

7

● Maintien du service● Rupture technique● Éviter l’effet big bang● Se “fondre dans la masse”● Répondre aux besoins des utilisateurs

#DevoxxFR 8

#DevoxxFR#DevoxxFR 9

Vers le Continuous Delivery et au-delà...

#DevoxxFR

Les fondations

10

TDDBDD

#DevoxxFR

Le fonctionnement

11

Demandes

PO

Sprint Demo

Product Backlog

Sprint Backlog

Poker Planning Retro

#DevoxxFR

Le whiteboard

12

#DevoxxFR

Avant : component team

Application A

BAs, TLs / Dev, PMs… BAs, TLs / Dev, PMs…

Application B

13

#DevoxxFR

Maintenant : feature team !

14

#DevoxxFR#DevoxxFR

Mais comment crée-t-on des feature

teams ?

15

#DevoxxFR

L’équipe lab

16

TL PO UX QA DEV DEVDEVDEV

DEV DEV DEVQAUXPO

#DevoxxFR

Découpage en deux équipes

17

TL PO UX QA DEV DEVDEVDEV

DEV DEV DEVQAUXPOTL DEV

#DevoxxFR

Un produit unique

18

TL PO UX QA DEV DEVDEVDEV

TL PO UX QA DEV DEVDEVDEV

#DevoxxFR

Réduire la boucle de feedback

19

#DevoxxFR

could you help me with my application?

20

mother of god!

#DevoxxFR 2

1

#DevoxxFR 2

2

#DevoxxFR 2

3

#DevoxxFR#DevoxxFR 2

4

La complexité accidentelle

#DevoxxFR#DevoxxFR

expectation reality

25

Il fallait revoir nos attentes

#DevoxxFR#DevoxxFR

Stratégie de tests

unitaire

intégration

e2e

26

e2e

intégration

unit

e2e

intégration

unit

#DevoxxFR

On paie la dette technique

27

80 20fonctionnel technique

#DevoxxFR 2

8

#DevoxxFR

Réduire la boucle de feedback

29

#DevoxxFR

42 branches

30

#DevoxxFR

62 branches

31

#DevoxxFR

62 branches

32

#DevoxxFR

26 branches

33

#DevoxxFR

>192 branches !

34

#DevoxxFR

Branching hell

35

#DevoxxFR

Trunk Based Development

36

DEV DEV

DEV

code freeze livraison

DEV

release branch

trunk

#DevoxxFR 3

7

#DevoxxFR

Réduire la boucle de feedback

38

#DevoxxFR

Réduire la boucle de feedback

39

#DevoxxFR#DevoxxFR

Qui livre quand ?

40

#DevoxxFR#DevoxxFR

Release Train

41

#DevoxxFR

it n it n+2 it n+4it n+3it n+1

3 semaines

non reg uat certif

42

time to deliver : 12 semaines !

development development

Les applications legacy

#DevoxxFR

developmentvalidatio

n

developmentvalidatio

n

developmentvalidatio

n

developmentvalidatio

n

time to deliver: 3 semaines

Nouvelle plateforme

43

it n it n+2 it n+4it n+3it n+13 semaines

#DevoxxFR

it n it n+2 it n+4it n+3it n+1

3 semaines

legacy

nouvelle plateforme

developmentvalidatio

n

developmentvalidatio

n

developmentvalidatio

n

developmentvalidatio

ndevelopment non reg uat certifdevelopment

Nouvelle plateforme + legacy

44

#DevoxxFR 4

5

#DevoxxFR

Calendrier de livraisons

46

#DevoxxFR 47

#DevoxxFR

Fonctionnalités à livrer

48

#DevoxxFR 4

9

Applications à livrer

#DevoxxFR 50

Tâches pour chaque livraison

#DevoxxFR 5

1

#DevoxxFR 52

Code freeze ?! MAIS NOUS N’AVONS PAS

ENCORE FINI !!!

#DevoxxFR

Réduire la boucle de feedback

53

#DevoxxFR

Pas le droit à l’erreur

54

#DevoxxFR

Feature Toggle

55

#DevoxxFR#DevoxxFR

A B

C

A B

C

B

56

team 1

team 2

BC

C

#DevoxxFR

/* */

Toggle 1.0

57

#DevoxxFR

Toggle 2.0

58

#DevoxxFR

Toggle 3.0 (en cours)

59

#DevoxxFR

Réduire la boucle de feedback

60

#DevoxxFR 61

#DevoxxFR

Environment pipeline

62

intégration homologation UAT pré-production production

1 push = 1 deploynombreux

déploiements/jourteste le déploiementfeedback très rapide

1 deploy/jourplus stabledernières

fonctionnalités disponibles

1 deploy/sprintbranche de release

validation de la part de l’utilisateur

validation de l’équipe Ops

validation de l’équipe Support

c’est là ça se pa$$eze place to be, quoi

#DevoxxFR#DevoxxFR

Après tout cela, la question de la pérennité

se pose

63

#DevoxxFR 6

4

#DevoxxFR#DevoxxFR

Recrutement 2.0

65

4 principes :● les développeurs recrutent leurs

pairs● état d’esprit plus important que

telle ou telle techno● créer une nouvelle culture basée

sur un cercle vertueux● tu sais coder, prouve-le !

#DevoxxFR 66

#DevoxxFR#DevoxxFR

Et les résultats ?

67

#DevoxxFR 6

8

Qu’est-ce que l’on a gagné ?

● Nouvelle culture● Prise de conscience de la valeur

métier des demandes● Amélioration de la qualité globale● Amélioration du TTM

#DevoxxFR 69

Où sommes-nous maintenant ?construire

le bon produit

construire correctemen

t le produit

construire rapideme

nt le produit

endroit idéal

aujourd’hui nous

sommes ici

#DevoxxFR#DevoxxFR

C’est fini ?

70

#DevoxxFR 7

1

Nouveaux défis● Rendre le TTM pérenne dans le temps● Mieux mesurer la valeur métier● Mieux anticiper les problèmes● Explorer le comportement utilisateur● Reproduire le même modèle à

l’étranger● Renforcer la culture

#DevoxxFR 7

2

Comment ?

● Infra as code, déploiement automatisé● Blue/Green deployment● Culture DevOps● Monitoring● Plus d’automatisation des tests (tests

de chaîne/distribués)

#DevoxxFR#DevoxxFR 7

3

Devops

#DevoxxFR#DevoxxFR

Merci / Thank you

74

#DevoxxFR#DevoxxFR

Questions ?

75