Download - Agile france 2013 - Dette Technique

Transcript
Page 1: Agile france 2013 - Dette Technique

La dette technique

Francois Wauquier @wokierAurélien Pelletier @toutantic

#AgileFrance

Page 2: Agile france 2013 - Dette Technique

C'est la crise !

Page 4: Agile france 2013 - Dette Technique

3,93 % TEG FIXE

Page 5: Agile france 2013 - Dette Technique
Page 6: Agile france 2013 - Dette Technique
Page 7: Agile france 2013 - Dette Technique
Page 8: Agile france 2013 - Dette Technique
Page 9: Agile france 2013 - Dette Technique

Entropie logicielle

Entropie

Temps

Page 10: Agile france 2013 - Dette Technique

Entropie logicielle

Entropie

Temps

Page 11: Agile france 2013 - Dette Technique

Entropie logicielle

Entropie

Temps

Page 12: Agile france 2013 - Dette Technique
Page 13: Agile france 2013 - Dette Technique

Vélocité / Dette Technique

Temps

Page 14: Agile france 2013 - Dette Technique

Vélocité / Dette Technique

Temps

Page 15: Agile france 2013 - Dette Technique

Vélocité / Dette Technique

Temps

Page 16: Agile france 2013 - Dette Technique

Vélocité / Dette Technique

Temps

Page 17: Agile france 2013 - Dette Technique

Vélocité / Dette Technique

Temps

Page 18: Agile france 2013 - Dette Technique

Délais pour corriger un bug en production

● Minute● Heure● Jour● Semaine● ...

Page 19: Agile france 2013 - Dette Technique

Taille du Bug Tracker

Page 20: Agile france 2013 - Dette Technique

Temps d'intégration d'un nouveau développeur

Page 21: Agile france 2013 - Dette Technique

Build long

http://xkcd.com/303/

Page 22: Agile france 2013 - Dette Technique

Environnement obsolète

Page 23: Agile france 2013 - Dette Technique

Quadrant de Martin Fowler

Aventureux Prudent

Délibéré Pas le temps de designer

Nous devons livrer et assumer

Négligeant C'est quoi ces couches ?

Nous savons maintenant

comment nous aurions du faire

Page 24: Agile france 2013 - Dette Technique

Dette technique

Page 25: Agile france 2013 - Dette Technique

Vélocité en chute libre

Page 26: Agile france 2013 - Dette Technique

Faillite

Page 27: Agile france 2013 - Dette Technique

Motivation

Page 28: Agile france 2013 - Dette Technique

Problème

Page 29: Agile france 2013 - Dette Technique
Page 30: Agile france 2013 - Dette Technique

Planning Game

Complexité

XLValeur métier

0

Page 31: Agile france 2013 - Dette Technique
Page 32: Agile france 2013 - Dette Technique
Page 33: Agile france 2013 - Dette Technique

Comportements d'équipe● Endettement● Economie● Remboursement

Page 34: Agile france 2013 - Dette Technique

[Effet]

[Description...]

[Avantage] [Inconvénient]

[Pattern]

S M L

Page 35: Agile france 2013 - Dette Technique

ComportementsEndettement

Page 36: Agile france 2013 - Dette Technique

Livrer des story 'presque fini'

Endettement

Faire la demo, livrer mais ne pas clore la story pour rattrapper le retard dans le sprint suivant

+ Client est content

M

Page 37: Agile france 2013 - Dette Technique

Sprint de livraison

Endettement

Réaliser des story 'presque finie' et dédier un sprint à la préparation de la mise en production.

- Casse le rythme

L

Page 38: Agile france 2013 - Dette Technique

Story Technique

Endettement

● Intégrer au backlogdes Story Technique● Valeur métier : 0● Définir des règlesavec le PO

+ Endettement visible

Visible Invisible

Valeur Métier Forte

User Story Architecture

Valeur Métier Faible

Bug Story Technique

L

Page 39: Agile france 2013 - Dette Technique

Livrer et oublier

Endettement

Livrer 'en l'état' à la fin du sprint

- Le code n' oubliera pas...

L

Page 40: Agile france 2013 - Dette Technique

Livrer et oublier

Endettement

Livrer 'en l'état' à la fin du sprint

- Le code n' oubliera pas...

Page 41: Agile france 2013 - Dette Technique

ComportementsEconomies

Page 42: Agile france 2013 - Dette Technique

"Definition Of Done" forte

Economies

Ne pas livrer une story qui ne respecte pas tous les critères Done Done

+ Qualité- Risque de paralysie

Page 43: Agile france 2013 - Dette Technique

TDD

Economies

● Test● Code● Refactor

+ Couverture+ Documentation+ Design

Page 44: Agile france 2013 - Dette Technique

Binomage

Economies

Page 45: Agile france 2013 - Dette Technique

Revue de code à chaud

Economies

Revue sur place avant commit

+ Au plus proche

Page 46: Agile france 2013 - Dette Technique

Revue de code à froid

Economies

Revue à distance● Pull Request● Document de revue de code

+ Outillage- Moins formateur que Binômage

Page 47: Agile france 2013 - Dette Technique

Quick Start

Economies

● Documentation proche du code○ README / Getting started

● Utilisation de standards○ git clone○ vagrant up○ mvn clean install○ mvn jetty:run

+ Gain de temps d'intégration d'un nouveau

○ bower install○ npm install○ grunt server

Page 48: Agile france 2013 - Dette Technique

Règles de code

Economies

● Style● Design

○ Single Responsibility Principle○ Couches / Couplage faible○ Communication adaptée

+ Facilité lecture de code+ Détection Bug simples

Page 49: Agile france 2013 - Dette Technique

ComportementsRemboursement

Page 50: Agile france 2013 - Dette Technique

Remboursement Opportuniste

Remboursement

Profiter d'une évolution fonctionnelle pour rembourserSeule la User Story est visibleRien ne se fait sans valeur métier associée

+ Transparent

L

Page 51: Agile france 2013 - Dette Technique

Remboursement Opportuniste

Remboursement

Profiter d'une évolution fonctionnelle pour rembourserSeule la User Story est visibleRien ne se fait sans valeur métier associée

+ Transparent

L

Page 52: Agile france 2013 - Dette Technique

Remboursement

"Le camp doit être plus propre que lorsque l'on est arrivé"

Baden Powell

+ Amélioration progressive- Pas visible

SBoy Scout

Page 53: Agile france 2013 - Dette Technique

Refactoring

Remboursement

Remaniement de code pour● le rendre plus lisible ● éviter les duplications● faciliter la maintenance● permettre l'extension

+ Qualité- Nécessite bonne couverture AVANT

L

Page 54: Agile france 2013 - Dette Technique

Bug DayEconomie

L

Page 55: Agile france 2013 - Dette Technique

Objectif de couverture

Remboursement

Définir un nouveau seuil minimum de couverture

+ Rattrape le retard

L

Page 56: Agile france 2013 - Dette Technique

Automatiser

Remboursement

● Livraison● Tests Fonctionnels● Documentation● Installation Poste Dev

+ Gain temps- Coût du Ticket d'entrée

L

Page 57: Agile france 2013 - Dette Technique

Accélérer

Remboursement

Accélérer ce qui est déjà automatisé

Définir stratégie de tests automatiques

+ Gain temps

S

Page 58: Agile france 2013 - Dette Technique

Migration Version

Remboursement

● Suivre les versions stables par petit pas

+ Bénéficier des corrections

S

Page 59: Agile france 2013 - Dette Technique

OutilsAnalyse de code

Page 60: Agile france 2013 - Dette Technique

Informatif

Page 61: Agile france 2013 - Dette Technique

Analyse de code (informatif)

● IDE vérification active● IDE vérification à la demande● Contrôle durant IC build séparé● Outils Externe (ex: Sonar)

Distance du développeur

IDE Intégration Continue

Outil Externe

Build Local

Page 62: Agile france 2013 - Dette Technique

Poka Yoke

Page 63: Agile france 2013 - Dette Technique

Poka Yoke

Page 64: Agile france 2013 - Dette Technique

Analyse de code (Poka Yoke)

● Contrôle durant IC build principal● Contrôle au commit

○ Server-less Continuous Integration○ Unbreakable build

Distance du développeur

IDE Intégration Continue

Outil Externe

Build Local

Page 65: Agile france 2013 - Dette Technique
Page 66: Agile france 2013 - Dette Technique
Page 67: Agile france 2013 - Dette Technique
Page 68: Agile france 2013 - Dette Technique
Page 69: Agile france 2013 - Dette Technique

Do Thing Right, but...

DoRightThing

DoThingRight

Fast

Page 70: Agile france 2013 - Dette Technique

Merci

Francois Wauquier @wokierAurélien Pelletier @toutantic

#AgileFrance