How visiting a factory helped me build better websites

A presentation at Web2Day 2018 in June 2018 in Nantes, France by Matthieu Auger

Slide 1

Slide 1

Comment la visite d’une usine m’a aidé à construire de meilleures applications

Slide 2

Slide 2

@matthieuauger

Slide 3

Slide 3

Scrum 1 semaine

Slide 4

Slide 4

Scrum 1 semaine Product Owner

Slide 5

Slide 5

Scrum 1 semaine Product Owner Equipe technique

Slide 6

Slide 6

Scrum 1 semaine Product Owner Equipe technique

Slide 7

Slide 7

Scrum 1 semaine Product Owner Equipe technique

Slide 8

Slide 8

Step by Step Charts Infogram Mon problème

Slide 9

Slide 9

Scrum montre les problèmes quotidiens

Slide 10

Slide 10

Mais ne les explique pas

Slide 11

Slide 11

Slide 12

Slide 12

Hier j’ai fait … Aujourd’hui je fais … J’ai rencontré … problèmes

Slide 13

Slide 13

Slide 14

Slide 14

customer satisfaction Just in time Jidoka employee satisfaction mutual trust between employee and management

Slide 15

Slide 15

Just in time

Slide 16

Slide 16

Slide 17

Slide 17

Fin 2017 : Départ pour Toyota City

Slide 18

Slide 18

Chaine de production en marche

Slide 19

Slide 19

Chaine de production en marche

Slide 20

Slide 20

Chaine de production en marche

Slide 21

Slide 21

Chaine de production en marche

Slide 22

Slide 22

Chaine de production en marche

Slide 23

Slide 23

Chaine de production en marche

Slide 24

Slide 24

Chaine de production arrêtée Je ne vais pas livrer à temps Andon ! je n’ai plus de colle

Slide 25

Slide 25

Chaine de production arrêtée

  1. Remettre la chaine en route

Slide 26

Slide 26

Chaine de production en marche

  1. Remettre la chaine en route

Slide 27

Slide 27

Chaine de production en marche

  1. Remettre la chaine en route 2) Décrire ce qui s’est passé

Slide 28

Slide 28

Chaine de production en marche

  1. Remettre la chaine en route 2) Décrire ce qui s’est passé 3) Résoudre le problème avec l’équipe

Slide 29

Slide 29

Chaine de production en marche

  1. Remettre la chaine en route 2) Décrire ce qui s’est passé 3) Résoudre le problème avec l’équipe Ne pas pouvoir livrer à temps déclenche la demande d’aide plus tôt Le temps entre un problème et sa description est réduite

Slide 30

Slide 30

Slide 31

Slide 31

Si tout se passe bien, je peux livrer à 11h30

Slide 32

Slide 32

Si tout se passe bien, je peux livrer à 11h30 11h30 : ETQU, je peux voir la classe d’actif d’un fonds

Slide 33

Slide 33

Si tout se passe bien, je peux livrer à 11h30 11h30 : ETQU, je peux voir la classe d’actif d’un fonds 12h : ETQU, je peux m’inscrire à la newsletter 12h : ETQLead, je fais une grosse refacto en sous-marin

Slide 34

Slide 34

Chaine de production en marche Conception Fonctionnalité Développement Code Review

Slide 35

Slide 35

Chaine de production en marche Développement Fonctionnalité Code Review

Slide 36

Slide 36

Chaine de production arrêtée Je ne vais pas livrer à temps Andon ! Développement Fonctionnalité Code Review

Slide 37

Slide 37

Chaine de production arrêtée Andon ! Développement Code Review Fonctionnalité

  1. Remettre la chaine en route Pair-Programming

Slide 38

Slide 38

Chaine de production en marche Conception Développement Code Review Fonctionnalité

  1. Remettre la chaine en route Pair-Programming

Slide 39

Slide 39

Chaine de production en marche Conception Développement Code Review Fonctionnalité

  1. Remettre la chaine en route 2) Comprendre ce qui s’est passé Pair-Programming « Qu’est-ce qui t’a empêché de livrer à temps ? »

Slide 40

Slide 40

« J’avais une page blanche en lançant mon application » « J’ai créé une nouvelle route d’API, j’ai mal copié une configuration existante et j’ai mis du temps à comprendre pourquoi » « J’ai perdu 20 min à reproduire le bug en local » « Je ne savais pas mettre générer une migration »

Slide 41

Slide 41

Plein de petits problèmes qu’il faut résoudre…

Slide 42

Slide 42

17h30 Ajout du shift Kaizen : 30 minutes quotidiennes pour résoudre les petits problèmes

Slide 43

Slide 43

Problème J’avais une page blanche en lançant mon application » Impact J’ai perdu 40 minutes à chercher pourquoi, et j’ai livré mon ticket en retard »

Slide 44

Slide 44

Situation Cause Pourquoi ? Erreur dans le navigateur Pourquoi ? Erreur au moment du build Pourquoi ? La ligne de code FundsearchCompartment.propTypes ne compile pas Pourquoi ? La lib n’est pas installée ‘prop-types’ n’est pas installée Pourquoi ? Je n’ai pas fait yarn install

Slide 45

Slide 45

Autonomation https://github.com/lyrixx/dot les/blob/master/git-template/hooks/post-checkout

function changed { git diff —name-only $PREV_COMMIT $POST_COMMIT | grep “^$1” > /dev/null } if [[ -f yarn.lock ]]; then if changed ‘yarn.lock’; then echo -e “$REDCOLOR yarn.lock has changed. You must run yarn insta fi fi

Slide 46

Slide 46

Suivi des problèmes Page blanche en lançant l’application librarie prop-types pas installée git-hooks sur yarn.lock plus de page blanche à cause de libraires non installées 30/04

Slide 47

Slide 47

« J’ai perdu 20 min à reproduire le bug en local » # # # # Allow to extract profile : staging.[…].com/intermediaire-selectionneurto the necessary format for : localhost:5010/#/fundsheet var var var var var country = component_configuration.country; language = component_configuration.language; profile = component_configuration.profile; id = component_configuration.code; output = version: full\n fundshare_generic_id: ${id}\n country: ${country}\n language: ${language}\n profile: ${profile}; prompt(“Copy paste the following into localhost:

Slide 48

Slide 48

« J’ai créé une nouvelle route d’API, j’ai mal copié une configuration existante et j’ai mis du temps à comprendre pourquoi » “New route”: { “prefix”: “route”, “body”: [ “”“”“, “Defines the blueprint for ${1:${TM_FILENAME_BASE}}”, “”“”“, “from flask import Blueprint”, “from flask.ext.restful import Api”, “”, “from resources import ${2:${TM_FILENAME_BASE/([a-z])([a-z])(?:_+([a-z])([a-z “”, “${3:${TM_FILENAME_BASE/(.)/${1:/upcase}/}}_BLUEPRINT = Blueprint(‘${TM_FILEN “Api(${3:${TM_FILENAME_BASE/(.*)/${1:/upcase}/}}_BLUEPRINT).add_resour ], “description”: “Create a new route” },

Snippets pour l’IDE

Slide 49

Slide 49

« Je ne savais pas mettre à jour un submodule » Rédaction d’un standard + Formation en one to one avec l’architecte

Slide 50

Slide 50

Bilan

Slide 51

Slide 51

customer satisfaction Just in time Jidoka employee satisfaction mutual trust between employee and management

Slide 52

Slide 52

Responsibility Safety “J’ai les compétences” “Je suis protégé” Progress Control “Je trouve de l’intérêt dans ce que je fais” “Je peux controller mon environnement

Slide 53

Slide 53

Slide 54

Slide 54

Merci