Du Code & Des Humains - ElsassJUG 2018

Nicolas VERINAUD
Nicolas VERINAUDiOS Software Crafter à Ryfacto
Du Code &
Des Humains
Du Code &
Des Humains
ryfacto.fr
Nicolas VERINAUD
@nverinaud
« Google The Error Message Algorithm »
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
Toile de Paillage Tissée
Développer un logiciel
Facile ?
🤔
Développer un logiciel
Facile ?
🤔
Toyota
Développer un logiciel
Facile ?
🤔
Toyota
Chinook
Développer un logiciel
Facile ?
🤔
Toyota
Chinook
Mars Climate Orbiter
Développer un logiciel
Facile ?
🤔
Toyota
Chinook
Mars Climate Orbiter
Therac-25
Développer un logiciel
Facile ?
🤔
Toyota
Chinook
Mars Climate Orbiter
Therac-25 911
https://en.wikipedia.org/wiki/List_of_software_bugs
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
Développeur•se
Professionnel•le
🙂
Fonctionnalité
3 jours
😕 Fonctionnalité
3 semaines
😖
Fonctionnalité
Trop long
Productivité
0
25
50
75
100
Mois
0 1 2 3 4 5 6 7 8 9 10 11 12
Vélocité
Productivité
0
25
50
75
100
Mois
0 1 2 3 4 5 6 7 8 9 10 11 12
Vélocité
Productivité
0
25
50
75
100
Mois
0 1 2 3 4 5 6 7 8 9 10 11 12
Vélocité
Du Code & Des Humains - ElsassJUG 2018
Développeur•se : une espèce à
part ?
Réécrire : une fatalité ?
Développeur•se : une espèce à
part ?
Réécrire : une fatalité ?
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
Client•e
Client•e Commercial•e
Client•e Commercial•e
Directeur•rice
Technique
Client•e Commercial•e
Directeur•rice
Technique
Mockups Master
Client•e Commercial•e
Directeur•rice
Technique
Scrum Master Mockups Master
Client•e Commercial•e
Directeur•rice
Technique
Dev Scrum Master Mockups Master
Utilisateur•rice Product Owner
Proxy Product
Owner
Dev Lead Dev Scrum Master
Utilisateur•rice Product Owner
Proxy Product
Owner
Dev Lead Dev Scrum Master
Utilisateur•rice Product Owner
Proxy Product
Owner
Dev Lead Dev Scrum Master
Utilisateur•rice Product Owner
Proxy Product
Owner
Dev Lead Dev Scrum Master
Téléphone ArabeEnterprise Edition
• Les individus et leurs interactions plus que les processus et les outils
• Des logiciels opérationnels plus qu’une documentation exhaustive
• La collaboration avec les clients plus que la négociation contractuelle
• L’adaptation au changement plus que le suivi d’un plan
Discuter avec
l’utilisateur•rice pour
construire un logiciel qui fait
le boulot
Qu’est-ce que le code ?
Qu’est-ce que le code ?
Le code est la spécification la
plus détaillée du monde
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
- Alberto Brandolini
« C’est la compréhension du•de la développeur•se, pas votre
connaissance, qui devient le logiciel. »
Du Code & Des Humains - ElsassJUG 2018
01001010
11101111
01010101
01001010
11101111
01010101
01001010
11101111
01010101
UX
Du Code & Des Humains - ElsassJUG 2018
Comment comprendre
efficacement les besoins ?
Quel est le véritable problème ?
Les 5 « Pourquoi ? » et la
définition récursive
Quel est le véritable problème ?
Les 5 « Pourquoi ? » et la
définition récursive
définition récursive
« J’ai besoin d’une base de donnée générique
contenant tous les médicaments vendus et qui
peuvent être prescrit par les médecins. »
définition récursive
« J’ai besoin d’une base de donnée générique
contenant tous les médicaments vendus et qui
peuvent être prescrit par les médecins. »
Pourquoi ?
définition récursive
« Pour aider les médecins à faire leurs
ordonnances. »
définition récursive
« Pour aider les médecins à faire leurs
ordonnances. »
Pourquoi ?
définition récursive
« Car les médecins font des erreurs en prescrivant
des médicaments. »
définition récursive
« Car les médecins font des erreurs en prescrivant
des médicaments. »
Pourquoi ?
définition récursive
« Car ils prescrivent des médicaments
incompatibles. »
définition récursive
« Car ils prescrivent des médicaments
incompatibles. »
Pourquoi ?
définition récursive
« Car les interactions entre les médicaments sont
complexes. »
définition récursive
« Car les interactions entre les médicaments sont
complexes. »
Une interaction entre médicaments ?
Base de donnée générique de médicaments
définition récursive
« Et bien, par exemple : deux médicaments ne
doivent pas être pris ensemble car ils contiennent
tous les deux la molécule M et il y a un risque de
surdosage. »
Base de donnée générique de médicaments
Base de donnée générique de médicaments
Aider les médecins à prescrire les
bons médicaments
Quelles solutions ?
Impact Mapping
Impact Mapping
Quelles solutions ?
Créer le logiciel qui aura le
meilleur impact, le meilleur ROI
Impact Mapping
Quelles solutions ?
Créer le logiciel qui aura le
meilleur impact, le meilleur ROI
Créer le logiciel qui aura le
meilleur impact, le meilleur ROI
Gojko Adzic
Implémentation ? Métier ?
Event Storming
Implémentation ? Métier ?
Event Storming
Implémentation ? Métier ?
Event Storming
Aligner Métier et Technique
Implémentation ? Métier ?
Event Storming
Aligner Métier et Technique
http://ziobrando.blogspot.fr/2013/11/introducing-event-storming.html
Vision d’ensemble ? Priorités ?
User Story Mapping
Vision d’ensemble ? Priorités ?
User Story Mapping
Créer un véritable MVP
User Story Mapping
Vision d’ensemble ? Priorités ?
Créer un véritable MVP
User Story Mapping
Créer un véritable MVP
Jeff Patton
User Story Mapping
Créer un véritable MVP
C’est la compréhension
du•de la développeur•se
qui devient le logiciel, pas le
cahier des charges.
Projet complexe ?
Projet complexe ?
Mauvaise conception ?
Projet complexe ?
Mauvaise conception ?
Deux Formes de Complexité
Complexité Essentielle
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
Comment s’en rendre compte ?
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
Comment s’en rendre compte ?
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
≠
Dette Technique
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
Comment s’en rendre compte ?
+
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
Comment estimez-vous ?
Arrêtez d’estimer !
Comment estimez-vous ?
Arrêtez d’estimer !
- Un•e développeur•se qui fait une estimation fiable
« Je ne sais pas ! »
Comment éviter la complexité
accidentelle ?
En prenant soin du code !En prenant soin du code !
Comment éviter la complexité
accidentelle ?
En prenant soin du code !
Comment ?
Comment éviter la complexité
accidentelle ?
En prenant soin du code !
Comment ?
Refactoring régulier !
Comment éviter la complexité
accidentelle ?
En prenant soin du code !
Comment ?
Refactoring régulier !
Je risque de tout péter non ?
Comment éviter la complexité
accidentelle ?
En prenant soin du code !
Comment ?
Refactoring régulier !
Je risque de tout péter non ?
Non ! Grâce aux tests
automatisés !
accidentelle ?
En prenant soin du code !
Comment ?
Refactoring régulier !
Je risque de tout péter non ?
Non ! Grâce aux tests
automatisés !
Deux possibilités
Économiquement Mort
Comment s’en sortir ?
Deux possibilités
Économiquement Mort
Comment s’en sortir ?
Deux possibilités
Économiquement Mort
Avant la 1ère mise en prod 😱
Deux possibilités
Économiquement Mort
Comment s’en sortir ?
Repartir de zéro avec des tests
Repartir de zéro avec des tests
Deux possibilités
Économiquement Mort
Comment s’en sortir ?
Deux possibilités
Économiquement Mort
Embaucher ?
Deux possibilités
Économiquement Viable
Embaucher ?
Deux possibilités
Économiquement Viable
Tierce Maintenance Applicative 😱
Deux possibilités
Économiquement Viable
Embaucher ?
Économiquement Viable
Embaucher ?
Fred Brooks
Fred Brooks
« Adding manpower to a late project makes it later. »
Écrire des tests...
...pour pouvoir refactor...
Écrire des tests...
...pour pouvoir refactor...
...pour prospérer !
Écrire des tests...
...pour pouvoir refactor...
...pour prospérer !
Scrum
Scrum
+
Extreme Programming
Test Driven Development
Culture du Partage
Culture du Partage
Test Driven Development
Solidarité Technologique
Culture du Partage
Test Driven Development
Solidarité Technologique
Créer un logiciel pertinent
avec le meilleur ROI est difficile
Ne pas négliger le Code
Ni la compréhension du
Développeur
Ne pas négliger le Code
Ni la compréhension du•de la
Développeur•se
Du Code
Du Code & Des Humains
Merci !
Du Code & Des Humains
Merci !
ryfacto.fr@nverinaud
Envie de travailler
avec nous ?
1 sur 126

Contenu connexe

Similaire à Du Code & Des Humains - ElsassJUG 2018(20)

Équipes de développement : soyez experts!Équipes de développement : soyez experts!
Équipes de développement : soyez experts!
Elapse Technologies294 vues
Agile France 2018 : chaos engineeringAgile France 2018 : chaos engineering
Agile France 2018 : chaos engineering
Benjamin Gakic169 vues
Réussir son lancement mobileRéussir son lancement mobile
Réussir son lancement mobile
Jérémie Clévy2.2K vues
Revolution Mobile @Web2dayRevolution Mobile @Web2day
Revolution Mobile @Web2day
Alexandre Jubien5.3K vues
Lean & Agile UX - afterwork AxanceLean & Agile UX - afterwork Axance
Lean & Agile UX - afterwork Axance
Alexandre Jubien6K vues
Devoxx 2018 : Chaos EngineeringDevoxx 2018 : Chaos Engineering
Devoxx 2018 : Chaos Engineering
Benjamin Gakic456 vues
Gl slides-cours-1Gl slides-cours-1
Gl slides-cours-1
Sami Neili1.6K vues

Du Code & Des Humains - ElsassJUG 2018