SlideShare ist ein Scribd-Unternehmen logo
1 von 70
A la recherche de la
simplicité perdue
Aux sources de la simplicité
Bordeaux 2022
Une définition... pas si simple
simplex
[simplex], simplex, simplex
adjectif II classe
1 simple, composé d'un seul élément
2 particulier, singulier, unique, seul
3 naturel, dépourvu d'ornements
4 élémentaire, facile, qui n'est pas complexe
5 franc, sincère, pur, naïf (péjoratif)
revenons à une définition ... simple
- Qui est constitué d'un petit nombre d'éléments qui s'organisent de
manière claire, par opposition à complexe
- Qui est réduit à l'essentiel, sans recherche, sans apprêt, sans
surcharges ni ornements inutiles
SIMPLE Complexe
Simplicité Facilité
Simplisme
Agile, la science du delivery
nos fondamentaux Validés
Scientifiquement
Développement itératif ou en flux Coach
Tech Lead
Comment développer de façon
simple, soutenable et durable ?
Doing Things Right
De
complexe
à
Compliqué
Une proposition : “Tacler” la Complexité
3 niveaux
★ Exploratoire
★ Stratégique
★ Tactique
… we have to keep it crisp, disentangled and simple if we
refuse to be crushed by the complexities of our own making.
Edsger W. Dijkstra
...nous devons garder (la solution) concise, démêlée et
simple, si nous refusons d’être écrasés par la complexité
que nous engendrons.
Edsger W. Dijkstra
Et au sein de nos développements…
Ne nous laissons
pas dévorer par la
complexité !!!
cynefin
Topologie de la complexité - développement logiciel
Typologie de la complexité - développement logiciel
Origines de la complexité accidentelle
Premature optimization is the root of all evil.
– Donald Knuth.
pas des scientifiques, Ni des inventeurs, juste des Assembleurs
Programming, for the most part, consists of choosing existing
algorithms in the right combination to solve your problem.
Origines de la complexité accidentelle
You ain't gonna need it
Atelier de design
Origines de la complexité accidentelle
Simplicité, PRINCIPE de design (pour les développeurs)
Simple, composé d'un seul
élément (de “simplex”)
● une dimension
● un concept
● un objectif
● un rôle
● une tâche
Et non pas:
● une instance
● une opération
● une interface avec une
seule fonction
https://www.youtube.com/watch?v=SxdOUGdseq4 “Simple Made Easy" - Rich Hickey (2011)
SOLID / CUPID / GRASP Unix philosophy: does one thing well
Principes de design : un à la fois
source: https://itnext.io/solid-principles-sketches-a38865e771f0
Principes de design : rendre l’implicite Explicite
- Expressivité du code
- Nommer
There are only two hard things in Computer
Science: cache invalidation and naming things.
-- Phil Karlton
DDD pour nous aider à trouver le langage partagé
Méconnaissance des principes de design: que faire?
Définition : mob programming
All the brilliant people working on the same thing,
at the same time, in the same space,
and on the same computer.
Woody Zuill
Toutes ces brillantes personnes travaillant sur la même chose,
au même moment, dans le même espace et sur le même ordinateur.
Ensemble programming
S’améliorer en développant de nouvelles compétences
One hour learning, tous les jours depuis deux années
Management
Backlog de sujets
Learning - développer ses compétences
Kata - Robot Name
FUT76
VFR53
OUY42
RDZ41
- Nom : 3 lettres + 2 chiffres
- Nom unique
Résultat, sur de l’apprentissage du typescript
Résultat, sur de l’apprentissage
Versus une solution communautaire
Non, Non…
No, What…
Ne pas écrire de code
Delete Code
DRY
Refactoring
Incidence de l’Architecture sur la complexité accidentelle
Décaler la complexité accidentelle aux marges (à l'extérieur)
hexagonal onion
Règles de ‘simple design’ (James Shore)
● Intention claire et compréhensible
● Concret, pas spéculatif (YAGNI)
● Cohésion: ce qui change ensemble, reste ensemble.
● Découplage: loin des yeux, loin de l’esprit (abstraction)
● Isolation: ce qui est très souvent utilisé => abstrait,
derrière une interface/contrat.
“Quand (et non pas si) je dois revenir sur ma décision dans le futur, à
quel point ce sera difficile ?"
https://www.jamesshore.com/v2/books/aoad2/simple_design
:( ...des outils imparfaits…
Tony Hoare introduced Null references in ALGOL
"simply because it was so easy to implement", says Mr. Hoare.
He talks about that decision considering it "my billion-dollar
mistake".
Orienté Objet - Alan Kay
OOP to me means only messaging, local retention and
protection and hiding of state-process, and extreme late-
binding of all things. It can be done in Smalltalk and in LISP.
There are possibly other systems in which this is possible, but
I'm not aware of them.
Plus de simplicité dans nos outils, shift actuel…
Identifier les causes de la complexité (et les éliminer)
● Complexité cyclomatique => Algo, fonctions (λ), SRP
● States (Etats)
○ State makes programs hard to test.
○ State makes programs hard to understand.
● Variabilité => Mutabilité
● Effets de bords => Pureté
Approche procédurale
complexité
cyclomatique
Approche Fonctionnelle
Héritage Composition
Lequel vous parait le plus simple ?
Complexité accidentelle et notre cerveau
Sensible reasoning in two tasks…
Hilary F. Farris & Russell Revlin
Cette séquence de nombre est donnée : 2, 4, 6
deviner la règle…
réponse 1 : 8-10-12
réponse 2: 14-16-18
https://fs.blog/complexity-bias/
Toute séquence croissante de nombres :
- The participants could have said anything
from “1, 2, 3” to “3, 7, 99” and been correct.
Rasoir d'Ockham - 1341
Pluralitas non est ponenda
sine necessitate
Les multiples ne doivent pas être utilisés
sans nécessité
PSEUDO SCIENCES et COMPLOTISME
Biais de complexité…Que faire ?
- Prise de conscience
- Décision en groupe
Complexité Accidentelle quelques composantes
Complexité Accidentelle un système complexe
Complexité essentielle
Complexité essentielle
ou intrinsèque
Complexité essentielle
ou intrinsèque
Cohésion
connascence.io
Quels moyens pour la defaire…et retrouver de la simplicité
Créativité
Diversité
compétences
Coopération
Création d’un super CERVEAU
- compétences intégrées au sein de l’équipe
- capacité d’écoute importante
- rebondir
- considérer toutes les idées / diversité
Création d’un super CERVEAU
Création d’un super cerveau, jamais bloqué…
Création d’un super cerveau, incluant compétences, idées…
https://cucumber.io/blog/bdd/inclusive-benefits-of-mob-programming/
Certainement pas du premier coup…
un chemin itératif de la complexité à la simplicité…
Domaine Modèle
Equipe
D’après Nick Tune
inspire
transcrit
enrichit
Merci
@guillaume_agile
@acassaigne
https://roti.express/r/atb2022-04

Weitere ähnliche Inhalte

Ähnlich wie _(V3.0) Aux sources de la simplicité Bordeaux 2022.pptx

2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vdsJean Vanderspelden
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011agnes_crepet
 
IA et Traitement Automatique des Langues (TAL) -- quel panorama ?
IA et Traitement Automatique des Langues (TAL) -- quel panorama ?IA et Traitement Automatique des Langues (TAL) -- quel panorama ?
IA et Traitement Automatique des Langues (TAL) -- quel panorama ?Eric De la Clergerie
 
Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique Appstud
 
Des conférences à voir et à revoir
Des conférences à voir et à revoirDes conférences à voir et à revoir
Des conférences à voir et à revoirAnthony Maison
 
Télétravail et égilité : un mariage impossible ?
Télétravail et égilité : un mariage impossible ?Télétravail et égilité : un mariage impossible ?
Télétravail et égilité : un mariage impossible ?Jean David Olekhnovitch
 
Trois petites histoires de dette avec notes de la présentation
Trois petites histoires de dette   avec notes de la présentationTrois petites histoires de dette   avec notes de la présentation
Trois petites histoires de dette avec notes de la présentationBruno MOREL
 
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique Jean Rohmer
 
Agilite Aspectize
Agilite AspectizeAgilite Aspectize
Agilite AspectizeFredy Fadel
 
Implanter l'AOP... Comment partir du bon pied?
Implanter l'AOP... Comment partir du bon pied?Implanter l'AOP... Comment partir du bon pied?
Implanter l'AOP... Comment partir du bon pied?Elapse Technologies
 
Innovation pour une DSI plus agile
Innovation pour une DSI plus agileInnovation pour une DSI plus agile
Innovation pour une DSI plus agileLaurent MEURISSE
 
JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...
JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...
JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...Afnic
 
S'organiser avec Trello
S'organiser avec TrelloS'organiser avec Trello
S'organiser avec Trellokarinebb
 
12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agile12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agileChristophe Addinquy
 

Ähnlich wie _(V3.0) Aux sources de la simplicité Bordeaux 2022.pptx (20)

2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds2013 j1 numérique & accompagnement carif oref_itg_j_vds
2013 j1 numérique & accompagnement carif oref_itg_j_vds
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011
 
071 facteur humain
071   facteur humain071   facteur humain
071 facteur humain
 
Jean Rohmer
Jean RohmerJean Rohmer
Jean Rohmer
 
Disic mars2014
Disic mars2014Disic mars2014
Disic mars2014
 
IA et Traitement Automatique des Langues (TAL) -- quel panorama ?
IA et Traitement Automatique des Langues (TAL) -- quel panorama ?IA et Traitement Automatique des Langues (TAL) -- quel panorama ?
IA et Traitement Automatique des Langues (TAL) -- quel panorama ?
 
Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique Intelligence Artificielle - La technique et l'éthique
Intelligence Artificielle - La technique et l'éthique
 
Des conférences à voir et à revoir
Des conférences à voir et à revoirDes conférences à voir et à revoir
Des conférences à voir et à revoir
 
Télétravail et égilité : un mariage impossible ?
Télétravail et égilité : un mariage impossible ?Télétravail et égilité : un mariage impossible ?
Télétravail et égilité : un mariage impossible ?
 
Trois petites histoires de dette avec notes de la présentation
Trois petites histoires de dette   avec notes de la présentationTrois petites histoires de dette   avec notes de la présentation
Trois petites histoires de dette avec notes de la présentation
 
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
De l'IA au Calcul Littéraire: Pourquoi j'ai zappé le Web Sémantique
 
Agilite Aspectize
Agilite AspectizeAgilite Aspectize
Agilite Aspectize
 
Implanter l'AOP... Comment partir du bon pied?
Implanter l'AOP... Comment partir du bon pied?Implanter l'AOP... Comment partir du bon pied?
Implanter l'AOP... Comment partir du bon pied?
 
Coex12 - Je l'ai trouvé sur internet
Coex12 - Je l'ai trouvé sur internetCoex12 - Je l'ai trouvé sur internet
Coex12 - Je l'ai trouvé sur internet
 
Innovation pour une DSI plus agile
Innovation pour une DSI plus agileInnovation pour une DSI plus agile
Innovation pour une DSI plus agile
 
JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...
JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...
JCSA2013 01 Tutoriel Stéphane Bortzmeyer "Tout réseau a besoin d'identificate...
 
Atelier trello (2)
Atelier trello (2)Atelier trello (2)
Atelier trello (2)
 
S'organiser avec Trello
S'organiser avec TrelloS'organiser avec Trello
S'organiser avec Trello
 
Software Craftsmanship: En pratique
Software Craftsmanship: En pratiqueSoftware Craftsmanship: En pratique
Software Craftsmanship: En pratique
 
12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agile12+1 Patterns opérationnels de transition agile
12+1 Patterns opérationnels de transition agile
 

Mehr von Guillaume Saint Etienne

Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...Guillaume Saint Etienne
 
des algoritmes et des hommes (ethique et code).pdf
des algoritmes et des hommes (ethique et code).pdfdes algoritmes et des hommes (ethique et code).pdf
des algoritmes et des hommes (ethique et code).pdfGuillaume Saint Etienne
 
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdfLa crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdfGuillaume Saint Etienne
 
Il n’y a pas de bons développeurs.pptx
Il n’y a pas de bons développeurs.pptxIl n’y a pas de bons développeurs.pptx
Il n’y a pas de bons développeurs.pptxGuillaume Saint Etienne
 
10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptxGuillaume Saint Etienne
 
Vendredi Tech_ la programmation fonctionnelle.pptx
Vendredi Tech_ la programmation fonctionnelle.pptxVendredi Tech_ la programmation fonctionnelle.pptx
Vendredi Tech_ la programmation fonctionnelle.pptxGuillaume Saint Etienne
 
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxFeedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxGuillaume Saint Etienne
 
Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)Guillaume Saint Etienne
 
Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.Guillaume Saint Etienne
 

Mehr von Guillaume Saint Etienne (20)

musique electronique au cinéma.pptx
musique electronique au cinéma.pptxmusique electronique au cinéma.pptx
musique electronique au cinéma.pptx
 
DDD FOR POs.pdf
DDD FOR POs.pdfDDD FOR POs.pdf
DDD FOR POs.pdf
 
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
 
des algoritmes et des hommes (ethique et code).pdf
des algoritmes et des hommes (ethique et code).pdfdes algoritmes et des hommes (ethique et code).pdf
des algoritmes et des hommes (ethique et code).pdf
 
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdfLa crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
 
How we can BUILD.pdf
How we can BUILD.pdfHow we can BUILD.pdf
How we can BUILD.pdf
 
des mutants dans le code.pdf
des mutants dans le code.pdfdes mutants dans le code.pdf
des mutants dans le code.pdf
 
Il n’y a pas de bons développeurs.pptx
Il n’y a pas de bons développeurs.pptxIl n’y a pas de bons développeurs.pptx
Il n’y a pas de bons développeurs.pptx
 
Living Documentation (TDD, BDD).pptx
Living Documentation (TDD, BDD).pptxLiving Documentation (TDD, BDD).pptx
Living Documentation (TDD, BDD).pptx
 
Agile pour l'echafaud ATT2020.pptx
Agile pour l'echafaud ATT2020.pptxAgile pour l'echafaud ATT2020.pptx
Agile pour l'echafaud ATT2020.pptx
 
10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx
 
Vendredi Tech_ la programmation fonctionnelle.pptx
Vendredi Tech_ la programmation fonctionnelle.pptxVendredi Tech_ la programmation fonctionnelle.pptx
Vendredi Tech_ la programmation fonctionnelle.pptx
 
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxFeedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptx
 
Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)Crise agile chez les développeurs (frug agile 2020)
Crise agile chez les développeurs (frug agile 2020)
 
My feedback on ddd europe
My feedback on ddd europeMy feedback on ddd europe
My feedback on ddd europe
 
Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.
 
Tdd vs SQL
Tdd vs SQLTdd vs SQL
Tdd vs SQL
 
Clean architectures
Clean architecturesClean architectures
Clean architectures
 
Services & Contrats Agiles
Services & Contrats AgilesServices & Contrats Agiles
Services & Contrats Agiles
 
AGILE TOUR 2009: agilité et services
AGILE TOUR 2009:   agilité et servicesAGILE TOUR 2009:   agilité et services
AGILE TOUR 2009: agilité et services
 

_(V3.0) Aux sources de la simplicité Bordeaux 2022.pptx

Hinweis der Redaktion

  1. C’est la partie organisation => rénommer Stratégique par Orga ?
  2. restons humbles... Problem #6, inventing algorithms. Often we as programmers think we are inventing algorithms to solve our problems. This is hardly ever the case. In almost all cases there are existing algorithms that can be put together to solve your problem. Algorithms like Dijkstra’s algorithm, levenshtein distance, voronoi tessellations etc. Programming for the most part consists of choosing existing algorithms in the right combination to solve your problem. If you are inventing new algorithms you either don’t know the right algorithm or are working on your PhD thesis. https://syounggallery.wordpress.com/2014/11/03/why-your-code-is-so-hard-to-understand/
  3. On peut donner la définition de Kent Beck également “Ensemble consistent” ♻︎ Une notion objective.