Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Du Code & Des Humains - ElsassJUG 2018

232 vues

Publié le

Venez découvrir la rétrospective, non sans humour, de mes huit dernières années dans la création de logiciels.

Je parle de mes débuts avec SCRUM, de la réécriture d'une application mobile un nombre honteux de fois, de l'apprentissage de Clean Code et de l'Extreme Programming.

Je tire les leçons de ces huit années et tente de répondre à ces deux questions :

- Le•a développeur•se est-il•elle une espèce à part, incapable de communiquer avec les gens "normaux" ?
- L'entropie est-elle une fatalité conduisant inévitablement à la réécriture ?

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Du Code & Des Humains - ElsassJUG 2018

  1. 1. Du Code & Des Humains
  2. 2. Du Code & Des Humains ryfacto.fr Nicolas VERINAUD @nverinaud
  3. 3. « Google The Error Message Algorithm »
  4. 4. Toile de Paillage Tissée
  5. 5. Développer un logiciel Facile ? 🤔
  6. 6. Développer un logiciel Facile ? 🤔 Toyota
  7. 7. Développer un logiciel Facile ? 🤔 Toyota Chinook
  8. 8. Développer un logiciel Facile ? 🤔 Toyota Chinook Mars Climate Orbiter
  9. 9. Développer un logiciel Facile ? 🤔 Toyota Chinook Mars Climate Orbiter Therac-25
  10. 10. Développer un logiciel Facile ? 🤔 Toyota Chinook Mars Climate Orbiter Therac-25 911
  11. 11. https://en.wikipedia.org/wiki/List_of_software_bugs
  12. 12. Développeur•se Professionnel•le
  13. 13. 🙂 Fonctionnalité 3 jours
  14. 14. 😕 Fonctionnalité 3 semaines
  15. 15. 😖 Fonctionnalité Trop long
  16. 16. Productivité 0 25 50 75 100 Mois 0 1 2 3 4 5 6 7 8 9 10 11 12 Vélocité
  17. 17. Productivité 0 25 50 75 100 Mois 0 1 2 3 4 5 6 7 8 9 10 11 12 Vélocité
  18. 18. Productivité 0 25 50 75 100 Mois 0 1 2 3 4 5 6 7 8 9 10 11 12 Vélocité
  19. 19. Développeur•se : une espèce à part ? Réécrire : une fatalité ?
  20. 20. Développeur•se : une espèce à part ? Réécrire : une fatalité ?
  21. 21. Client•e
  22. 22. Client•e Commercial•e
  23. 23. Client•e Commercial•e Directeur•rice Technique
  24. 24. Client•e Commercial•e Directeur•rice Technique Mockups Master
  25. 25. Client•e Commercial•e Directeur•rice Technique Scrum Master Mockups Master
  26. 26. Client•e Commercial•e Directeur•rice Technique Dev Scrum Master Mockups Master
  27. 27. Utilisateur•rice Product Owner Proxy Product Owner Dev Lead Dev Scrum Master
  28. 28. Utilisateur•rice Product Owner Proxy Product Owner Dev Lead Dev Scrum Master
  29. 29. Utilisateur•rice Product Owner Proxy Product Owner Dev Lead Dev Scrum Master
  30. 30. Utilisateur•rice Product Owner Proxy Product Owner Dev Lead Dev Scrum Master Téléphone ArabeEnterprise Edition
  31. 31. • 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
  32. 32. Discuter avec l’utilisateur•rice pour construire un logiciel qui fait le boulot
  33. 33. Qu’est-ce que le code ?
  34. 34. Qu’est-ce que le code ?
  35. 35. Le code est la spécification la plus détaillée du monde
  36. 36. - Alberto Brandolini « C’est la compréhension du•de la développeur•se, pas votre connaissance, qui devient le logiciel. »
  37. 37. 01001010 11101111 01010101
  38. 38. 01001010 11101111 01010101
  39. 39. 01001010 11101111 01010101 UX
  40. 40. Comment comprendre efficacement les besoins ?
  41. 41. Quel est le véritable problème ? Les 5 « Pourquoi ? » et la définition récursive
  42. 42. Quel est le véritable problème ? Les 5 « Pourquoi ? » et la définition récursive
  43. 43. 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. »
  44. 44. 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 ?
  45. 45. définition récursive « Pour aider les médecins à faire leurs ordonnances. »
  46. 46. définition récursive « Pour aider les médecins à faire leurs ordonnances. » Pourquoi ?
  47. 47. définition récursive « Car les médecins font des erreurs en prescrivant des médicaments. »
  48. 48. définition récursive « Car les médecins font des erreurs en prescrivant des médicaments. » Pourquoi ?
  49. 49. définition récursive « Car ils prescrivent des médicaments incompatibles. »
  50. 50. définition récursive « Car ils prescrivent des médicaments incompatibles. » Pourquoi ?
  51. 51. définition récursive « Car les interactions entre les médicaments sont complexes. »
  52. 52. définition récursive « Car les interactions entre les médicaments sont complexes. » Une interaction entre médicaments ?
  53. 53. 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. »
  54. 54. Base de donnée générique de médicaments
  55. 55. Base de donnée générique de médicaments Aider les médecins à prescrire les bons médicaments
  56. 56. Quelles solutions ? Impact Mapping
  57. 57. Impact Mapping Quelles solutions ? Créer le logiciel qui aura le meilleur impact, le meilleur ROI
  58. 58. Impact Mapping Quelles solutions ? Créer le logiciel qui aura le meilleur impact, le meilleur ROI
  59. 59. Créer le logiciel qui aura le meilleur impact, le meilleur ROI Gojko Adzic
  60. 60. Implémentation ? Métier ? Event Storming
  61. 61. Implémentation ? Métier ? Event Storming
  62. 62. Implémentation ? Métier ? Event Storming Aligner Métier et Technique
  63. 63. Implémentation ? Métier ? Event Storming Aligner Métier et Technique http://ziobrando.blogspot.fr/2013/11/introducing-event-storming.html
  64. 64. Vision d’ensemble ? Priorités ? User Story Mapping
  65. 65. Vision d’ensemble ? Priorités ? User Story Mapping Créer un véritable MVP
  66. 66. User Story Mapping Vision d’ensemble ? Priorités ? Créer un véritable MVP
  67. 67. User Story Mapping Créer un véritable MVP Jeff Patton
  68. 68. User Story Mapping Créer un véritable MVP
  69. 69. C’est la compréhension du•de la développeur•se qui devient le logiciel, pas le cahier des charges.
  70. 70. Projet complexe ?
  71. 71. Projet complexe ? Mauvaise conception ?
  72. 72. Projet complexe ? Mauvaise conception ?
  73. 73. Deux Formes de Complexité Complexité Essentielle
  74. 74. Deux Formes de Complexité Complexité Essentielle Complexité Accidentelle
  75. 75. Comment s’en rendre compte ? Deux Formes de Complexité Complexité Essentielle Complexité Accidentelle
  76. 76. Comment s’en rendre compte ? Deux Formes de Complexité Complexité Essentielle Complexité Accidentelle ≠ Dette Technique
  77. 77. Deux Formes de Complexité Complexité Essentielle Complexité Accidentelle Comment s’en rendre compte ?
  78. 78. + Deux Formes de Complexité Complexité Essentielle Complexité Accidentelle
  79. 79. Comment estimez-vous ? Arrêtez d’estimer !
  80. 80. Comment estimez-vous ? Arrêtez d’estimer !
  81. 81. - Un•e développeur•se qui fait une estimation fiable « Je ne sais pas ! »
  82. 82. Comment éviter la complexité accidentelle ? En prenant soin du code !En prenant soin du code !
  83. 83. Comment éviter la complexité accidentelle ? En prenant soin du code ! Comment ?
  84. 84. Comment éviter la complexité accidentelle ? En prenant soin du code ! Comment ? Refactoring régulier !
  85. 85. Comment éviter la complexité accidentelle ? En prenant soin du code ! Comment ? Refactoring régulier ! Je risque de tout péter non ?
  86. 86. 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 !
  87. 87. accidentelle ? En prenant soin du code ! Comment ? Refactoring régulier ! Je risque de tout péter non ? Non ! Grâce aux tests automatisés !
  88. 88. Deux possibilités Économiquement Mort
  89. 89. Comment s’en sortir ? Deux possibilités Économiquement Mort
  90. 90. Comment s’en sortir ? Deux possibilités Économiquement Mort Avant la 1ère mise en prod 😱
  91. 91. Deux possibilités Économiquement Mort Comment s’en sortir ? Repartir de zéro avec des tests
  92. 92. Repartir de zéro avec des tests Deux possibilités Économiquement Mort Comment s’en sortir ?
  93. 93. Deux possibilités Économiquement Mort
  94. 94. Embaucher ? Deux possibilités Économiquement Viable
  95. 95. Embaucher ? Deux possibilités Économiquement Viable Tierce Maintenance Applicative 😱
  96. 96. Deux possibilités Économiquement Viable Embaucher ?
  97. 97. Économiquement Viable Embaucher ? Fred Brooks
  98. 98. Fred Brooks « Adding manpower to a late project makes it later. »
  99. 99. Écrire des tests... ...pour pouvoir refactor...
  100. 100. Écrire des tests... ...pour pouvoir refactor... ...pour prospérer !
  101. 101. Écrire des tests... ...pour pouvoir refactor... ...pour prospérer !
  102. 102. Scrum
  103. 103. Scrum + Extreme Programming
  104. 104. Test Driven Development Culture du Partage
  105. 105. Culture du Partage Test Driven Development Solidarité Technologique
  106. 106. Culture du Partage Test Driven Development Solidarité Technologique
  107. 107. Créer un logiciel pertinent avec le meilleur ROI est difficile
  108. 108. Ne pas négliger le Code Ni la compréhension du Développeur
  109. 109. Ne pas négliger le Code Ni la compréhension du•de la Développeur•se
  110. 110. Du Code
  111. 111. Du Code & Des Humains Merci !
  112. 112. Du Code & Des Humains Merci ! ryfacto.fr@nverinaud Envie de travailler avec nous ?

×