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 - Agile Tour Strasbourg 2017

299 vues

Publié le

Retrospective 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 app 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 les partager avec l'audience.

J'explique pourquoi je trouve important de tester son code et de laisser les développeurs parler avec toutes les parties prenantes des projets.

Publié dans : Logiciels
  • Soyez le premier à commenter

Du Code & Des Humains - Agile Tour Strasbourg 2017

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

×