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
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
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
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
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:
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
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