SlideShare a Scribd company logo
1 of 45
Download to read offline
Ecologie du Logiciel
Entropie, Simplicité, Croissance et Décroissance
software craftsmanship luxembourg
Note d’Intention:
Nous allons essayer de montrer d’après des bases scientifiques (entropie et
théorie de l’information) que les principes écologiques (soutenabilité, moindre
impact, parcimonie des ressources) s’appliquent au dev logiciel.
Par quel moyen? TDD d’abord, isolation, limite des dépendance, Design
Emergent, Code “pur”, effets de bords repoussés, architecture réactive, do just in
time, acquire late/release early, no lock, tell don’t ask, YAGNI, le dernier moment
responsable (LEAN) = late decision, et d’autres tactiques. Mais aussi des
stratégies d’ensemble avec des outils comme les Wardley Map et le DDD.
PLAN :
1. principes de l'écologie (énergie, entropie)
2. liens entre logiciel et pratiques éco responsables
● minimiser lʼentropie
● logiciels optimisés
● valeurs utiles / zéro déchets
● adapter lʼexistant
● logiciels et permaculture
● prendre soin des humains (harmoniser les équipes)
● créer lʼabondance et redistribuer les surplus
3. Ecologie stratégique
● Golden Circles, Divide & Conquer,
● Wardley maps (maturité/valeurs), bounded contexts, patterns DDD
● Outils: impact mapping, US mapping, Domain storytelling, event storming,
4. Ecologie tactique
● code that fits in your head
● CI/ CD
● architectures organiques et évolutives (growing objects)
Place aux définitions
Qu’est ce que le travail ?
Le travail d'une (ou des) force(s) est l'énergie fournie par cette force lorsque son
point d'application se déplace.
Il est responsable de la variation de l'énergie (cinétique ou thermodynamique)
du système qui subit cette force.
On considère que le rendement est le rapport entre l'énergie utilisable après
transformation et l'énergie fournie.
Wikipedia
Energie...
Que nous dit la science?
Loi de la thermo-dynamique
L’entropie (macro) augmente avec le nombre de possibles, et c’est irréversible.
le Travail et l’Entropie
Corrélation: Entropie et Information (Shannon)
Pendant ce temps...
temps
entropie information
bruit
utilité / sens
Le démon de Maxwell
La solution de Brillouin & Shannon
Vingt ans plus tard, en 1949, Léon Brillouin propose une solution du paradoxe mettant l'accent sur la nécessité
pour le démon d'acquérir de l'information, et mettant en évidence que cette acquisition augmente l'entropie du
système et sauve la seconde loi.
temps
entropie information
Entropie (et écologie)
Trop d’entropie => Déchets
Trop d’entropie logicielle (pollution)
Epics
Feature Envy
Silos
Technical decisions
Performance concerns
Security concerns
Over-engineering
Frameworks (!!!)
Dead code
Code smells (unclean)
Untested code
Misaligned User stories
UX Bottlenecks
Unused Features
Strong coupling
Technical locks
Ergonomic issues
Performance issues
Security issues...
Meetings
Artefacts
Engineering
Code
CI/CD
DevOps
L’augmentation de l’entropie est-elle une fatalité?
Néguentropie
http://www.revue3emillenaire.com/blog/la-creation-collective-du-temps-par-joel-de-rosnay/
La néguentropie est l’inverse
de l’entropie : c’est en quelque
sorte une forme d’énergie
potentielle.
Toute acquisition d’information se
paie par une dépense d’énergie,
donc un accroissement de l’entropie
BRUIT
VALEUR
AJOUTÉE
(pouvoir d’organisation)
http://www.revue3emillenaire.com/blog/la-creation-collective-du-temps-par-joel-de-rosnay/
Régulation de l’entropie dans l’entreprise
Fondamental: l’équipe doit livrer aux utilisateurs
Une équipe pour construire un produit
Les utilisateurs du produit
Les principaux risques
● Fausses hypothèses de valeur
● Inconnue technologique / Dérive / Complexité accidentelle / Dette
● Risque social
Diminuer l'entropie
Maîtriser l’entropie (la dissipation, le désordre)
N’acquerir que ce qui est nécessaire (le plus tard et libérer les plus vite)
Créer des systèmes de forte valeurs ajoutée
Créer des systèmes réutilisables et ouverts (- entropie)
Créer des systèmes avec peu de fuites:
➔ moins de dépendances
➔ moins de ressources et de verrous
➔ plus de résilience
➔ plus de parcimonie
Entropie (de l’information)
Large capability
to work
Small capability
to work
Entropie logicielle = transformer le potentiel en valeur
➔ Users
➔ PM / PO
➔ Managers (all)
➔ Developers
➔ Testers
➔ Infrastructure
➔ Supply
➔ Utilities
Product
Solution
Application
Service
Large capability
to work
Small capability
to work
écolo? ��
1. LEAN / Design Thinking
2. TDD, KISS, DRY
3. TDD, minimal code / design,
JIT, acquire later / release early
4. Composition (over inheritance)
5. Modularity, IoC
6. OCP, High Order Functions
7. Learning, creative destruction
Augmentation soutenable de l’entropie
Design Thinking => TDD
TDD version Simple
minimal
entropy
lower
entropy
��
��
minimal
entropy
lower
entropy
��
��
les tests garantissent un comportement
maintenant et pour toujours
faites passer le test avec un minimum d’effort
optimisez le code produit pour diminuer la dette
L’augmentation de l’entropie est limitée à son juste minimum
Gérer ses frontières (boundaries)
Pour limiter la dissipation d’énergie, on isole:
Gérer ses frontières (boundaries)
Pour limiter la dissipation d’énergie, on isole:
Gérer ses frontières (boundaries)
Gérer les échanges (Open Host, Shared
Kernel, Conformist, etc)
Pour limiter la dissipation d’énergie, on isole:
Back to code: un exemple de pollution
Code: classic exception style vs monadic style
https://www.youtube.com/watch?v=a1ye9eGTB98
https://github.com/Elfocrash/clean-minimal-api/
Performance: classic exception vs monadic style
https://www.youtube.com/watch?v=a1ye9eGTB98
Eviter la complexité accidentelle et incidentelle
● Garder le code : Familier / Disponible / A la portée / Compréhensible
● Expressivité du code (facilite la compréhension)
● Élégance: Concis et non confus.
● Façon de procéder “standardisée”, connue.
● Courtes boucles de feedback
● Des outils simples, qui aident
● Des composants/libraires tierces “Simples” (pas de gros framework qui tache)
Travailler à plusieurs créé encore plus d’entropie
Quelle drôle d’idée! (tout seul on va plus vite, non?)
Différence de compréhension
Différence de compétences
Différence de conception
Différence de motivation
Luttes pour le pouvoir
https://psychologie.savoir.fr/le-travail-le-pouvoir-au-coeur-de-l-organisation/
Organiser, cette obsession du vivant!
Diminuer l’entropie !!! = Rendre simple
● Une vision claire des choix d’architecture
● Façon cohérente de résoudre un problème
● Facilement remplaçable
● Facilement extensible là où cela est approprié
● Aussi simple que possible mais pas simpliste
● Cohésion forte / couplage lâche
● SOLID / Unix Style / CUPID
● Les tâches les plus ordinaires/communes sont les plus simples à réaliser
D’autres formes d’organisation sont possibles
https://www.synbioz.com/blog/organisation_discretement_efficace
Accélérer ?
Les moyens permettant de s’opposer à l’entropie ne sont pas à rechercher du
côté de l’accélération de la machine économique qui conduit à un
accroissement de la consommation.
Elle va dans le sens du désordre et de l’entropie.
Joel De Rosnay
Ralentir
Maintenir l’organisation d’un système ouvert, cellule vivante ou
société humaine, revient donc à ralentir la vitesse d’accroissement de
l’entropie dans ce système. C’est à dire ralentir l’écoulement du temps.
C’est l’action créatrice (...) qui permet de compenser l’écoulement du
temps, car toute œuvre originale est analogue à une réserve de temps.
D’où la notion individuelle de temps « créateur », de temps
accomplissement.
Joel De Rosnay

More Related Content

Similar to Ecologie du Logiciel (Craft Luxembourg 2022).pdf

Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computing
Normandy JUG
 
Pitch Internat project 27 Axance
Pitch Internat project 27 AxancePitch Internat project 27 Axance
Pitch Internat project 27 Axance
Loïc Vieira
 

Similar to Ecologie du Logiciel (Craft Luxembourg 2022).pdf (20)

'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience
'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience
'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience
 
Neo nomade présentation pour jelly lille 2803
Neo nomade présentation pour jelly lille 2803Neo nomade présentation pour jelly lille 2803
Neo nomade présentation pour jelly lille 2803
 
Neo nomade présentation pour jelly lille 2803
Neo nomade présentation pour jelly lille 2803Neo nomade présentation pour jelly lille 2803
Neo nomade présentation pour jelly lille 2803
 
Toptic 12 octobre2010
Toptic 12 octobre2010Toptic 12 octobre2010
Toptic 12 octobre2010
 
Présentation Logiciels Libres et Open Source - Philosophie et Concepts.pdf
Présentation Logiciels Libres et Open Source - Philosophie et Concepts.pdfPrésentation Logiciels Libres et Open Source - Philosophie et Concepts.pdf
Présentation Logiciels Libres et Open Source - Philosophie et Concepts.pdf
 
Existe t-il une agilité open-source?
Existe t-il une agilité open-source?Existe t-il une agilité open-source?
Existe t-il une agilité open-source?
 
Existe-t-il une agilité open source ?
Existe-t-il une agilité open source  ?Existe-t-il une agilité open source  ?
Existe-t-il une agilité open source ?
 
Projets d'Humanités numérique et collaboration de différents métiers
Projets d'Humanités numérique et collaboration de différents métiersProjets d'Humanités numérique et collaboration de différents métiers
Projets d'Humanités numérique et collaboration de différents métiers
 
CM patterns
CM patternsCM patterns
CM patterns
 
R´evision d’ontologies fond´ee sur tableaux.doc
R´evision d’ontologies fond´ee sur tableaux.docR´evision d’ontologies fond´ee sur tableaux.doc
R´evision d’ontologies fond´ee sur tableaux.doc
 
Bonnes pratiques pour un projet de GED
Bonnes pratiques pour un projet de GEDBonnes pratiques pour un projet de GED
Bonnes pratiques pour un projet de GED
 
TCAO par éric Lamidieu
TCAO par éric LamidieuTCAO par éric Lamidieu
TCAO par éric Lamidieu
 
Ergonomie et modélisation des utilisateurs d'une ihm 2014
Ergonomie et modélisation des utilisateurs d'une ihm 2014Ergonomie et modélisation des utilisateurs d'une ihm 2014
Ergonomie et modélisation des utilisateurs d'une ihm 2014
 
Hibernate vs le Cloud computing
Hibernate vs le Cloud computingHibernate vs le Cloud computing
Hibernate vs le Cloud computing
 
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computing
 
Chap XII Analyse Numerique
Chap XII Analyse NumeriqueChap XII Analyse Numerique
Chap XII Analyse Numerique
 
20111205 breizh jug-devops
20111205 breizh jug-devops20111205 breizh jug-devops
20111205 breizh jug-devops
 
Pitch Internat project 27 Axance
Pitch Internat project 27 AxancePitch Internat project 27 Axance
Pitch Internat project 27 Axance
 
FAIRisation d’analyses bioinformatiques.pdf
FAIRisation d’analyses bioinformatiques.pdfFAIRisation d’analyses bioinformatiques.pdf
FAIRisation d’analyses bioinformatiques.pdf
 
Booster l'Ergonomie et Expérience Utilisateur Digitale (web & mobile)
Booster l'Ergonomie et Expérience Utilisateur Digitale (web & mobile)Booster l'Ergonomie et Expérience Utilisateur Digitale (web & mobile)
Booster l'Ergonomie et Expérience Utilisateur Digitale (web & mobile)
 

More from 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
 
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
 

More from 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
 
_(V3.0) Aux sources de la simplicité Bordeaux 2022.pptx
_(V3.0) Aux sources de la simplicité Bordeaux 2022.pptx_(V3.0) Aux sources de la simplicité Bordeaux 2022.pptx
_(V3.0) Aux sources de la simplicité Bordeaux 2022.pptx
 
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
 

Ecologie du Logiciel (Craft Luxembourg 2022).pdf

  • 1. Ecologie du Logiciel Entropie, Simplicité, Croissance et Décroissance software craftsmanship luxembourg
  • 2. Note d’Intention: Nous allons essayer de montrer d’après des bases scientifiques (entropie et théorie de l’information) que les principes écologiques (soutenabilité, moindre impact, parcimonie des ressources) s’appliquent au dev logiciel. Par quel moyen? TDD d’abord, isolation, limite des dépendance, Design Emergent, Code “pur”, effets de bords repoussés, architecture réactive, do just in time, acquire late/release early, no lock, tell don’t ask, YAGNI, le dernier moment responsable (LEAN) = late decision, et d’autres tactiques. Mais aussi des stratégies d’ensemble avec des outils comme les Wardley Map et le DDD.
  • 3. PLAN : 1. principes de l'écologie (énergie, entropie) 2. liens entre logiciel et pratiques éco responsables ● minimiser lʼentropie ● logiciels optimisés ● valeurs utiles / zéro déchets ● adapter lʼexistant ● logiciels et permaculture ● prendre soin des humains (harmoniser les équipes) ● créer lʼabondance et redistribuer les surplus 3. Ecologie stratégique ● Golden Circles, Divide & Conquer, ● Wardley maps (maturité/valeurs), bounded contexts, patterns DDD ● Outils: impact mapping, US mapping, Domain storytelling, event storming, 4. Ecologie tactique ● code that fits in your head ● CI/ CD ● architectures organiques et évolutives (growing objects)
  • 5. Qu’est ce que le travail ? Le travail d'une (ou des) force(s) est l'énergie fournie par cette force lorsque son point d'application se déplace. Il est responsable de la variation de l'énergie (cinétique ou thermodynamique) du système qui subit cette force. On considère que le rendement est le rapport entre l'énergie utilisable après transformation et l'énergie fournie. Wikipedia
  • 7. Que nous dit la science?
  • 8. Loi de la thermo-dynamique L’entropie (macro) augmente avec le nombre de possibles, et c’est irréversible.
  • 9.
  • 10. le Travail et l’Entropie
  • 11. Corrélation: Entropie et Information (Shannon) Pendant ce temps... temps entropie information bruit utilité / sens
  • 12. Le démon de Maxwell
  • 13. La solution de Brillouin & Shannon Vingt ans plus tard, en 1949, Léon Brillouin propose une solution du paradoxe mettant l'accent sur la nécessité pour le démon d'acquérir de l'information, et mettant en évidence que cette acquisition augmente l'entropie du système et sauve la seconde loi. temps entropie information
  • 16. Trop d’entropie logicielle (pollution) Epics Feature Envy Silos Technical decisions Performance concerns Security concerns Over-engineering Frameworks (!!!) Dead code Code smells (unclean) Untested code Misaligned User stories UX Bottlenecks Unused Features Strong coupling Technical locks Ergonomic issues Performance issues Security issues... Meetings Artefacts Engineering Code CI/CD DevOps
  • 17. L’augmentation de l’entropie est-elle une fatalité?
  • 18. Néguentropie http://www.revue3emillenaire.com/blog/la-creation-collective-du-temps-par-joel-de-rosnay/ La néguentropie est l’inverse de l’entropie : c’est en quelque sorte une forme d’énergie potentielle. Toute acquisition d’information se paie par une dépense d’énergie, donc un accroissement de l’entropie BRUIT VALEUR AJOUTÉE (pouvoir d’organisation)
  • 20.
  • 21. Régulation de l’entropie dans l’entreprise
  • 22. Fondamental: l’équipe doit livrer aux utilisateurs Une équipe pour construire un produit Les utilisateurs du produit
  • 23. Les principaux risques ● Fausses hypothèses de valeur ● Inconnue technologique / Dérive / Complexité accidentelle / Dette ● Risque social
  • 24. Diminuer l'entropie Maîtriser l’entropie (la dissipation, le désordre) N’acquerir que ce qui est nécessaire (le plus tard et libérer les plus vite) Créer des systèmes de forte valeurs ajoutée Créer des systèmes réutilisables et ouverts (- entropie) Créer des systèmes avec peu de fuites: ➔ moins de dépendances ➔ moins de ressources et de verrous ➔ plus de résilience ➔ plus de parcimonie
  • 25. Entropie (de l’information) Large capability to work Small capability to work
  • 26. Entropie logicielle = transformer le potentiel en valeur ➔ Users ➔ PM / PO ➔ Managers (all) ➔ Developers ➔ Testers ➔ Infrastructure ➔ Supply ➔ Utilities Product Solution Application Service Large capability to work Small capability to work
  • 28. 1. LEAN / Design Thinking 2. TDD, KISS, DRY 3. TDD, minimal code / design, JIT, acquire later / release early 4. Composition (over inheritance) 5. Modularity, IoC 6. OCP, High Order Functions 7. Learning, creative destruction Augmentation soutenable de l’entropie
  • 32. minimal entropy lower entropy �� �� les tests garantissent un comportement maintenant et pour toujours faites passer le test avec un minimum d’effort optimisez le code produit pour diminuer la dette L’augmentation de l’entropie est limitée à son juste minimum
  • 33. Gérer ses frontières (boundaries) Pour limiter la dissipation d’énergie, on isole:
  • 34. Gérer ses frontières (boundaries) Pour limiter la dissipation d’énergie, on isole:
  • 35. Gérer ses frontières (boundaries) Gérer les échanges (Open Host, Shared Kernel, Conformist, etc) Pour limiter la dissipation d’énergie, on isole:
  • 36. Back to code: un exemple de pollution
  • 37. Code: classic exception style vs monadic style https://www.youtube.com/watch?v=a1ye9eGTB98 https://github.com/Elfocrash/clean-minimal-api/
  • 38. Performance: classic exception vs monadic style https://www.youtube.com/watch?v=a1ye9eGTB98
  • 39. Eviter la complexité accidentelle et incidentelle ● Garder le code : Familier / Disponible / A la portée / Compréhensible ● Expressivité du code (facilite la compréhension) ● Élégance: Concis et non confus. ● Façon de procéder “standardisée”, connue. ● Courtes boucles de feedback ● Des outils simples, qui aident ● Des composants/libraires tierces “Simples” (pas de gros framework qui tache)
  • 40.
  • 41. Travailler à plusieurs créé encore plus d’entropie Quelle drôle d’idée! (tout seul on va plus vite, non?) Différence de compréhension Différence de compétences Différence de conception Différence de motivation Luttes pour le pouvoir https://psychologie.savoir.fr/le-travail-le-pouvoir-au-coeur-de-l-organisation/
  • 42. Organiser, cette obsession du vivant! Diminuer l’entropie !!! = Rendre simple ● Une vision claire des choix d’architecture ● Façon cohérente de résoudre un problème ● Facilement remplaçable ● Facilement extensible là où cela est approprié ● Aussi simple que possible mais pas simpliste ● Cohésion forte / couplage lâche ● SOLID / Unix Style / CUPID ● Les tâches les plus ordinaires/communes sont les plus simples à réaliser
  • 43. D’autres formes d’organisation sont possibles https://www.synbioz.com/blog/organisation_discretement_efficace
  • 44. Accélérer ? Les moyens permettant de s’opposer à l’entropie ne sont pas à rechercher du côté de l’accélération de la machine économique qui conduit à un accroissement de la consommation. Elle va dans le sens du désordre et de l’entropie. Joel De Rosnay
  • 45. Ralentir Maintenir l’organisation d’un système ouvert, cellule vivante ou société humaine, revient donc à ralentir la vitesse d’accroissement de l’entropie dans ce système. C’est à dire ralentir l’écoulement du temps. C’est l’action créatrice (...) qui permet de compenser l’écoulement du temps, car toute œuvre originale est analogue à une réserve de temps. D’où la notion individuelle de temps « créateur », de temps accomplissement. Joel De Rosnay