Comment la visite d'une usine

m'a aidé à construire de meilleures applications

@matthieuauger

Scrum

1 semaine

Product Owner

Equipe technique

Mon problème

Scrum montre les problèmes quotidiens

Mais ne les explique pas

Hier j'ai fait ...

Aujourd'hui je fais ...

J'ai rencontré ... problèmes

customer satisfaction

employee satisfaction

mutual trust between employee and management

Just in time

Jidoka

Just in time

Fin 2017 : Départ pour Toyota City

Andon !

je n'ai plus de colle

Chaine de production en marche

Chaine de production arrêtée

1) Remettre la chaine en route

Je ne vais pas livrer à temps

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

Le temps entre un problème et sa description est réduite

Ne pas pouvoir livrer à temps déclenche la demande d'aide plus tôt

11h30 : ETQU, je peux voir la classe d'actif d'un fonds

12h : ETQU, je peux m'inscrire à la newsletter

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

12h : ETQLead, je fais une grosse refacto en sous-marin

Chaine de production en marche

1) Remettre la chaine en route

Conception

Développement

Code Review

Andon !

Chaine de production arrêtée

Pair-Programming

Fonctionnalité

Fonctionnalité

Je ne vais pas livrer à temps

Chaine de production en marche

1) Remettre la chaine en route

2) Comprendre ce qui s'est passé

Conception

Développement

Code Review

Pair-Programming

« Qu'est-ce qui t'a empêché de livrer à temps ? »

Fonctionnalité

« J'ai perdu 20 min à reproduire le bug en local »

« 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 »

« Je ne savais pas mettre générer une migration »

Plein de petits problèmes

qu'il faut résoudre...

17h30

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

J'avais une page blanche en lançant mon application »

J'ai perdu 40 minutes à chercher pourquoi, et j'ai livré mon ticket en retard »

Problème

Impact

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`
  •  
# ...

function changed {
  git diff --name-only $PREV_COMMIT $POST_COMMIT | grep "^$1" > /dev/null 2>&1
}

if [[ -f yarn.lock ]]; then
    if changed 'yarn.lock'; then
        echo -e "$REDCOLOR yarn.lock has changed. You must run yarn install$NOCOLOR"
    fi
fi

Autonomation

https://github.com/lyrixx/dotfiles/blob/master/git-template/hooks/post-checkout

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

Suivi des problèmes

« J'ai perdu 20 min à reproduire le bug en local »

# Allow to extract profile :
# staging.[...].com/intermediaire-selectionneur-de-fonds/fundsheet/[...]
# to the necessary format for :
# localhost:5010/#/fundsheet

var country = component_configuration.country;
var language = component_configuration.language;
var profile = component_configuration.profile;
var id = component_configuration.code;
var output = `version: full\n
              fundshare_generic_id: ${id}\n
              country: ${country}\n
              language: ${language}\n
              profile: ${profile}`;

prompt("Copy paste the following into localhost:5010/#/fundsheet", output);

« 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]*))?(?:_+([a-z])([a-z]*))?(?:_+([a-z])([a-z]*))?(?:_+([a-z])([a-z]*))?/${1:/upcase}$2${3:/upcase}$4${5:/upcase}$6${7:/upcase}$8${9:/upcase}$10/}}Resource",
		"",
		"${3:${TM_FILENAME_BASE/(.*)/${1:/upcase}/}}_BLUEPRINT = Blueprint('${TM_FILENAME_BASE}', __name__)",
			"Api(${3:${TM_FILENAME_BASE/(.*)/${1:/upcase}/}}_BLUEPRINT).add_resource(${2:${TM_FILENAME_BASE/([a-z])([a-z]*)(?:_+([a-z])([a-z]*))?(?:_+([a-z])([a-z]*))?(?:_+([a-z])([a-z]*))?(?:_+([a-z])([a-z]*))?/${1:/upcase}$2${3:/upcase}$4${5:/upcase}$6${7:/upcase}$8${9:/upcase}$10/}}Resource, '/${1:${TM_FILENAME_BASE}}', endpoint='${1:${TM_FILENAME_BASE}}')"
		],
	"description": "Create a new route"
},

> Snippets pour l'IDE

« Je ne savais pas mettre à jour un submodule »

Rédaction d'un standard + Formation en one to one avec l'architecte

Bilan

customer satisfaction

employee satisfaction

mutual trust between employee and management

Just in time

Jidoka

Responsibility

Safety

Progress

Control

"J'ai les compétences"

"Je suis protégé"

"Je trouve de l'intérêt dans ce que je fais"

"Je peux controller mon environnement

Merci

Copy of How visiting a factory helps me build better websites

By Matthieu Auger

Copy of How visiting a factory helps me build better websites

  • 320