1. Comment concevoir efficacement
des systèmes d’information dans un
monde complexe ?
Architecture, Jardinage et Lean Software Development
DISIC
6 Mars 2014 (v0.1)
Yves Caseau
Académie des Technologies
Yves Caseau - présentation DISIC – Mars 2014
1/31
2. Outline
1.
2.
3.
4.
Gouvernance et Complexité
Le défi des entreprises du 21e siècle et de
leurs systèmes d’information
Complexité et Organisation
Ce que la science des systèmes complexes nous propose
Architecture d’Entreprise, SOA and durabilité
L’anticipation dans un monde complexe n’est pas de la
prévision, mais la construction d’un “potentiel de situation”
Lean Software Factory
L’adaptation des méthodes de développement aux nouveaux
défis, dont celui de la complexité
Yves Caseau - présentation DISIC – Mars 2014
2/31
3. 1ère Partie : Gouvernance et Complexité
Les entreprises face à un monde complexe
Un monde complexe:
Hyper-competition, mondialisation, le temps se “racourcit”
La puissance passe du coté du consommateur (F. Dupuy)
T. Friedman : « All that is easy has been done, what’s left is the hard
stuff »
Les problèmes compliqués requièrent des spécialistes,
les problèmes complexes font appel à tous
Diversité des compétences et des points de vues …
… organisés en équipe
Les problèmes complexes se traitent “sur le terrain” (gemba)
un à la fois, là où ils se trouvent
Les abstractions cachent trop de choses, la décomposition ne marche pas!
“les conditions reproductibles” … ne le sont pas (isolation impossible)
La communication est difficile (ex: spécifier plus difficile que réaliser)
Yves Caseau - présentation DISIC – Mars 2014
3/31
4. 1ère Partie : Gouvernance et Complexité
Les entreprise du 21e siècle doivent être agiles
Court-terme (satisfaire ses clients)
Vitesse (lead time)
Zéro défauts (juste du premier coup)
Orienté-client
Moyen-terme (suivre ses clients)
Flexibilité (s’adapter aux nouveaux besoins)
Réactivité (le faire rapidement)
Long-terme (apprendre à évoluer)
Apprentissage (nouvelles compétences)
Travail d’équipe
Développement des collaborateurs
Yves Caseau - présentation DISIC – Mars 2014
Systemic
Challenge :
continuous
adaptation to
environment
4/31
5. 1ère Partie : Gouvernance et Complexité
L’entreprise en réseau:
S’adapter à la complexité selon la biologie
Organisation et Management doivent évoluer:
Control & command → recognition & response (L. Morris)
Organisation dynamique sur des thèmes, auto-organisation (C. Shirky)
Strength of Weak Ties (M. Granovetter)
Pour innover / réagir à une crise, il faut s’appuyer sur ses relations
distantes (liens faibles: les personnes que l’on voit rarement)
Homophilie : “tendance à s’associer à des personnes qui vous ressemblent ”
raison pour ne pas s’appuyer uniquement sur ses « liens forts »
Développer son « potentiel de situation » (« Stratégie Chinoise » )
Passer d’une planification détaillée à une réaction opportuniste
Bénéfice des exercices, travaux pratiques et “serious games”
Construire des “reflexes” (A.N. Whitehead, N. Taleb)
Yves Caseau - présentation DISIC – Mars 2014
5/31
6. 1ère Partie : Gouvernance et Complexité
Collaboration & Coopération :
« Nouveau Management Scientifique »
L’approche de F. Taylor a atteint ses limites :
Projection de l’œuvre collective sur les individus
(décomposition & spécialisation)
Il s’agit maintenant de travailler autrement, en équipe
Passe du compliqué au complexe …
Un travail complexe requière une forme d’orchestration
Multiple flux d’information (il faut dire ce que l’on fait)
Plus on décompose/spécialise, plus il faut parler !
Collaboration vs. Coopération: les deux sont nécessaires
Collaboration: résultat commun, objectif partagé, responsabilité indistincte
Coopération: résultat commun, mais les buts et les responsabilités sont
distinctes (… d’ou les “processus métiers )
Yves Caseau - présentation DISIC – Mars 2014
6/31
7. 1ère Partie : Gouvernance et Complexité
La révolution de la motivation
La
motivation extrinsèque ne fonctionne plus au 21e siècle
« There is a gap between what science knows and business does »
Du
« simple » & répétitif au complexe & créatif
De
l’algorithme à l’heuristique
La
Signature de la
complexité
motivation extrinsèque s’appuie sur
Autonomy: choisir ses actions
Mastery: le plaisir de se sentir progresser
Purpose: replacer son action dans un ensemble plus large qui donne le sens
Le
lean (façon Toyota) est une philosophie qui intègre ces idées
Autonomie:
rôle des équipes, SCRUM (petits lots)
Maîtrise
: Kaizen, 5S, Kanban
Finalité
: Orientation client, amour du produit
Yves Caseau - présentation DISIC – Mars 2014
7/31
8. 2ème Partie
1.
2.
3.
4.
Gouvernance et Complexité
Le défi des entreprises du 21e siècle et de
leurs systèmes d’information
Complexité et Organisation
Ce que la science des systèmes complexes nous propose
Architecture d’Entreprise, SOA and durabilité
L’anticipation dans un monde complexe n’est pas de la
prévision, mais la construction d’un “potentiel de situation”
Lean Software Factory
L’adaptation des méthodes de développement aux nouveaux
défis, dont celui de la complexité
Yves Caseau - présentation DISIC – Mars 2014
8/31
9. 2ème Partie : Complexité et Organisation
Que nous dit la science des systèmes complexes ?
Yves Caseau - présentation DISIC – Mars 2014
9/31
10. 2ème Partie : Complexité et Organisation
Sept principes qui gouvernent les systèmes complexes (1)
1.
La complexité rend la prévision illusoire, voire impossible
1.
Le défi d’un système complexe est en premier lieu son
adaptation continue à son environnement
1.
Nassim Taleb: attention à la « narrative fallacy »
Homéostasie et Loi de la variété requise
La loi des grands nombres, et les statiques classiques
(courbes de Gauss) ne s’appliquent plus
On observe des « power laws » qui sont les signatures de la
complexité (interaction et apprentissage)
Yves Caseau - présentation DISIC – Mars 2014
10/31
11. 2ème Partie : Complexité et Organisation
Sept principes qui gouvernent les systèmes complexes (2)
4.
Pour rendre un système complexe robuste, il faut distribuer la
finalité
4.
Le fonctionnement d’un système complexe se traduit par des flux
importants d’information qui conduisent à des structures de
réseau multi-échelle
4.
La richesse des interactions est la signature de la complexité
(par opposition à la complication : nombre de parties)
La complexité se développe dans le temps
4.
Chaque composant possède une représentation des objectifs du
système dans son ensemble (holomorphisme)
Nous (humains) avons beaucoup de mal à apprécier les différentes
échelles de temps et les boucles de rétroactions avec délais.
Le contrôle d’un système complexe est une propriété émergente
Kevin Kelly : control is grown, not designed
Yves Caseau - présentation DISIC – Mars 2014
11/31
12. 2ème Partie : Complexité et Organisation
L’enterprise est un “système complexe”
Complexité numérique (nombre de choses)
Multi-échelle
Complexité temporelle
Richesse des interactions avec l’environnement
Exemples de symptômes:
Coûts (Systèmes d’information)
Exemple: évolution non-linéaire des coûts projets vs. leur taille
Taux d’erreurs et de pannes
Difficulté à « garantir » la robustesse et la résistance aux pannes
Ross Ashby « la régulation d’un système (complexe) requière un système de
contrôle qui est aussi complexe que le système lui-même »
Time-to-market
La première manifestation de la complexité interne
Le temps pour intégrer un nouveau composant dépend de la taille de l’hôte :
– Complexité humaine (organisation)
– Absence de modularité (impacts inattendus & interaction entre composants)
Loi des “conséquences inattendues”–
Feature Interaction Problem
Yves Caseau - présentation DISIC – Mars 2014
12/31
13. 2ème Partie : Complexité et Organisation
Conséquences d’une “vision systémique”
“Emergence” de propriétés et caractéristiques
Des « systèmes obtenus par design et agencement » …
.. à la « culture de systèmes » (K. Kelly)
Humilité and Amélioration continue
Expliciter les « politiques/règles »
SLA, contrats de services, règles gouvernance OM, …
“Enterprise Architecture” comme discipline d’entreprise
Alignement des parties prenantes
Importance de l’environnement externe
Complexité
Gouvernance de la complexité
Reconnaitre le problème !
S’y attaquer avec méthode /
Exécution
dans le
Monde Réel
persévérance
Cf. le cube du CEISAR’s
Modèle
Synergie
Yves Caseau - présentation DISIC – Mars 2014
Agilité
Eléments Partageables
ou Réutilisables
Eléments Spécifiques
Operations
Transformations
13/31
14. 2ème Partie : Complexité et Organisation
Gouvernance de la complexité
Réfléchir en « potentiel de situation » vs « schéma directeur »
Scénarios
Jeux (serious games)
… si nous étions … un de nos compétiteurs ?
… si nous « out-sourcions » cette activité ?
… si nous offrions ce service à une autre entreprise (SaaS)
Développement durable de l’entreprise et de son SI
Cf. 3e partie – éviter le « mur » de l’obésité
Rythme durable de l’effort continu de réorganisation
(urbanisation)
Subsidiarité
Autonomie, Encapsulation et Gouvernance déclarative
« Thing globally, act locally »
Management visuel (éducation systémique)
Yves Caseau - présentation DISIC – Mars 2014
14/31
15. 2ème Partie : Complexité et Organisation
Manager l’émergence = Jardinage
La transformation ne se décrète pas, elle se favorise ….
Le SI « idéalement adapté à son environnement » n’est pas
(seulement) le résultat d’une conception, mais d’un processus de
« croissance »
Bottom-up, même s’il existe une confiance top-down
Comme le jardinage, agir sur les facteurs favorables
Cf. Tom Kelly : « grown, not designed »
Culture de l’essai rapide (MVP)
Apprentissage, donc mesure !
Conditions favorables
Outillage irréprochable (industrialisation du code)
Devops: liberté de mise en production continue
Compétences techniques
Yves Caseau - présentation DISIC – Mars 2014
15/31
16. 3ème Partie
1.
2.
3.
4.
Gouvernance et Complexité
Le défi des entreprises du 21e siècle et de
leurs systèmes d’information
Complexité et Organisation
Ce que la science des systèmes complexes nous propose
Architecture d’Entreprise, SOA and durabilité
L’anticipation dans un monde complexe n’est pas de la
prévision, mais la construction d’un “potentiel de situation”
Lean Software Factory
L’adaptation des méthodes de développement aux nouveaux
défis, dont celui de la complexité
Yves Caseau - présentation DISIC – Mars 2014
16/31
17. 3e Partie: Architecture d’Entreprise
Enterprise Architecture
Architecture: Pourquoi ?
Communiquer une vision
Outil de transformation
Maitriser la complexité
Simplicité et modularité
Promouvoir la standardisation
Favoriser la réutilisation
Aligner les parties prenantes
Éviter les outils complexes et
formalismes obscurs
Dépend de la maturité propre
de chaque entreprise
Asynchronie / Diachronie
Sert de mémoire d’entreprise
Management visuel du
changement
Yves Caseau - présentation DISIC – Mars 2014
Architecture: Comment ?
« Enterprise Architecture »
Mise en cohérence de trois niveaux
Stratégie: objectifs
Opérations: processus et données
Systèmes d’information:
applications et services
Réduire la complexité (toolbox)
Approche composants
Orientation processus
(extraction de la logique métier)
Découplage temporel
(messages asynchrones)
Découplage fonctionnel
(intermédiation)
17/31
18. 3e Partie: Architecture d’Entreprise
Données et Fonctions
Architecture de données
Modèle de données
Sémantique
Modèle conceptuel
Ontologies: hiérarchies de
classes (UML)
Architecture de données
Architecture fonctionnelle
Distribution
Formats (ex: XML)
Cycle de vie
Distribution /
synchronisation
Sauvegarde / restauration
Flux de données
Yves Caseau - présentation DISIC – Mars 2014
Fonctions et sous-fonctions,
approche « top-down »
Normalisation descriptive: (entrées, sorties,
invariants, pre/post-conditions, …)
L’architecture fonctionnelle n’est pas
isolée (une leçon des 20 dernière années)
Gestion dynamique des
objets métiers
Décomposition
Un focus étroit sur l’architecture
fonctionnelle conduit à prendre en compte
trop tard les données et les processus.
Une architecture fonctionnelle trop poussée
conduit à des silos
L’approche fonctionnelle « top-down » est
mal adaptée à l’utilisation de progiciels
Design orienté-objet au niveau du SI :
mélanger fonctionnel et données
18/31
19. 3e Partie: Architecture d’Entreprise
Processus et Services
Architecture de Processus
Structure temporelle:
Récursif (“fractal”)
Evénements
Chaînage et dépendances ⇒
logique métier
Réifier les buts en processus
Processus/sous-processus
Familles de processus
Partagent des ressources:
données, IHM, …
Rôles (alignement organisationnel)
description-> services, fonctions,
Normaliser / Standardiser
Partager / réutiliser / BPO
Meilleure approche pour
l’intégration de progiciels
Yves Caseau - présentation DISIC – Mars 2014
Architecture de Services
Service =
Fonction + Interface + Contrat
Service Architecture
SOA local = service-based architecture
Structure (organiser le graphe d’appels)
Fournir du sens (simplifier la gestion du
changement et la réutilisation)
Souvent lié à une technologie,
L’objectif est le système (et son
architecture), les services sont un moyen)
SOA global = architecture-based catalog
Indépendant des technologies
Le but est d’obtenir un catalogue de
services durables, l’architecture
(l’organisation) est un moyen (qui varie au
cours du temps)
19/31
20. 3e Partie: Architecture d’Entreprise
Construire une architecture modulaire
Objectif: minimiser la dispersion des impacts (nouveau service)
“Définition”: la modularité est une corrélation:
« Distance dans le code » & fréquence des interactions
« Distance dans code » & « coévolution »
Bonnes pratiques:
Architectures en couches (définir des niveaux d’abstraction)
Architecture de processus (définir une grammaire de composition)
Même objectif pour partage/réutilisation et modularité: identifier
les sous-processus communs
Event-Oriented Architecture
« Pub/sub » reste un des meilleurs motif modulaire
Model-Driven Architecture:
design d’un modèle de données « future-proof »
L’architecture de services réduit les interactions non-pilotées
Réification de l’architecture fonctionnelle
Abstraction/ encapsulation
Yves Caseau - présentation DISIC – Mars 2014
20/31
21. 3e Partie: Architecture d’Entreprise
Systèmes d’information durables
« développer les services du SI correspondant aux besoins
d’aujourd’hui sans diminuer la capacité future de développer ceux de
demain, à travers une sur-utilisation de ressources ou la production
d’une complexité non gérable ».
Librement inspiré de la définition de la commission Brundtland
(global) SOA est la seule méthode pour un développement durable
Pas la seule façon de faire de l’architecture d’entreprise
(d’autres méthodes sont efficace pour réduire la complexité)
Mais la meilleure façon pour le faire de façon continue, avec l’ensemble
des parties prenante, dans une démarche de long terme qui génère ses
propres récompenses (cercle vertueux)
Nettoyage : apprendre à supprimer et alléger (classique )
Cf. Extreme programming (Agile Manifesto – 4 e Partie) :
Lisser l’effort, intégration continue, privilégier la simplicité
Simplification en continu, pas un effort héroïque de dernier ressort
Yves Caseau - présentation DISIC – Mars 2014
21/31
22. 3e Partie: Architecture d’Entreprise
SOA comme discipline: Services “orientés-architecture”
Comment obtenir la réusabilité, à travers l’entreprise (partage)
et au cours du temps ?
Discipline: gérer des modèles d’API
Abstraction
Un compromis entre la spécificité et la généricité
Réification des rôles et de (certaines) relations
Modularité
S’appuyer sur les processus et sur les graphes d’événements
Penser “ontologie” plus que “description”
Composabilité
Horizontale (Processus) : Modèle Objet Commun (Pivot)
Verticale (Fonctionnelle) : Polymorphisme Paramétrique
Gérer les versions !
Méta modèle des API: mérite quelques efforts !
Chaque DSI doit penser en tant qu’éditeur de logiciel
Plus un art qu’une science
Yves Caseau - présentation DISIC – Mars 2014
22/31
23. 4ème Partie
1.
2.
3.
Gouvernance et Complexité
Le défi des entreprises du 21e siècle et de
leurs systèmes d’information
Architecture d’Entreprise, SOA and durabilité
L’anticipation dans un monde complexe n’est pas de la
prévision, mais la construction d’un “potentiel de situation”
Lean Software Factory
L’adaptation des méthodes de développement aux nouveaux
défis, dont celui de la complexité
Yves Caseau - présentation DISIC – Mars 2014
23/31
24. 4 e Partie: Lean Software Factory
Software Factory
Intégration continue
Structure plateau projet (« one Roof »)
Automatisation des tests et des configurations
Le travail des développeurs est intégrée et testé chaque nuit
Automatisation de la qualimétrie
Vers un déploiement continu … complètement automatisé
Cohabitation des différents rôles: développement / intégration / test /
architecture /
Devops : une nouvelle culture pour une nouvelle organisation
Opérations pilotées par programme
Adapté au Cloud Computing
Fusion des cultures développement / production
Production adaptée au développement agile
Inspiré des approches lean → petits lots
Source: Wikipedia
Yves Caseau - présentation DISIC – Mars 2014
24/31
25. 4 e Partie: Lean Software Factory
Développement Agile - SCRUM
La spécification du produit est remplacé par un
« backlog » des attentes
Utilisation de « story boards »
Pourquoi des « petits lots » ?
Travail en lots courts (sprints)
Complexité + évolution rapide ⇒
Avancer par petits pas & réévaluer
Time-boxing
Voir ce que l’on construit / éviter le tunnel
Participation active du client/utilisateur sur le lieu de développement.
Besoin/ architecture / design / code
Spécification / conception se
font en continu / collectif
Réunion d’équipe quotidienne,
management visuel (murs)
Yves Caseau - présentation DISIC – Mars 2014
25/31
26. 4 e Partie: Lean Software Factory
Extreme Programming
Remettre le code à l’honneur
Rôle central du test pour développer
du code de qualité
Source: Wikipedia
Penser test en premier – savoir ce que l’on veut
Application du « lean thinking » - pull vs. Push – et ça marche !
Valeurs (cf. Wikipedia)
« the innovation is the code »
Un code élégant, maitrisé et
revu fréquemment
Communication
Simplicité – seules les architectures simples sont durables
Feedback – cf. méthodes agiles + test en continu
Courage & respect
Pratiques
Agile: itératif, « user stories », petits lots, espace ouvert et dédié à l’équipe, …
Travailler avec un rythme durable (« set a sustainable pace »)
Pair programming
Yves Caseau - présentation DISIC – Mars 2014
26/31
27. 4 e Partie: Lean Software Factory
Lean Startup / Pretotyping / Google Values
Innovator
Build
in
all else will follow
cus on the user and
Fo
s beat ide
as
g be
at s t
alkin
g
It’s best t
o do one t
hing really
, rea
lly well
committees
Commitment beats
nion
ts opi
ea
Data b
Fast is better than slow
Rough Consensus
and Working Cod
e
The Lean Startup : le best-seller mondial d’Eric Ries
Validated learning
Minimum viable product
Innovation : machine à produire des “idées qui marchent”
Collecter et analyser des faits, le plus tôt possible
Synchronicité
L’efficacité d’une équipe calée sur un takt time commun
Yves Caseau - présentation DISIC – Mars 2014
27/31
28. (2) Streamline
Single Piece Flow,
Small batches
process
(1) Eliminate muda
Focus on value
Why ?
(meaning)
Customer focus:
• value analysis
• done right on the first time
• reduce lead time
• increase flexibility
Yves Caseau - présentation DISIC – Mars 2014
« Lean Engine »
processu
s
(2) Streamline (fluidifier)
Fractionner
(réduire la taille des lots)
(1) Éliminer muda
Focus sur valeur
Subtle
interaction
between all
factors
28/31
Lean Engine
(3) Pull – flux tendus
Juste-à-temps
Problem Solving
Continous Improvement
(4) Heijunka
(lissage)
Lean « Work Philisophy »
• Go and see the gemba
• Search for deep causes
• Continuous improvement
• Teamwork
Skills
Learning
Lean Engine
(3) Pull –
Just-in-Time
How ?
(4) Heijunka
(leveling)
4 e Partie: Lean Software Factory
Lean Schematic Vision
29. 4 e Partie: Lean Software Factory
Lean Software Development (I)
« Faire juste du premier coup »
Client « sur place » - au cœur du processus de développement
Tests unitaires – cf. extreme programming
Tests clients – cf. Lean Startup
« Time-boxing » : Utiliser le levier du « lead time »
Cf. SCRUM/XP – « le client est toujours disponible »
Tester dès que possible
Mise en valeur du code, focus sur la qualimétrie
Mode agile : faire moins, pas « moins bien »
Pour la satisfaction client (agilité / pertinence)
Pour augmenter la qualité (défi permanent)
Kaizen
Culture de l’amélioration continue (cf. SCRUM – retour d’expérience)
Outil d’apprentissage du travail en équipe
Yves Caseau - présentation DISIC – Mars 2014
29/31
30. 4 e Partie: Lean Software Factory
Lean Software Development (II)
Pas d’attentes
Synchronicité
Production > Intégration > Développement > Architecture > Conception
Ne faire que ce qui est utile, au bon moment – « just in time »
Management visuel
« Talk time » : temps commun
Priorité à l'aval (pull)
Minimiser les ruptures (action / responsabilité)
Utiliser les murs : planning, liste des problèmes, architecture, ….
Outil de pilotage systémique
(cf. Kanban pour le JIT)
Simplicité
KISS ( paradoxe → cf. Ashby)
moins de code
Éliminer le « muda »
Yves Caseau - présentation DISIC – Mars 2014
30/31
31. Conclusion
Les modèles et l’architecture sont la clé pour :
La science de la complexité donne des pistes pour évoluer:
Agilité
Potentiel de situation (saisir les opportunités)
Conduire une transformation en maîtrisant les coûts
Besoin d’une vision globale et partagée (« True North ») …
… mais distribuée en laissant de l’autonomie locale
l’évolution se construit comme un apprentissage,
dans une démarche de progrès
Il faut adopter les méthodes et les outils des « géants du Web »
Agile & lean software development
Devops et mise en production continue
Big Data, Web programming, open source tools …
Yves Caseau - présentation DISIC – Mars 2014
31/31
Notas do Editor
Complexity: key challenge for management + key challenge for CIO
Complicated -> Taylor -> B&S
Complex -> collaboration
Anecdotal evidence: Japan arm robot -> speed beats brains in complex situations
Key thought: Need for agility comex from complexity
When the world is complicated, you can be slow & smart, when the world is complex, you must be fast
Les processus formalisent la coopération
Complexity: key challenge for management + key challenge for CIO
Complexity means that forecasting is at best extremely slippery and difficult, and most often outright impossible. This is, for instance, the key lesson from Nassim Taleb’s books, such as The Black Swan. The non-linearity of complex system interactions causes the famed butterfly effect, in all kinds of disciplines. If you line up a series of queues, such as in the Beer Game supply chain example, each queue amplifies the variations produced by the previous one and the result is very hard to forecast, hence to control (this depends, obviously, of the system load).
Complex systems most often live in a complex environment which makes homeostasis an (increasingly) complex feast of change management. Homeostasis describes the process through which a complex system continuously adapts to its changing environment. The characteristic of successful complex systems, in a business context, is the ability to react quickly, with a large range of possible reactions. This applies both at the level of what the system does and what it is capable of doing. This is illustrated by the rise of the word “agility” in the business vocabulary. The law of requisite variety tells us why detailed perception is crucial for a complex system (which is clearly exemplified by recent robots) : the system’s representation of the environment should be as detailed/varied as the sub-space from the outside environment that the homeostatis process needs to react to.
Complex systems, because of the non-linear interaction in general, and because its components have both memory and the capability to learn, exhibit statistical behaviors which are quite different from “classical” (Gaussian) distribution. This is one of the most fascinating insights from complex systems theory: fat tails (power laws) are the signature of intelligent behavior (such as learning). In classical physics or statistics, all individual events are (most often) assumed to be independent, which yields the law of large numbers and Gaussian distributions. But when the individual events are caused by actors who can learn or influence each other, this is no longer true. Rather than the obvious reference to Nassim Taleb, the best book I have read on this is The Physics of Wall Street. This works both ways: it warns us that “black swans” should be expected from complex systems, but also tells us that some form of coordinated behavior is probably at work when we observe a fat tail.
Resilience in complex systems often comes from the distribution of the whole system purpose to each of its subcomponents. This is another great insight from complex system theory: control needs to be not only distributed (to sub-systems) but also declarative, that is, the system’s purpose is distributed and the control (deriving the action from the purpose) is done “locally” (at the sub-system level). This idea of embedding the whole system’s purpose into each component is often referred as the holographic principle, with a nice hologram metaphor (in each piece of a hologram, there is a “picture” of the whole object).
J.C. Fauvet: l’holomorphisme est la propriété d’ine sous-ensemble de porter en lui-même la forme du tout.
Efficiency in a complex system is strongly related to the capability to support information exchange flows. There is a wealth of information about the structure of information networks that best support these flows. Scale-free networks, for instance, occur in many complex systems, ranging from the Web to the molecular interactions in living cells and including social networks. Scale-free networks reduce the average diameter, among other interesting properties, and can be linked to avoiding long paths in communication chains, both for agility and resilience. The challenge that these information flows produce is represented by the product of the interaction richness (essence of complexity in a complex system) and the high frequency of these interaction (our key #2) – the product of two large numbers being an even larger number.
Complexity in time is something that is difficult to appreciate for humans. One of the most critical aspect of complex systems are the loops, mostly feedback loops. Peter Senge and John Sterman have writtenfamous books about this. Reinforcement and stabilizing loops are what matter the most when trying to describe a complex system, precisely because of their non-linear natures. The combination of loops, memory and delays cause surprises to human observers. John Sterman gives many examples of overshooting, which happen when human over-react because of the delay. Kevin Kelly gives similar examples related to the management of wildlife ecosystem. The lesson from nature is a lesson of humility : we are not good at understanding delays and their systemic effects in a loop. In the world of business, we have a difficulty to understand long-term consequences of our actions, or simply to visualize long-term equilibriums. Many people think that user market share and sales market share should converge, given enough years, without seeing the bigger picture and the influence of attrition rate (churn). Even simple laws such a Little’s Law may produce counter-intuitive behaviors.
Efficient control for complex systems is an emergent property. Control strategies must be grown and learned, in a bottom-up approach as opposed to a top-down design. We are back to autonomous computing : top-down or centralized control does not work. It may be seen as another consequence of Ross Ashby law of requisite variety: complete control is simply impossible. Adaptive control required autonomy and leaning. This is, according to me, the key insight from Kevin Kelly’s book, Out of Control : “« Investing machines with the ability to adapt on their own, to evolve in their own directions, and grow without human oversight is the next great advance in technology. Giving machines freedom is the only way we can have intelligent control».
Companies absorbe complexity from their environment
Cf. Kelly
Complexity: key challenge for management + key challenge for CIO
Distance dans le code: lié à l’organisation physique : fichier / module (repository) / sous-système
s’exprime comme « le développement qui répond aux besoins du présent sans compromettre la capacité des générations futures à répondre aux leurs".
Extreme IT ! Extreme programming at IS level
Abstraction: définir les bons niveaux d’abstraction
Trop haut = trop d’effort d’adaptation
Trop bas = trop spécifique pas de réutilisation
Modularité des service = question du bon découpage, en services indépendant - aussi peu de co-évolution que possible
S’appuper sur les process et les events !
Composabilité
Faite du LISP : apprendre le parametrage fonctionnel
Complexity: key challenge for management + key challenge for CIO
10 Things Agile Executives Need To Do Differently
by Kelly Waters, 12 March 2012 | Agile Adoption, Agile Leadership
Agile adoption is sometimes driven from the top by courageous executives boldly declaring “We’re going agile!”. They see a vision of a better, happier place, where development is better, faster, cheaper, and they want it. That’s understandable, of course. But some don’t realise the implications. When moving to agile methods, it’s not just teams that need to change. Executives need to change too.
Here are 10 things agile executives need to do differently:
1. Do Less - limit work in progress at portfolio level, eliminate waste, create focus, do less in parallel, keep things simple.
2. Explore & Adapt - rather than follow a plan.
3. Learn Fast - short feedback loops, tolerate mistakes, value learning and continuous improvement.
4. One Team, One Goal - avoid silos by setting up product oriented, co-located, multi-disciplined teams with shared purpose; squash politics.
5. Focus On Value - focus on value over cost, deliver value earlier/incrementally, concentrate on building the right product.
6. Empower Teams - inspire and engage, provide opportunity for intrinsic motivators: autonomy, mastery and purpose.
7. Accept Hard Truths - be open, accept difficult messages, support the team in resolving them; agile doesn’t solve your problems, it highlights them.
8. Think Big, Start Small - have the big vision, but deliver it in small bite-sized pieces.
9. Collaborate - play nicely, be supportive, give your people’s time, actively participate in projects.
10. Lead By Example - be agile yourself, use agile techniques, exhibit agile principles, adopt a servant leadership style.