Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

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

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 70 Publicité

Plus De Contenu Connexe

Plus par Guillaume Saint Etienne (15)

Plus récents (20)

Publicité

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

  1. 1. A la recherche de la simplicité perdue Aux sources de la simplicité Bordeaux 2022
  2. 2. 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)
  3. 3. 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
  4. 4. SIMPLE Complexe
  5. 5. Simplicité Facilité Simplisme
  6. 6. Agile, la science du delivery
  7. 7. nos fondamentaux Validés Scientifiquement
  8. 8. Développement itératif ou en flux Coach Tech Lead
  9. 9. Comment développer de façon simple, soutenable et durable ? Doing Things Right
  10. 10. De complexe à Compliqué
  11. 11. Une proposition : “Tacler” la Complexité 3 niveaux ★ Exploratoire ★ Stratégique ★ Tactique
  12. 12. … 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
  13. 13. Et au sein de nos développements… Ne nous laissons pas dévorer par la complexité !!!
  14. 14. cynefin
  15. 15. Topologie de la complexité - développement logiciel
  16. 16. Typologie de la complexité - développement logiciel
  17. 17. Origines de la complexité accidentelle Premature optimization is the root of all evil. – Donald Knuth.
  18. 18. 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.
  19. 19. Origines de la complexité accidentelle You ain't gonna need it
  20. 20. Atelier de design
  21. 21. Origines de la complexité accidentelle
  22. 22. 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
  23. 23. Principes de design : un à la fois source: https://itnext.io/solid-principles-sketches-a38865e771f0
  24. 24. 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
  25. 25. DDD pour nous aider à trouver le langage partagé
  26. 26. Méconnaissance des principes de design: que faire?
  27. 27. 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
  28. 28. S’améliorer en développant de nouvelles compétences One hour learning, tous les jours depuis deux années Management
  29. 29. Backlog de sujets
  30. 30. Learning - développer ses compétences
  31. 31. Kata - Robot Name FUT76 VFR53 OUY42 RDZ41 - Nom : 3 lettres + 2 chiffres - Nom unique
  32. 32. Résultat, sur de l’apprentissage du typescript
  33. 33. Résultat, sur de l’apprentissage
  34. 34. Versus une solution communautaire
  35. 35. Non, Non… No, What…
  36. 36. Ne pas écrire de code Delete Code DRY Refactoring
  37. 37. Incidence de l’Architecture sur la complexité accidentelle
  38. 38. Décaler la complexité accidentelle aux marges (à l'extérieur) hexagonal onion
  39. 39. 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
  40. 40. :( ...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.
  41. 41. Plus de simplicité dans nos outils, shift actuel…
  42. 42. 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é
  43. 43. Approche procédurale complexité cyclomatique
  44. 44. Approche Fonctionnelle
  45. 45. Héritage Composition Lequel vous parait le plus simple ?
  46. 46. Complexité accidentelle et notre cerveau
  47. 47. 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.
  48. 48. Rasoir d'Ockham - 1341 Pluralitas non est ponenda sine necessitate Les multiples ne doivent pas être utilisés sans nécessité
  49. 49. PSEUDO SCIENCES et COMPLOTISME
  50. 50. Biais de complexité…Que faire ? - Prise de conscience - Décision en groupe
  51. 51. Complexité Accidentelle quelques composantes
  52. 52. Complexité Accidentelle un système complexe
  53. 53. Complexité essentielle
  54. 54. Complexité essentielle ou intrinsèque
  55. 55. Complexité essentielle ou intrinsèque Cohésion connascence.io
  56. 56. Quels moyens pour la defaire…et retrouver de la simplicité Créativité Diversité compétences Coopération
  57. 57. 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é
  58. 58. Création d’un super CERVEAU
  59. 59. Création d’un super cerveau, jamais bloqué…
  60. 60. Création d’un super cerveau, incluant compétences, idées… https://cucumber.io/blog/bdd/inclusive-benefits-of-mob-programming/
  61. 61. Certainement pas du premier coup…
  62. 62. un chemin itératif de la complexité à la simplicité…
  63. 63. Domaine Modèle Equipe D’après Nick Tune inspire transcrit enrichit
  64. 64. Merci @guillaume_agile @acassaigne https://roti.express/r/atb2022-04

Notes de l'éditeur

  • C’est la partie organisation => rénommer Stratégique par Orga ?
  • 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/
  • On peut donner la définition de Kent Beck également
    “Ensemble consistent”
    ♻︎ Une notion objective.

×