A presentation at Web2Day 2018 in in Nantes, France by Matthieu Auger
Comment la visite d’une usine m’a aidé à construire de meilleures applications
@matthieuauger
Scrum 1 semaine
Scrum 1 semaine Product Owner
Scrum 1 semaine Product Owner Equipe technique
Scrum 1 semaine Product Owner Equipe technique
Scrum 1 semaine Product Owner Equipe technique
Step by Step Charts Infogram 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 Just in time Jidoka employee satisfaction mutual trust between employee and management
Just in time
Fin 2017 : Départ pour Toyota City
Chaine de production en marche
Chaine de production en marche
Chaine de production en marche
Chaine de production en marche
Chaine de production en marche
Chaine de production en marche
Chaine de production arrêtée Je ne vais pas livrer à temps Andon ! je n’ai plus de colle
Chaine de production arrêtée
Chaine de production en marche
Chaine de production en marche
Chaine de production en marche
Chaine de production en marche
Si tout se passe bien, je peux livrer à 11h30
Si tout se passe bien, je peux livrer à 11h30 11h30 : ETQU, je peux voir la classe d’actif d’un fonds
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
Chaine de production en marche Conception Fonctionnalité Développement Code Review
Chaine de production en marche Développement Fonctionnalité Code Review
Chaine de production arrêtée Je ne vais pas livrer à temps Andon ! Développement Fonctionnalité Code Review
Chaine de production arrêtée Andon ! Développement Code Review Fonctionnalité
Chaine de production en marche Conception Développement Code Review Fonctionnalité
Chaine de production en marche Conception Développement Code Review Fonctionnalité
« 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 »
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
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 »
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
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
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
« 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:
« 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
« Je ne savais pas mettre à jour un submodule » Rédaction d’un standard + Formation en one to one avec l’architecte
Bilan
customer satisfaction Just in time Jidoka employee satisfaction mutual trust between employee and management
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
Merci
In 1948 Toyota created the Toyota Production System and became one of the most effective automotive manufacturer by eliminating waste in the process from the provider to the customer.
Can a software company deliver every feature without bug and on time by using Toyota Principles? In this talk, Matthieu will share his experience at Theodo where his team members achieved 100% sprint success in two weeks.