SlideShare une entreprise Scribd logo
1  sur  97
Télécharger pour lire hors ligne
Du Code &
Des Humains
Du Code &
Des Humains
ryfacto.fr
Nicolas VERINAUD
@nverinaud
« Google The Error Message Algorithm »
Toile de Paillage Tissée
Développer un logiciel
Facile ?
🤔
Toyota
Chinook
Mars Climate Orbiter
Therac-25 911
https://en.wikipedia.org/wiki/List_of_software_bugs
Développeur
Professionnel
🙂
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é
Développeur : une espèce à
part ?
Réécrire : une fatalité ?
Développeur : une espèce à
part ?
Réécrire : une fatalité ?
Client Commercial
Directeur
Technique
Dev Scrum Master Mockups Master
Utilisateur Product Owner
Proxy Product
Owner
Dev Lead Dev Scrum Master
Utilisateur 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
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
- Alberto Brandolini
« C’est la compréhension du développeur, pas votre connaissance,
qui devient le logiciel. »
01001010
11101111
01010101
UX
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. »
Pourquoi ?
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. »
Pourquoi ?
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
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
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
développeur qui devient le
logiciel, pas le cahier des
charges.
Socle GénériqueMétier Spécifique
Projet complexe ?
Mauvaise conception ?
Deux Formes de Complexité
Complexité Essentielle
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
≠
Dette Technique
+
Deux Formes de Complexité
Complexité Essentielle
Complexité Accidentelle
Comment estimez-vous ?
Arrêtez d’estimer !
Comment estimez-vous ?
Arrêtez d’estimer !
- Un développeur 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
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
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
Développeur
Du Code
Du Code & Des Humains
Merci !
Du Code & Des Humains
Merci !
ryfacto.fr@nverinaud
Envie de travailler
avec nous ?

Contenu connexe

Similaire à Du Code & Des Humains

Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survieNicolas VERINAUD
 
Gl slides-cours-1
Gl slides-cours-1Gl slides-cours-1
Gl slides-cours-1Sami Neili
 
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VIONABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VIONLa Cuisine du Web
 
Crash Test Your Idea Meetup Valtech 13/09/2016
Crash Test Your Idea Meetup Valtech 13/09/2016Crash Test Your Idea Meetup Valtech 13/09/2016
Crash Test Your Idea Meetup Valtech 13/09/2016André De Sousa
 
Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...
Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...
Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...Jochen (Thomas) Grünbeck ◁
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...Olivier Destrebecq
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéSylvain Leroy
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?XP Day CH
 
Creons des produits exceptionnels
Creons des produits exceptionnelsCreons des produits exceptionnels
Creons des produits exceptionnelsyannick grenzinger
 
Créons des produits exceptionnels ! animé par Yannick Grenzinger
Créons des produits exceptionnels ! animé par Yannick GrenzingerCréons des produits exceptionnels ! animé par Yannick Grenzinger
Créons des produits exceptionnels ! animé par Yannick GrenzingerFrench Scrum User Group
 
12 bonnes raisons de ne pas contrôler vos applications
12 bonnes raisons de ne pas contrôler vos applications12 bonnes raisons de ne pas contrôler vos applications
12 bonnes raisons de ne pas contrôler vos applicationsSolutions IT et Business
 
Agile France 2018 : chaos engineering
Agile France 2018 : chaos engineeringAgile France 2018 : chaos engineering
Agile France 2018 : chaos engineeringBenjamin Gakic
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010Claude Falguiere
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Sylvain Leroy
 
Développer des applications mobiles modernes avec Azure & Xamarin
Développer des applications mobiles modernes avec Azure & XamarinDévelopper des applications mobiles modernes avec Azure & Xamarin
Développer des applications mobiles modernes avec Azure & XamarinSamir Arezki ☁
 
Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...
Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...
Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...André De Sousa
 
La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...Bastien Gallay
 

Similaire à Du Code & Des Humains (20)

Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survie
 
Gl slides-cours-1
Gl slides-cours-1Gl slides-cours-1
Gl slides-cours-1
 
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VIONABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
 
Crash Test Your Idea Meetup Valtech 13/09/2016
Crash Test Your Idea Meetup Valtech 13/09/2016Crash Test Your Idea Meetup Valtech 13/09/2016
Crash Test Your Idea Meetup Valtech 13/09/2016
 
Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...
Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...
Neuromarketing - Comment convaincre et persuader en ligne avec les neuroscien...
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualité
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
 
Creons des produits exceptionnels
Creons des produits exceptionnelsCreons des produits exceptionnels
Creons des produits exceptionnels
 
Créons des produits exceptionnels ! animé par Yannick Grenzinger
Créons des produits exceptionnels ! animé par Yannick GrenzingerCréons des produits exceptionnels ! animé par Yannick Grenzinger
Créons des produits exceptionnels ! animé par Yannick Grenzinger
 
PROSPECTIVE SUR LES RISQUES NOUVEAUX ET ÉMERGENTS EN MATIÈRE DE SST LIÉS À LA...
PROSPECTIVE SUR LES RISQUES NOUVEAUX ET ÉMERGENTS EN MATIÈRE DE SST LIÉS À LA...PROSPECTIVE SUR LES RISQUES NOUVEAUX ET ÉMERGENTS EN MATIÈRE DE SST LIÉS À LA...
PROSPECTIVE SUR LES RISQUES NOUVEAUX ET ÉMERGENTS EN MATIÈRE DE SST LIÉS À LA...
 
Extreme Data Science
Extreme Data ScienceExtreme Data Science
Extreme Data Science
 
12 bonnes raisons de ne pas contrôler vos applications
12 bonnes raisons de ne pas contrôler vos applications12 bonnes raisons de ne pas contrôler vos applications
12 bonnes raisons de ne pas contrôler vos applications
 
Agile France 2018 : chaos engineering
Agile France 2018 : chaos engineeringAgile France 2018 : chaos engineering
Agile France 2018 : chaos engineering
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)
 
StarDust @SHAKE 2014
StarDust @SHAKE 2014StarDust @SHAKE 2014
StarDust @SHAKE 2014
 
Développer des applications mobiles modernes avec Azure & Xamarin
Développer des applications mobiles modernes avec Azure & XamarinDévelopper des applications mobiles modernes avec Azure & Xamarin
Développer des applications mobiles modernes avec Azure & Xamarin
 
Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...
Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...
Le Bootstrapping : Ou comment monter un MVP fonctionnel en quelques heures - ...
 
La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...
 

Du Code & Des Humains