Slide 1

Slide 1 text

Introduction aux pratiques crafts dans le logiciel La qualité d’aujourd’hui est la productivité de demain @lilobase 
 www.lilobase.me VP, Chief Architect Arnaud LEMAIRE

Slide 2

Slide 2 text

Chapitre 1 : Dette technique

Slide 3

Slide 3 text

Dette technique, la définition « The obligations incurred by a software organization when it chooses an expedient design or construction approach that increases complexity and is more costly in the long term » - Ward Cunningham

Slide 4

Slide 4 text

Dette technique, un choix éclairé pour une accélération temporaire 1. Est-ce une décision business ? 2. Avez vous le temps de refaire cette fonctionnalité ? 3. Donnez-vous carte blanche à l’équipe de développement pour la rembourser ? Temps Fonctionnalités Prise de dette Remboursement

Slide 5

Slide 5 text

Dette technique, ne prenez pas un crédit subprime Temps Fonctionnalités Prise de dette Prise de dette Lenteurs Régressions Bugs Développements très lents Démissions

Slide 6

Slide 6 text

Dette technique ou logiciel décrépit ?

Slide 7

Slide 7 text

Dette technique, Les lois de Lehman 1. Continuing Change : a system must be continually adapted or it becomes progressively less satisfactory. 2. Continuing Growth : the functional content of a system must be continually increased to maintain user satisfaction over its lifetime. 3. Increasing Complexity : as a system evolves, its complexity increase unless work is done to maintain or reduce it. 4. Declining Quality : the quality of a system will appear to be declining unless it is rigorously maintained and adapted to operational environment changes Le logiciel, un objet technique sous tension permanente :

Slide 8

Slide 8 text

Dette technique, l’entropie du logiciel Ajout de Code Augmentation de la complexité L’entropie du logiciel augmente Décrépitude du logiciel

Slide 9

Slide 9 text

Dette technique, normalisation de la déviance

Slide 10

Slide 10 text

Laissez votre logiciel mourir Requirements / Analysis 1 Design / Architecture 2 Development 3 Test 4 Maintenance 5

Slide 11

Slide 11 text

Laissez votre logiciel mourir Development 1 Death 2 Cherchez à optimiser le renouvellement et non l’évolutivité du logiciel

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Chapitre 2 : Le cercle infernal

Slide 14

Slide 14 text

Le cercle infernal Les temps de développement sont trop longs L’équipe n’arrive pas à fournir à temps les fonctionnalités L’équipe génère de la « dette technique » pour accélérer Il faut prendre le temps de résorber la dette

Slide 15

Slide 15 text

Le cercle infernal, la version agile On arrive à la fi n du sprint La vélocité n’est pas bonne, il reste beaucoup de user story L’équipe génère de la « dette technique » pour accélérer Il faut résorber la dette au début du sprint suivant

Slide 16

Slide 16 text

Le cercle infernal, Avalanche Driven Development

Slide 17

Slide 17 text

Le cercle infernal, jusqu’à la sortie de route La complexité du système le rend ingérable Panique / Code legacy Il faut prendre le temps de résorber la dette Mais on n’a pas le temps

Slide 18

Slide 18 text

Le cercle infernal, le code legacy « Code that is too scary to update & too pro fi table to delete » - Dylan Beattie

Slide 19

Slide 19 text

Le cercle infernal, refactoring Est-il plus important d’aller chez le dentiste deux fois par an ou de se laver les dents tous les jours ?

Slide 20

Slide 20 text

Le cercle infernal, laissez du mou Occupation à 80% (À l’extrême limite : 90%) Ça augmente la productivité

Slide 21

Slide 21 text

Chapitre 3 : Avoir le bon horizon des évènements

Slide 22

Slide 22 text

Le bon horizon des évènements, évitez le court terme Temps Fonctionnalités Option A Temps Fonctionnalités Option B

Slide 23

Slide 23 text

Le bon horizon des évènements, évitez le court terme Temps Fonctionnalités Option A Temps Fonctionnalités Option B

Slide 24

Slide 24 text

Le bon horizon des évènements, la qualité est gratuite Temps Fonctionnalités Quelques semaines à quelques mois

Slide 25

Slide 25 text

Le bon horizon des évènements, la qualité est gratuite Les pratiques agile et crafts n’ont pas pour objectif d’offrir une réduction des temps de développement, mais de maintenir dans le temps la productivité de l’équipe.

Slide 26

Slide 26 text

Le bon horizon des évènements, la surqualité n’existe pas

Slide 27

Slide 27 text

Le bon horizon des évènements, ne confondez pas causes et symptômes Les bugs, régressions fonctionnelles, un code dif fi cile à maintenir sont des symptômes L’absence de pratiques, une culture technique défaillante, des équipes techniques sous pression sont les causes Sans traiter les cause, les symptômes ne feront que réapparaitre.

Slide 28

Slide 28 text

Le bon horizon des évènements, la loi de Conway « les organisations qui conçoivent des systèmes [...] tendent inévitablement à produire des designs qui sont des copies de la structure de communication de leur organisation. » Les RH sont les premiers architects de votre système d’information

Slide 29

Slide 29 text

Le bon horizon des évènements, la loi de Conway

Slide 30

Slide 30 text

Le bon horizon des évènements, ce n’est pas le cahier des charges qui part en production « It is not stack-holder knowledge but developer’s ignorance that get deployed in production » Client Chef de projet fonctionnel Chef de projet technique Solution Architecte Architect logiciel Développeurs Jeu du téléphone, Enterprise Edition™ - Alberto Brandolini

Slide 31

Slide 31 text

Chapitre 4 : L’excellence technique est un pré-requis à toute démarche agile

Slide 32

Slide 32 text

Excellence technique, la prédictibilité Vous n’avez pas besoin de devenir meilleur à estimer les temps de développement Vous devez améliorer la prédictibilité de vos développement L’excellence technique permet d’assurer une meilleure prédictibilité des développements futur.

Slide 33

Slide 33 text

Excellence technique, validation « The best way to predict the futur it to implement it » Validation et non suppositions et illusions - Abraham Lincoln Faîtes de plus petits mensonges

Slide 34

Slide 34 text

Excellence technique, raccourcissez la boucle de feedback Market Team Working Software Company User Une fonctionnalité n’a de la valeur qu’une fois livrée en production, avant ça ce n’est que du rebut.

Slide 35

Slide 35 text

Excellence technique, la fabrication du logiciel ne nécessite aucun humain 1. Conception 2. Fabrication 3. Exploitation Le Compilateur / Interpéteur Le code source

Slide 36

Slide 36 text

Excellence technique, l’intégration continue Continuous Integration Automated testing Stakeholder involvment Code management Deployment automation Unit Testing Integrated tests Infra As Code Coding standard Version Control L’intégration continue permet d’aligner l’ensemble des pratiques

Slide 37

Slide 37 text

Excellence technique, l’intégration continue Continuous Integration Automated testing Stakeholder involvment Code management Deployment automation Unit Testing Integrated tests Coding standard Version Control Infra As Code

Slide 38

Slide 38 text

Excellence technique, l’intégration continue Continuous Integration Automated testing Stakeholder involvment Code management Deployment automation Unit Testing Integrated tests Coding standard Version Control Infra As Code

Slide 39

Slide 39 text

Excellence technique, pair programming 1. Transmission des connaissances et montée en niveau accélérée des équipes de développement 2. Moins de défaut dans le code livré 3. Evite les code reviews bloquantes 4. Limite votre bus factor Le pair programming, un gain de temps énorme

Slide 40

Slide 40 text

www.lilobase.me Thanks ! @lilobase alemaire@quantis.fr https://roti.express/r/xsnild