Vous êtes sur la page 1sur 20

Larchitecte et le chaos

Jacques PRINTZ, jacques.printz@cnam.fr, Professeur Emrite


Conservatoire National des Arts et Mtiers Chaire de gnie logiciel

Sommaire
COMMUNIQUER A LAIDE DE METAPHORES ...............................................................................................1
ORGANISER NOS CONNAISSANCES ............................................................................................................5
LE PATRIMOINE APPLICATIF DANS LE LANGAGE DES INFORMATICIENS ......................................................8
LE PATRIMOINE APPLICATIF DANS LE LANGAGE DU BIBLIOTHECAIRE ......................................................11
LA PSYCHOLOGIE DU PROGRAMMEUR ET LIMPACT DE LA DEMATERIALISATION DES SUPPORTS PHYSIQUES
DE LA PROGRAMMATION .........................................................................................................................13
LINFORMATION DANS LE NANO MONDE, AU DELA DU BIOLOGIQUE ........................................................16
INTEGRITE DE LA BIBLIOTHEQUE : PAS SI SIMPLE ! ..................................................................................17
LARCHITECTE ET LE CHAOS : ARCHITECTURE DE LA COMPLEXITE .........................................................18
LINGENIEUR ET LE BRICOLEUR ..............................................................................................................19
BIBLIOGRAPHIE.......................................................................................................................................20

Figures
Le quartier de la Dfense .............................................................................................................................2
Communication humaine et codage .............................................................................................................5
Bibliothques................................................................................................................................................6
Indexation des connaissances et navigation.................................................................................................7
Reconstruction............................................................................................................................................10
Propagation des erreurs et mtastases.......................................................................................................12
Temps moyen de correction des dfauts .....................................................................................................14
Courbes de maturit ...................................................................................................................................15
Le vrai patrimoine applicatif......................................................................................................................16

Avertissement : nous utilisons le terme systmes dinformation (SI) de faon extensive,


en y intgrant les SI classiques du monde des services et du tertiaire, mais galement les
systmes industriels technologiques, autrefois spars, mais qui dsormais interoprent
quasiment sans limite avec les premiers. Rappelons que le mot informatique fut forg, il
y a plus de 40 ans par la fusion des mots information + automatique, donc est
informatique tout ce qui automatise le traitement de linformation digitalise, quelle que
soit la source et la nature de cette information.
Communiquer laide de mtaphores
Cest un lieu commun de dire quil nest pas facile de communiquer propos de
larchitecture des systmes dinformation avec tous ceux qui ont affaire linformatique
mais qui ne sont pas des informaticiens pour autant. Cest mme vrai avec des
professionnels tant le mot lui-mme est connot diffremment selon les disciplines qui
lutilisent : larchitecture dun rseau na quun lointain rapport avec une architecture
logicielle.
Remarquons dentre de jeu pour viter les banalits que, ds que lon veut
communiquer dune faon rigoureuse, il faut un langage diffrenci et prcis, adapt
chaque situation. Chaque mtier le sien. Il parat que les esquimaux ont des dizaines
de mots pour parler de la neige, comme nous mme nous en avons des dizaines pour
parler du vin.

J.Printz / Larchitecte et le chaos V110321

Page 1/20

Les communauts des mthodes agiles1 et de leXtreme Programming prconisent


lusage de mtaphores pour mieux se comprendre, y compris au sein mme de lquipe,
avec les parties prenantes : Metaphor. The team develops a common vision of how the
program works que lon peut traduire en Lquipe dveloppe une vision commune
du fonctionnement du programme laide de mtaphores . De fait, lquipe adopte une
idographie2, avec des signes qui fondent son identit en tant que groupe.
Remarquons qu laube de linformatique, les programmeurs dalors taient qualifis
de codeur , terme aujourdhui pjoratif, mais trs vite le terme de programmeur,
spcialiste du langage informatique, jug abscons, sest dfinitivement impos, et ce
nest srement pas un hasard tant la proximit avec le langage humain est forte.
Il est intressant de noter que dans dautres technologies, comme les circuits intgrs3
ou llectronique, on na jamais prouv ce type de besoin. Sans doute faut-il en
chercher la cause la fois dans la nature abstraite et immatrielle du logiciel, mais en
mme temps dans la relation que le logiciel entretient avec nos actes les plus
lmentaires. Dune certaine faon, pour bien comprendre il nous faut matrialiser,
avec des objets du monde physique, le contenu de la bote noire logicielle. Pour
changer les habitudes, ou oprer des transformations dans la socit, les mdias utilisent
volontiers lexpression changer de logiciel , sans se douter de la complexit de
lopration et de linadquation foncire de la mtaphore.
Toujours est-il que pour communiquer avec son environnement managrial, avec ses
clients, larchitecte de systme dinformation va utiliser des mtaphores dont lune des
plus connues est celle de larchitecture au sens littral des constructions civiles et de
lorganisation des villes : cest la mtaphore de lurbanisation.

Le quartier de la Dfense4
1

Voir le site http://agilemanifesto.org/


Pour tre parfaitement rigoureux, et fidle U.Ecco, le terme exact serait smiologie .
3
Les concepteurs de circuits, chez les constructeurs, taient appels : logiciens .
4
On prte De Gaulle, survolant le site futur de La Dfense, sadressant P.Delouvrier, le mot Mettez
moi de lordre dans ce bordel !
2

J.Printz / Larchitecte et le chaos V110321

Page 2/20

Lun des premiers lavoir utilise est John Zachman, dans son article de lIBM
Systems Journal, en 1987, mais toutefois en insistant plus sur la notion de plan,
videment trs prgnante et ancienne, dans le monde du BTP.
Il peut paratre paradoxal de comparer une matire molle comme le logiciel (en
anglais soft signifie mou, doux) avec le bton, mme si F.Bouygues en parlait
comme de la matire grise .
Ce qui caractrise le mieux le logiciel est son caractre volutif, en perptuelle
adaptation, son ubiquit, du moins pour les logiciels intgrs dans les organisations.
Cest un peu moins vrai pour les logiciels intgrs dans les quipements, encore que,
avec les tlphones portables et autres GPS qui dsormais nous connectent tous ... !
Cest mme la distinction fondamentale introduite par Von Neumann, dans les
architectures qui portent son nom, o le programme enregistr en mmoire est tout aussi
facilement modifiable que les donnes quil manipule dans la mme mmoire.
En bref, tout le contraire du bton !
Dans les constructions civiles, et plus gnralement dans lingnierie du dur (la
mcanique, llectrotechnique, llectronique, llectromagntisme, laronautique, etc.)
on distingue radicalement le plan, le blue print , en souvenir dune technique de
reproduction aujourdhui disparue, avec dailleurs les tables dessins, qui ont structur
les formations de gnrations dingnieurs grand renfort de gomtrie5, ... et la
ralisation proprement dite. Dans ces domaines de lengineering, il est hors de question
de modifier le plan lorsque la ralisation et lindustrialisation sont lances. En
contrepartie, dans le BTP, le ralisateur donne une garantie dcennale. Il est responsable
et coupable, en cas de dfaillance avre de son fait : cest un signe de maturit.
Remarque : Dans les sciences de lingnieur, la rsistance des matriaux occupe une place centrale qui na
pas, pour le moment, dquivalent dans les sciences de linformation.

L encore, tout le contraire de ce que lon fait dans le traitement de linformation, o


idalement on souhaiterait modifier la programmation6 jusqu la dernire minute.
Dans cette discipline nouvelle encore bien jeune, on confond sans arrt lautorit et
lexpertise, lusager de linformatique et linformaticien expert. Nous sommes tous des
usagers de lautomobile et des moteurs, mais cela ne nous donne aucune comptence en
mcanique. Cette confusion des qualifications entre lusage et le faire, est la source de
bien des dconvenues en informatique.
Les protagonistes des mthodes agiles ont fait de la communication par mtaphore un
vritable tendard ; au sens littral, standard en anglais est ltendard, le blason, que
portaient les chevaliers du moyen age en signe de reconnaissance dans les batailles.
Mais entre le dire, et le faire, il y a souvent une marge. Trouver de bonnes mtaphores
est un art difficile, car de fait cest inventer un langage si lon veut communiquer
effectivement, avec des actes lappui.
Le Corbusier7, qui sy connaissait en matire durbanisation, dfinissait la ville comme
une machine produire, comme un organisme o lordre doit rgner. Il a fait lapologie
du plan, et de la gomtrie qui en est insparable, et il admirait les ingnieurs. On a
oubli que la gomtrie descriptive, invente par Gaspard Monge, professeur
5

Parfois trs savante comme les surfaces rgles pour la taille des engrenages, ou les surfaces caustiques
en optique pour la taille des lentilles.
6
Dans lhistoire de linformatique, la machine de K.Zuse sappelait Plan Calcul (en allemand).
7
Voir ses livres : Urbanisme, Vers une architecture, La charte dAthnes ou encore Le modulor.
J.Printz / Larchitecte et le chaos V110321

Page 3/20

Polytechnique au moment de sa fondation, tait considre comme un secret dtat, et


que lart du trait des compagnons qui ont construit nos cathdrales ne senseignait
que de matres disciples, o le compagnon devait tre moralement qualifi .
Dans la discipline informatique, ce qui correspond au plan, cest le modle, o plutt les
modles comme ceux proposs par la mthode MERISE dans les annes 1970, ou
aujourdhui dans le langage UML. De mme, dans le BTP ou la mcanique, il y a de
nombreux types de plans, ceux pour communiquer avec les clients, comme les plans en
perspectives, et ceux pour travailler, base de gomtrie descriptive. Et mme des
maquettes que lon peut encore admirer au muse des Plans et Reliefs, aux Invalides.
Pour circuler dans une ville, il y a une hirarchie de voies de communications : ruelle,
rue, avenue, voie rapide, autoroute, etc. que lon pourrait retrouver dans la faon dont
nous organisons la circulation de linformation dans nos systmes, via les mmoires
partages et/ou les rseaux, conformment aux performances requises.
En ce sens, la mtaphore urbanistique est pertinente.
Le Club Urba EA8, dans Urbanisme des SI et Gouvernance, dfinit lurbanisation du SI
comme suit : Urbaniser le systme dinformation, cest le simplifier. Cest trouver
avec une volont danticipation un dcoupage et des grands principes de construction
qui permettront de faire voluer le systme dinformation et linformatique en cohrence
avec la stratgie et lorganisation. La mtaphore de la ville est le meilleur moyen de
comprendre la dmarche durbanisation.
Le problme, cest : comprendre , mais jusquo ? A quelle profondeur ? Et quel
clairage la fois pertinent dans sa reprsentation et efficace dans la communication
nous apporte la mtaphore de la ville ? Dun point de vue concret, au-del de
lincantation, comment rellement simplifier ? Avec quels critres de mesure ?
Pour ce qui concerne le logiciel proprement dit, sous ses diffrentes formes : donnes
factuelles (fichiers, bases de donnes, textes, etc.), donnes vnementielles
(vnements, messages, etc.), procdures de traitements des informations (les
programmes, crits dans toutes sortes de langages), la mtaphore urbanistique atteint
rapidement ses limites. Des complments mtaphoriques sont ncessaires si lon veut
continuer communiquer par mtaphores interposes.
Une distinction aussi fondamentale que la syntaxe, i.e. la structure de linformation, et la
smantique, i.e. le sens de cette information, ce qui va permettre dagir, nont aucune
correspondance dans le monde des villes. Le changement de forme (ou de code),
smantique constante, qui est le B.A.BA des ordinateurs na pas non plus dquivalent.
Mais nous comprenons tous cette diffrence, par lexprience que nous avons de nos
propres langues et de la grammaire. Avec le chinois, qui est une criture idographique
ce serait diffrent !
Von Neumann, ds le dbut avait distingu radicalement le langage interne de la
machine, le binaire, du langage externe fait pour communiquer avec les humains, autre
distinction fondamentale qui na pas dquivalent dans lurbanisation. Les tous premiers
langages comme FORTRAN et COBOL en taient de bonnes illustrations. On retrouve
galement cette distinction dans ce que MERISE appelait modle conceptuel, pour les
mtiers, et modle logique/physique pour les informaticiens.

Voir le site : http://www.urba-ea.org/

J.Printz / Larchitecte et le chaos V110321

Page 4/20

Communication entre les


programmeurs de
lquipe en langage(s)
naturel(s)

Le nombre de dialogues
possibles entre les
programmeurs est N(N-1)

Pierre
Jean

Mais tout doit


tre cohrent

Pierre cause aux


machines en PERL

Jean cause aux


machines en Java

Ici, il ny a que des milliards


de 000... et de 111...
Codage binaire de
linformation

Communication humaine et codage


La notion de module (en anglais building block), au sens de D.Parnas, redcouvert 25
ans plus tard par J.Sassoon, qui est une notion centrale ds que lon souhaite une
dcoupe intelligente de linformation qui sous-tend toute la dmarche SOA, na pas non
plus dquivalent dans la ville, mme en allant chercher Le Modulor, de Le Corbusier.
Le module informatique est la brique de tous nos systmes dinformation. Pour que
la construction soit solide, il faut que la brique soit standardise et de bonne qualit,
c'est--dire satisfasse aux contraintes externes9 issues des mtiers et/ou des quipements
comme la fiabilit, la performance, la facilit demploi, la maintenabilit, la scurit,
etc. Quant au ct excutable de linformation procdurale .... nen parlons mme pas !
Le POS informatique nest quune structure statique qui ne reflte en rien le caractre
dynamique et interactif des traitements daujourdhui.
Nous proposons ici de complter la mtaphore de la ville par celle de la bibliothque, et
des livres, qui nous est tout aussi familire. En fait, notre langage, tant crit que parl,
nest quune vaste mtaphore, et de fait un outil irremplaable pour comprendre ce qui
se passe dans la boite noire . Notre langage et les textes qui le matrialisent servent
changer et communiquer des informations, mais aussi donner et recevoir des ordres,
ce que les linguistes appellent des performatifs , mot dans lequel on retrouve, avec le
mme sens, notre bon vieux perform du COBOL qui sert excuter une procdure
de gestion code dans le langage COBOL.
Nous avons une relation sculaire avec le livre, objet familier entre tous, que lon peut
mettre dans sa poche, jusquaux typographies qui doivent tre belles pour faire de la
lecture un acte agrable. Nous savons tous qucrire un livre nest pas si facile, quil y a
une limite en taille, aux alentours de 3 400 pages, la fois pour lcrivain qui doit
rester matre de son sujet, pour lditeur qui naime pas les gros pavs invendables, et
surtout pour le lecteur qui souhaite comprendre et dont il faut mnager la mmoire.
Organiser nos connaissances
Tout dabord un constat avec lequel nous sommes tous daccord : le systme
dinformation dune entreprise nest rien dautre que la bibliothque des ses
9

La norme ISO/CEI 9126, Caractristiques qualit des produits logiciels, donne une nomenclature
dtaille de ces contraintes.
J.Printz / Larchitecte et le chaos V110321

Page 5/20

connaissances factuelles, procdurales et vnementielles, de ses savoir-faire, le reflet


de sa stratgie et de son histoire, ...
Prcisons dabord le sens du mot information dont lemploi remonte Aristote, en
passant par les philosophes scolastiques de notre moyen age, comme Saint Thomas
dAquin, grand professeur Paris dans ce qui ntait pas encore la Sorbonne, ou le Frre
Guillaume dOckham qui a inspir U.Ecco dans son merveilleux livre Au nom de la
rose dont le personnage centrale est la bibliothque du monastre et son scriptorium.
Linformation est ce qui donne forme, ce qui anime la matire juge inerte par les
philosophes grecs, assertion contestable en physique quantique, mais cest 2.500 ans
plus tard. Par analogie, sans forcer le trait, on peut dire que le systme dinformation est
ce qui va donner vie linformation dtenue par la masse des acteurs, individus et/ou
organisations, qui sont les units actives de lentreprise. Sans information, lentreprise
nest quune masse humaine informe incapable de communiquer et dagir efficacement.
Dans ce sens, il serait intressant dexplorer la mtaphore de larme et de laction
militaire. Les plans de nombreuses villes europennes gardent encore dans leurs
gnes la structure dun camp de lgionnaires romains.
Voyons comment cette bibliothque est organise !

Photothque du Cnam

Bibliothques
Quand on entre dans une grande bibliothque, deux choses nous frappent
instantanment :
Le systme de classement des livres avec ses nombreux index thmatiques qui
vont permettre lusager de rechercher ce qui lintresse. Classer est un attribut
distinctif de notre intelligence et des capacits de notre cerveau. Cest un
adressage, lanalogue des guides et plans avec le dictionnaire des rues que nous
utilisons couramment pour nous retrouver dans nos villes.
Le systme de rangement des livres qui impressionne par son normit. Une
bibliothque dun million de livres, cest environ 30 km de rayonnages, soit en
rangeant les livres sur 10 niveaux un pan de mur de 3 km, que lon peut

J.Printz / Larchitecte et le chaos V110321

Page 6/20

structurer en 3.000 cellules de H:2,5L:1P:0,3 en mtres10.


Pour le classement, la contrainte demploi est ergonomique car lusager va manipuler
lui-mme les index qui doivent donc tre son chelle.
Pour aller chercher les livres il va falloir des oprateurs humains et des machines, en
grand nombre qui devront tous matriser le plan dadressage.
Pour les trs grandes bibliothques comme la bibliothque de France, celle du British
musum, ou celle du Congrs, ce seront des immeubles ...
Pour ce qui concerne les connaissances organiser, on a immdiatement trois types de
problmatiques :
Comment reprsenter les connaissances ? Cest le problme des critures et des
langues, et de leur interprtation, car ce qui distingue linformation du bruit,
cest laction. Linformation permet dagir, cest le performatif dont on a dj
parl, et si possible agir de faon cohrente.
Comment classer et organiser les connaissances, regrouper et mutualiser,
commencer par les dictionnaires et les encyclopdies, en respectant les rgles de
lergonomie humaine, dans lespace et dans le temps ?
Comment ranger les supports crits ? En faisant lhypothse que tout est papier,
ce qui ntait pas le cas lpoque de Platon et Aristote o il fallait apprendre
par cur !
Recopie de
linformation

Livre B

Livre A
Index direct vers
linformation
Livre B

Livre A
Index indirect vers
linformation
Table des rfrences et des index du livre A

Indexation des connaissances et navigation


Ces trois problmatiques seront immdiatement suivies de deux autres, lies en fait au
stockage autre que crbral et lvolution du monde :
Comment mettre jour la bibliothque des connaissances en y insrant de
nouvelles connaissances, en vitant les incohrences rsultant des citations,
forme ancienne des couper/coller, et faire voluer le rseau smantique global
des connaissances ?
Comment effacer proprement des connaissances primes, voire fausses, et
rcuprer lespace laiss vacant par les livres mis au pilon ou aux archives ?
La gestion de nos connaissances en bibliothques prfigure ce que nous faisons tous les
jours en informatique : classer, retrouver, modifier, dplacer, effacer.
10

On retrouve cette structure en pages sur les disques, avec des tailles de pages de 1, 2 ou 4 kilo-octets
qui sont les units dalimentation vers la mmoire RAM de la machine.
J.Printz / Larchitecte et le chaos V110321

Page 7/20

Les programmes et les donnes qui constituent la matire mme de nos SI sont
clairement ranger dans nos connaissances. La seule diffrence est que lordinateur va
se substituer au cerveau humain en tant que systme de traitement de ces connaissances,
mais sans confondre leurs capacits respectives, comme John von Neumann nous lavait
expliqu dans son dernier livre The computer and the brain, dit peu de temps aprs sa
mort en 1957. Seul le cerveau humain comprend.
Remarque : A propos des classements nous navons gnralement pas conscience de la formidable
complexit qui se cache derrire cet acte anodin. Pour ranger 14 objets dans seulement 4 botes, le
nombre de possibilits est suprieure 10 millions11 ! Donc, sans rgle entre les classificateurs, cest le
chaos immdiat. Cette problmatique est lessence de larchitecture des donnes.

Le patrimoine applicatif dans le langage des informaticiens


A lpoque o la communaut des informaticiens tait compose majoritairement
dingnieurs et de mathmaticiens/physiciens reconvertis, jusquau dbut des annes 80,
lhabitude a t prise de mesurer la taille des programmes en nombre dinstructions
crites par les programmeurs. Le support matriel de ces critures tait la carte perfore
de 80 colonnes, aujourdhui disparue, correspondant une ligne de texte. La taille dun
programme tait donc quelque chose de physiquement tangible en mtre linaire et en
poids. Un programme de 20.000 instructions, ctait 20.000 cartes perfores, soit 5 bacs
de cartes de 1 mtre de long, que le programmeur pouvait porter, pour un poids de 15
kg. Cela se voyait, ctait lourd, et les entreprises dalors qui avaient du matriel
informatique entretenaient des quipes de perforatrices (de formation dactylo) charges
de produire ces cartes partir des feuilles de programmation crites par les
programmeurs.
Une carte perfore cest une ligne de texte dans un livre aux normes de ldition, en
relation avec les contraintes ergonomiques de notre champ visuel car il faut que notre
il puisse lire et que notre cerveau comprenne, en un seul coup doeil.
Une page normale dun livre normal, respectant nos contraintes ergonomiques de vision
et de manipulation la main, cest environ 50 lignes. Lusage des livres fait de la double
page une unit physiologique de comprhension pour notre mmoire immdiate. Ce qui
fait quun livre de 400 pages, cest environ 20.000 lignes de texte crit.
Par analogie, un programme de 20.000 instructions est quivalent en taille matrielle
un livre de 400 pages, propos duquel on peut se poser deux questions :
Combien de temps pour le concevoir, lcrire et le corriger ?
Combien de temps pour le lire et le comprendre ? La encore, en respectant des
rgles ergonomiques 7 rubriques par niveau hirarchique et pas plus de 3
niveaux, soit tout de mme 777 possibilits de structuration.
Un bon lecteur qui lit en moyenne une quarantaine de page lheure, en comprenant ce
quil lit, mettra donc 10 heures lire le livre, sachant quon ne peut pas lire 10 heures
daffiles. Si le livre est un peu technique, il faudra diviser la vitesse par un facteur 510.
Remarque : mon dernier livre, Architecture logicielle, 450 pages, ma cot un peu plus de deux ans de
travail, quasiment tous les jours mais pas temps plein.
11

Les formules de calcul sont des classiques de la thorie des ensembles, thorie qui joue, avec la logique,
un rle central dans larchitecture des donnes et des systmes. Soit : ensemble des partitions de N
individus classer =

2 N ; ensemble des rangements possibles de N individus dans k botes =

J.Printz / Larchitecte et le chaos V110321

kN
.
k!
Page 8/20

On trouve sans difficult des statistiques srieuses12 sur la taille des programmes
exprimes en lignes de code source (LS), avec une mthode de comptage codifie par le
Software Engineering Institute de luniversit Carnegie Mellon, Pittsburgh. En voici
quelques exemples :
Le systme dexploitation LINUX : 2,3 millions de LS
Le systme dexploitation Windows NT : 3,8 millions de LS
Le systme dexploitation GCOS7 de Bull13 : 4,034 millions de LS
Word 4.0 de la suite Microsoft Office : 256.378 LS
Excel 4.0 de la suite Microsoft Office : 851.468 LS
Un compilateur qui effectue une traduction du langage FORTRAN en langage
machine : environ 250.000 LS
Le programme de mensualisation/recouvrement de nos impts : environ 1
million de LS
Les logiciels de la navette spatiale : 2,2 millions de LS
Le systme de combat du porte-avions Charles de Gaulle : environ 5 millions de
LS
Le logiciel pour la guerre des toile (initiative de dfense stratgique du
prsident Reagan) : environ 10 millions de LS
Le patrimoine applicatif dune socit comme Amadeus : environ 150 millions
de LS
Il est intressant de ramener ces masses qui ne disent pas grand-chose, y compris pour
linformaticien patent, lchelle humaine qui est celle des livres que nous sommes
capables dcrire, de lire et de comprendre, soit 400 pages. Il suffit de diviser les
chiffres prcdents par 20.000, et cela donne :
LINUX : 115 livres
Windows NT : 190 livres
GCOS7 : 202 livres
La guerre des toiles : 500 livres
Amadeus : 75.000 livres
Encore ne sagit-il que du programme brut , auquel il faudrait rajouter la
documentation qui explique le pourquoi et le comment du programme, et tous les tests
qui ont servi le valider, soit un triplement de la taille. Sans ces textes le programme est
incomprhensible, sauf le rcrire, ce qui nest pas le but.
Ramen lchelle humaine, on peut remarquer quun auteur prolixe comme Balzac,
qui a pass sa vie crire, produit une uvre qui tient en 40 volumes en dition
normale.
Nous disposons galement de statistiques de productivit moyenne des programmeurs
depuis plus de 30 ans, dans des milliers dentreprises. Cette statistique est extrmement
stable, facilement vrifiable pour qui veut bien sen donner la peine. Elle se situe, pour
de grandes masses de programmation, aux alentours de 4.000 LS par programmeur et
par an, dans une anne normale, avec des congs et des journes normales, et ce quelle
que soit la nature du langage de programmation ; soit environ 2 LS lheure travaille.
Un programme de 20.000 LS, i.e. notre livre talon de 400 pages, cest le travail de 2-3
bons programmeurs en un an, sachant que la productivit peut varier de 1 10, mais que
statistiquement on ne trouvera quasiment jamais, dans la ralit des projets, une quipe
12
13

Faire trs attention car des chiffres aberrants circulent, comme un Windows 30 millions de LS !
Voir le site Bull http://www.feb-patrimoine.com/.

J.Printz / Larchitecte et le chaos V110321

Page 9/20

compose uniquement de trs bons programmeurs, supposer quils arrivent se


supporter. Sur des quipes de 5 600 programmeurs, le minimum pour raliser un
systme dexploitation, on naura pas plus de 10% de la population tiquete trs bons
programmeurs, avec une productivit de 8 10.000 LS/an, et un maximum indpassable
vers 15-20.000 LS.
On verra un peu plus loin ce quil faut entendre par bons ou trs bons programmeurs.
Nous savons galement par connaissance empirique que leffectif dune quipe projet de
programmation, la fois stable et efficace, ne doit jamais dpasser 7-8 personnes pour
conserver une bonne communication entre ses membres. Un chef de projet au charisme
exceptionnel pourra encadrer 10-15 personnes, mais malheur celui, moins dou, qui
lui succdera ... Les vanglistes des mthodes agiles prconisent 8-10 trs bons
programmeurs au maximum dans lquipe.
Une quipe nominale de 7-8 personnes, sur une dure de 1 2 ans (au-del lquipe se
dlite et narrive pas maintenir sa motivation) cest au maximum une production
quivalente 12 personnes/an ; soit environ 50.000 LS 2 3 livres.
Pour reconstruire un logiciel de 1 million de LS il faudrait donc, au bas mot, une
vingtaine dquipes de programmation. Pour Amadeus, ce serait 2.500 projets mener
de front avec succs, ce qui nest pas vident.
Nous sommes au cur de la problmatique de larchitecture et de lurbanisation des
systmes : comment organiser et grer de telles masses dinformation pour quelles
restent comprhensibles et grables par des humains aux capacits limites ?
Pour arriver coordonner le travail de nombreuses
quipes, il faut un plan densemble que chaque quipe
doit connatre fond pour prserver la cohrence du
projet, et des plans spcifiques chacune des quipes
qui doivent respecter les rgles communes. Faute de
quoi, cest le chaos garanti.
Limage ci-contre montre quil est trs facile de passer
dune maison un tas de planches, mme bien tailles,
mais que le processus inverse est parfaitement
illusoire. En matire de reconstruction, il ny a pas de
miracle. Chaque pice doit tre taille conformment
sa fonction et ses contraintes dans la logique
densemble. Les ingnieurs constructeurs de ponts
nous enseignent que les chafaudages sont aussi
importants que la construction elle-mme quils
rendent possibles.
Reconstruction
Dans une large communaut, le bouche oreille, la culture du ou-dire et la palabre, l
peu prs, sont autant de prils mortels qui vont dtruire progressivement la capacit de
communication et de comprhension de ses membres. Le premier empereur de la Chine
impriale, Qin Shi Huang Di, celui de larme des soldats de terre cuite de Xian, en 200
avant JC, avait lgifr en matire didogrammes de faon codifier strictement
lcriture de ce qui constitue lun des piliers de la culture chinoise, avec le
confucianisme. Peut-tre devrions nous regretter comme europens davoir abandonn
le latin mdival au 17me sicle ?!
J.Printz / Larchitecte et le chaos V110321

Page 10/20

Dans la communaut du logiciel libre , on ne plaisante pas avec les standards


dcriture des programmes, sous peine dexcommunication immdiate.
Cest toujours la mme ide Standardiser pour mieux communiquer.
Le patrimoine applicatif dans le langage du bibliothcaire
Dans le langage du bibliothcaire, tout est livres, rayonnages, tagres, salles, et mme
btiments si la bibliothque est vaste, etc.
Aujourdhui, avec le dveloppement des ordinateurs, les systmes dinformation ce sont
largement informatiss, et les bibliothques physiquement visibles sont passes dans la
mmoire de nos ordinateurs, mais la masse informationnelle est reste la mme, car
le cerveau humain, lui, na pas chang.
Aux programmes dont nous avons parl ci-dessus, il faut maintenant adjoindre les
donnes que ces programmes manipulent. Les donnes ont comme caractristiques
principales dtre cres par les oprateurs et/ou les usagers du systme, pas par les
programmeurs qui ont crit les programmes. Avec le dveloppement dInternet dans le
grand public, la saisie de linformation se fait dsormais directement chez lusager.
Un grand fichier comme celui des foyers fiscaux, ou des clients de EDF, cest 20 30
millions de rfrences. Si lon compte une page de texte par rfrence, environ 4.000
caractres, cela fait, aux normes de ldition 50 75.000 livres.
Le SI de la socit Amadeus traite environ 480 millions de requtes et 3 millions de
rservations par jour (ce sont des messages de quelques lignes), soit presque 10 fois
plus !
Le SI de la Cnam-TS traite annuellement environ 1,2 milliards de bordereaux. Si on
assimile UN bordereau = UNE page, on arrive cette fois des volumes colossaux
quivalents 3 millions de livres par an. On est cette fois dans lordre de grandeur des
trs grandes bibliothques.
Tous ces chiffres dpassent totalement les capacits du cerveau le mieux structur et
chacun peut comprendre que le seul viatique est lorganisation, la simplification, la
standardisation et la rigueur. Comme dit un14 des bons auteurs en ingnierie des
systmes complexes : simplifier, simplifier et encore simplifier. Mais comme on la dj
dit : comment faire ?
Nous proposons une rgle de bon sens : Architecture plus simple moins de tests
dvelopper pour la valider.
Tout ce qui est inutile est nuisible, nous dit la bonne vielle rgle du rasoir dOckham.
Or nous avons tous une tendance irrpressible fabriquer de la complexit et du
dsordre. Il suffit dtre fatigu, drang dans son travail ou simplement de se laisser
aller. Notre paresse naturelle nous pousse justifier, souvent avec beaucoup dnergie,
les cas particuliers et le bricolage cognitif, alors que le salut est toujours dans la
gnricit.
A cette masse dinformation se rajoute un autre phnomne qui est le fruit de nos
limitations intrinsques : nous ne sommes pas parfaits, nous faisons tous des erreurs, en
plus ou moins grand nombre, mais personne nchappe cette loi ergonomique, mme
les plus grands mathmaticiens comme Henri Poincar, rput pour en faire beaucoup,
mais sa dcharge elles taient faciles corriger.

14

E.Rechtin, System architecting, Prentice Hall.

J.Printz / Larchitecte et le chaos V110321

Page 11/20

Tout acte humain est soumis lerreur et comme on dit : lerreur est humaine. Cest
ce quil ne faut jamais oublier quand on veut comprendre quelque chose au logiciel.
Nous avons des statistiques prcises sur le nombre derreurs commises en moyenne par
les oprateurs de saisie : aux alentours de 5 10 erreurs par heure dactivit ; beaucoup
plus si cest un usager par dfinition peu form, qui fait sa saisie sur Internet. Le fait
davoir dilu la saisie sur des millions dinternautes a peut-tre fait disparatre les cots
apparents de saisie, mais il est certain que le problme de la qualit des donnes ne
pourra quempirer, et il est surtout devenu plus diffus.
Cela signifie que les donnes qui vont tre traites par les programmes contiennent des
erreurs, do pour les donnes sensibles des mcanismes de double saisie, bass sur le
fait que deux oprateurs qui fonctionnent avec le mme taux derreur commettront
statistiquement le mme nombre derreurs, mais pas au mme endroit. Du point de vue
de la qualit des donnes, cest une opration payante. La fusion des deux saisies 10-4
fera au final une saisie aux alentours de 10-8.
De toute faon, le programme de traitement devra obligatoirement prvoir la prsence
derreurs quil faut considrer comme invitables, comme le sont les dfauts des
matriaux du monde physique. Ces erreurs seront distribues alatoirement dans le
fichier de saisie.
Dans le cas dinterconnections de fichiers, ce qui est aujourdhui la rgle gnrale, le
problme est la propagation de donnes errones, avec la circonstance aggravante que
plus les machines sont rapides, plus la propagation des erreurs est rapide. Or comme
nous lont enseign les logiciens depuis bien longtemps, raisonner juste sur des donnes
fausses peut amener conclure nimporte quoi. Lorsque lerreur est constate, encore
faut-il pouvoir remonter sa source, ce qui exige une traabilit inverse soigne15.
Dpart de la chane des dpendances
Dpendances explicites

Progiciel

Propagation

Dpendances caches

Propagation des erreurs et mtastases


Si larchitecte ne fait pas le tri entre les donnes qui schangent et celles qui peuvent
rester prives le chaos est inluctable. L encore la rgle est de simplifier, simplifier et
encore simplifier, de faon ne rendre visible tous que ce qui est indispensable. Le
reste doit rester priv non pas par dsir de tout cacher mais pour une saine politique de
qualit des donnes.
Enfin, et pour conclure ce point, chacun sait que derrire la structure visible des mots et
des phrases dun livre, se cache toujours une autre structure, invisible, qui sont les
relations que tel mot, tel phrase, tel chapitre entretient avec dautres lments du livre,
15

Cest le problme difficile de la rversibilit du calcul ; cf. les travaux de C.H.Bennett, R.Landauer, ...

J.Printz / Larchitecte et le chaos V110321

Page 12/20

voire avec dautres livres. Ce rseau de relations porte le vrai sens du programme et sa
complexit relle. Dans les livres bien faits, donc plus coteux, outre la table des
matires, le lecteur est aid par diffrents index, par des notes en bas de pages, par des
typographies ad hoc pour naviguer dans ce rseau de relations. En cas de modifications
du livre, il est facile de casser certaines de ces relations, et le livre devient
progressivement incohrent. Cest bien pire si le livre ne contient aucun index, car alors
on modifie laveugle dans lignorance du contexte auquel les index, sils sont bien
conus, donnent accs.
La psychologie du programmeur et limpact de la dmatrialisation des
supports physiques de la programmation
Du cot de la programmation proprement dite, les choses deviennent un peu plus
subtiles et il nous faut rentrer dans la psychologie du programmeur. Cest un point
fondamental qui a fait lobjet dtudes prcises ds les annes 70, que lon retrouve dans
des approches comme les mthodes agiles, l eXtreme programming , ou le
dveloppement pilot par les tests. En gnral, les programmeurs bien forms ont une
bonne mmoire et raisonnent plutt bien, mais cela ne les empchent pas de faire des
erreurs ; quant aux autres la plus extrme prudence simpose ... donc former, former et
encore former ; cest le meilleur investissement.
Dun programmeur qui proclamerait ne pas faire derreur, on ne peut tirer que deux
conclusions : soit il se vante inconsidrment, soit il sillusionne, et cest encore plus
grave. Il nous faut donc rflchir comment faire le moins derreurs possible, et surtout
comment les dtecter au plus vite. La pression par les pairs est un puissant facteur de
vigilance, et mcaniquement on commet moins derreurs, mais encore faut-il que les
pairs soient de bon niveau, et reconnus comme tel. Les communauts du logiciel libre
exacerbent ce trait psychologique de reconnaissance par les pairs, comme lpoque du
compagnonnage et de nos cathdrales. Cela se joue dans la dure, et cest assez efficace.
L encore nous disposons de statistiques sur plus de trente ans, stables et fiables, et que
chaque organisation de dveloppement peut facilement vrifier si elle sen donne la
peine. Gnralement, ces statistiques, au dpart proposes par la NASA, sont exprimes
en nombre derreurs par millier de LS (Err/KLS). Cest du simple bon sens, car les
erreurs sont dans ce que nous crivons rellement, lignes de programmes et/ou donnes
saisies, et pas ailleurs. Lacte de traduction est intrinsquement gnrateur derreurs, et
tout programme est une traduction dun besoin dans quelque chose que lordinateur
pourra excuter. Cest lacte de programmation qui fabrique, par effet de bord, les
dfauts logiciels conscutivement aux erreurs des programmeurs.
Dans la pratique industrielle, cela donne les rsultats moyens suivant :
Une erreur toutes les 10 lignes source, pour un programme brut qui na t
trait que par les outils classiques des environnements de programmation :
compilateurs, diteurs, etc. ; soit 100 Err/KLS Aux normes de ldition, cest
cinq erreurs par page.
Une ou deux erreurs toutes les 1.000 lignes source pour un programme qui a
suivi un cycle de validation complet, conforme aux exigences qualit requises
par le contrat de service du programme ; soit 1 2 Err/KLS. Cest deux erreurs
toutes les 20 pages .

J.Printz / Larchitecte et le chaos V110321

Page 13/20

Une erreur toute les 10.000 lignes sources pour des programmes jugs critiques16
qui ont suivi un cycle de validation pouss (comme par exemple les logiciels de
la navette spatiale) ; soit 0,1 Err/KLS. Soit une erreur toute les 200 pages. Pour
de tels logiciel, le cot de la validation est de lordre de 70% du cot total.
On dispose galement de statistiques prcises sur les dures moyennes de corrections
des erreurs en intgration. Voici celles de Hewlett Packard17 :
Temps moyen de correction des dfauts (soit environ 6h/dfaut)
25% des dfauts sont diagnostiqus et corrigs en 2h
50% des dfauts sont diagnostiqus et corrigs en 5h
20% des dfauts sont diagnostiqus et corrigs en 10h
4% des dfauts sont diagnostiqus et corrigs en 20h
1% des dfauts sont diagnostiqus et corrigs en 50h
Temps moyen de correction des dfauts
Pour illustrer concrtement ces chiffres, on peut raisonner avec un programme de
20.000 LS, soit un livre de 400 pages.
Le livre brut en sortie des correcteurs orthographiques (lexique et syntaxe)
comportera environ 2.000 erreurs dont environ 300 seront dcouvertes en intgration.
En fin de cycle de validation, il ne devra pas contenir plus de 40 erreurs, mais
videmment les programmeurs ne sauront pas o elles se situent dans le programme. Le
cot moyens des corrections, en utilisant les statistiques HP sera aux alentours de 1,5
hommean (30% du cot).
Cela veut dire quil aura fallu effectuer plus de 2.000 modifications du programme, car
en plus des erreurs, il y aura eu des modifications pour amliorer le style, soit une
rcriture quasi complte du programme. Moralit, si les programmeurs ne disposent
pas dun ensemble dindex qui organisent et structurent le texte de leur programme, son
volution dans la dure sera compromise. La construction de ces index est un aspect
fondamental de larchitecture et de lorganisation du programme. Pour cela ont t crs
des outils comme les dictionnaires de donnes et les gestionnaires de configuration pour
assister les quipes dans ce travail la fois difficile et fastidieux.
Remarque : Une des plus clbres erreurs rsiduelles est celle qui a occasionn la destruction en vol du
premier lanceur Ariane 5. Niche dans le logiciel de guidage de la centrale de navigation du lanceur, elle
tait passe inaperue lors des 40 tirs dAriane 4 effectus avec succs. Rien navait boug dans les
instructions, seul le comportement du lanceur tait diffrent.

Cela permet de dessiner la courbe de maturit dun programme que l encore, toute
organisation de dveloppement peut vrifier si elle veut sen donner la peine18.
La figure ci-dessous, extraite du document de comptage du SEI cit prcdemment
montre quatre courbes de maturit qui refltent la progression du travail des
programmeurs selon les processus normaliss du cycle de dveloppement logiciel :
conception, programmation/codage, tests unitaires, intgration/validation. La forme
caractristique, dite en S, montre la dynamique de la maturit qui nest jamais linaire.

16

De tels programmes doivent respecter des normes contraignantes comme la DO178 du


RTCA/EUROCAE en avionique.
17
R.G.Grady, D.L.Caswell, Software metrics: establishing a company-wide program R.G.Grady,
Practical software metrics for project management and process improvement, chez Prentice Hall.
18
Pour des organisations de niveau 3 dans lchelle CMMI, cette statistique est obligatoire.
J.Printz / Larchitecte et le chaos V110321

Page 14/20

Rvisions de lestimation

Courbes de maturit
Bons et trs bons programmeurs

A diverses reprises nous avons parl de bons et/ou trs bon programmeurs. Cette notion
recouvre deux facteurs quil ne faut pas confondre :
La comptence du programmeur, qui dpend essentiellement de sa capacit
abstraire et organiser (cest de larchitecture, au sens litral) son travail de
programmation, en y incluant les tests qui sont une forme de preuve. Cest une
caractristique intrinsque de sa structure psycho cognitive.
Lexprience du programmeur, qui ne sacquiert que sur le terrain, dans la dure,
en programmant soi-mme, et le plus possible, en exprimentant les
bibliothques dAPI des diffrents langages.
Tout cela prend du temps, et ne sapprend pas que dans les livres. Une bibliothque
dAPI peut compter plusieurs centaines de fonctions et/ou de mthodes. Si on compte
un ou deux jours de travail en moyenne par fonction, on comprend tout de suite que le
processus de maturit prendra plusieurs annes, supposer que le programmeur ait une
excellente mmoire. Aux normes de ldition, si lon compte en moyenne 3-5 pages par
fonction, il lui faut mmoriser dans le dtail, avec exactitude, lquivalent de 3 4
livres19. Un trs bon programmeur fera de toute faon des erreurs de programmation,
mais il saura les corriger rapidement, sans en crer dautres. Et cela se verra sur les
courbes en S.
Le vrai patrimoine applicatif

Les programmes sont la partie merge et visible du patrimoine applicatif. Pour grer ce
patrimoine dans la dure, il faut des textes qui expliquent dune part comment cest fait
et comment a marche, i.e. la conception des programmes ; et dautre part pourquoi a
marche, i.e. les tests qui nous permettent daffirmer que le niveau de qualit est correct.
En fait la bibliothque associe dun programme contient trois types de livres : la
conception, la programmation et les tests. Les outils de gestion ont longtemps t appel
bibliothcaire ou librarian . Une machine sans le mode demploi, sans la
documentation de maintenance, a un intrt limit.
La situation relle est donc la suivante :
19

Jusque dans les annes 80, un des plus clbres livre dalgorithmes tait le Art of computer
programming, de D.Knuth, en 3 volumes de 600 pages chacun.
J.Printz / Larchitecte et le chaos V110321

Page 15/20

Les programmeurs

Les programmes et les tests unitaires


Les usagers

Les postes de travail

...
LArchitecte
Par dizaines de milliers

...

Les erreurs
Les serveurs

...

Les aides en lignes

Par milliers

La documentation
de conception

Les exploitants
Par dizaines

Le chantier de la
programmation
Tests globaux

Le vrai patrimoine applicatif


Il est clair que tous ces textes sont interdpendants. Il est facile dimaginer ce qui va se
passer en labsence de rgles partages par tous les acteurs de lingnierie :
programmeurs, testeurs, mainteneurs et exploitants Un immense chaos.
La taille du texte de conception sera plus petit, dans un rapport de 50 100, par rapport
au programme, mais plus difficile laborer car cest le rsultat du travail de
larchitecte. La taille des tests sera du mme ordre de grandeur que le programme pour
des programmes simples, mais beaucoup plus gros pour des programmes algorithmiques
et/ou en interactions avec leur environnement.
Do notre critre de simplicit fond sur les tests : plus simple moins de tests.
Linformation dans le nano monde, au del du biologique
Les prouesses de la microlectronique ont rendu invisible la complexit de nos premiers
ordinateurs, avec leurs kilomtres de cblages bien visibles dans les armoires et dans les
faux planchers des machines des annes 70-80. Mais la complexit est toujours l. Un
microprocesseur de 2-3 cm2 comme ceux que nous avons dans nos PC contient dans son
cristal de silicium 4 5 milliards de transistors et au moins 50 km de cbles
microscopiques, infrieur au micron (le millime de millimtre).
Tout le monde a entendu parler des nanotechnologies dont on commence matriser
lingnierie. On est cette fois aux alentours du millionime de millimtre. A dfaut de
sculpter les atomes on commence savoir sculpter les grosses molcules du vivant.
Dans chacune de nos cellules, il y a les chromosomes qui sont des molcules dADN
qui une fois dplies mesurent prs de 2 mtres de long, constitues de 3,4 milliards de
protines formant un message combinant les 4 lettres de lalphabet du vivant : ATGC
dnotant les 4 protines qui les constituent. A lchelle du bibliothcaire et de nos livres
de 400 pages, cela ferait environ 2.800 livres, dans chacune de nos cellules.
Le cerveau humain est un immense rseau form denviron 100 milliards (1011) de
neurones, chaque neurone tant reli environ 10.000 de ses voisins, soit 1 million de
milliards de connexions (1015). Une description du cerveau sous la forme de livres (avec

J.Printz / Larchitecte et le chaos V110321

Page 16/20

50 lignes/1 page par neurone20 et 1 ligne par connexion) ncessiterait 250 millions de
livres pour la description fonctionnelle des neurones et 500 millions de livres pour les
connexions. On comprend la ncessit des supercalculateurs pour traiter linformation
du gnome et celle du cerveau.
Cette immense complexit est parfaitement invisible. Pour la percevoir il faut au
minimum des microscopes lectroniques et des dispositifs permettant de travailler
lchelle molculaire, voire atomique. Paradoxalement, plus cest petit et plus les
appareils sont gigantesques, pour culminer avec le LHC du CERN Genve pour
travailler lchelle subatomique. Tout cela devrait nous rendre humble et prudent pour
ne pas nous laisser submerger par la complexit. Do linjonction dj mentionne :
Pour esprer matriser la complexit, il faut simplifier, simplifier et encore simplifier,
puis organiser, organiser et encore organiser, et enfin communiquer, communiquer et
encore communiquer, sans oublier la validation tous les niveaux.
Moralit, ce nest pas parce que cest petit que cest simple et facile comprendre, cest
mme tout le contraire car lobservation lchelle humaine devient plus difficile. Dans
le crash dAriane 50121, il a suffit de quelques lignes de code, dont personne ne stait
soucie, pour provoquer la destruction du lanceur.
Intgrit de la bibliothque : pas si simple !
La mtaphore de la bibliothque peut nous aider bien comprendre comment, si lon
ny prend pas garde, le dsordre peut facilement sinstaurer, et plus rapidement quon ne
limagine. Donnons juste un exemple.
Lopration la plus frquente consiste extraire un livre dun rayonnage pour le donner
un emprunteur qui la slectionn grce lindex, et son inverse, remettre le livre
exactement sa place aprs consultation. Cest le couper/coller classique.
Une autre opration consiste transfrer tous les livres dune mme catgorie dans un
espace plus grand, quand il y a saturation, de faon les laisser grouper. Ce qui fait
quun rayonnage qui servait dans un premier temps des livres sur les systmes
dinformation, pourra tre rutilis pour des livres sur les rseaux, voire une catgorie
sans rapport avec linformatique. Cest une dfragmentation.
Si le personnel nest pas bien inform de ces changements daffectation, on peut se
retrouver avec un livre sur les systmes dinformation rang dans une rubrique qui na
plus rien voir avec les SI. Si la bibliothque ne compte quun seul bibliothcaire qui
fait son travail en squence, il ny aura aucun problme, sauf erreur de sa part, mais le
service sera lent.
Dans une grande bibliothque il y aura des dizaines, voire des centaines de
bibliothcaires, et beaucoup plus dinteractions, surtout si le directeur de la bibliothque
souhaite ouvrir sa bibliothque tous les jours, et effectuer les prts, les restitutions, les
ramnagements sans interrompre le service.
Traduit dans le langage informatique, cest le passage du monde batch centralis au
monde interactif distribu, bien plus complexe.
Les rgles de rangement, la localisation physique des espaces de rangement, les index
sont des mta donnes quil faut manipuler avec beaucoup de prcautions car cest le
lieu de lintgrit. On comprend tout de suite que si le personnels est mal form, que si
20

Certainement trs insuffisant, car chaque cellule est une machine complexe, et a fortiori les neurones.
Voir le tmoignage de premire main de Michel Turin, dans ARAGO 20, Application des techniques
formelles au logiciel, OFTA/ Diffusion Lavoisier ISBN 2/906028-06-1.
21

J.Printz / Larchitecte et le chaos V110321

Page 17/20

les rgles ne sont pas claires, le dsordre va sinstaller : aucun livre na t vol, mais
ntant pas leur place logique, ils deviennent de ce fait inaccessibles via les index, et
invisible pour lusager. Dans le jargon des architectes de bases de donnes, lobjet est
devenu un fantme. On comprend galement que les modifications de lindex, quand on
ajoute de nouveaux livres ou quand on en retire, sont des oprations bien plus risques
quun simple prt. Les bibliothcaires en charge des index doivent tre les plus
comptents.
Une telle quipe est lanalogue de programmes mal coordonns, travaillant sur des
donnes mal organises. Modifier un dictionnaire de donnes, ou lannuaire dadressage
dun rseau ncessite quelques prcautions. Toutes ces oprations ont leurs analogues
dans la bibliothque.
Un autre cas intressant est celui de plusieurs lecteurs L1, L2, etc. empruntant des livres
dont ils souhaitent consulter les rfrences en parallle avec leur lecture. Soit les
rfrences A, B, C pour L1, et C, A, D pour L2. Les livres emprunts par L1 et L2 ont
donc des rfrences communes. Imaginons la situation o L1 et L2 sont ensembles la
bibliothque et commencent lires leurs ouvrages respectifs. On peut donc avoir une
squence temporelle entrelace, en fonction de la vitesse de lecture et des vnements,
comme suit :
L1 emprunte le livre A, premier de sa liste de rfrence
L2 emprunte le livre C, premier de sa liste de rfrence
L1 emprunte B
L2 emprunte A qui est dj emprunt par L1 L2 sarrte
L1 continue sa lecture et veut emprunter C qui est dj emprunt par L2 L1
sarrte
Moralit, les deux lecteurs que les bibliothcaires ont laiss emprunter sans contrainte
sont mutuellement bloqus. On peut imaginer une situation chaotique o tout le monde
attend tout le monde. Ce genre de conflits, rare en centralis, devient la rgle par dfaut
dans un systme distribu o les ressources sont partages, ce qui correspond une
situation classique dinteroprabilit. Sans rgle, le blocage gnral est garanti. Ou alors
chacun se dbrouille et ngocie avec lautre emprunteur, si tant est quils se connaissent,
donc le chaos garanti.
Pour y mettre bon ordre, il faut identifier tout ce qui est partageable, et fixer des rgles
rigoureuses demprunts pour terminer tranquillement sa lecture.
Larchitecte et le chaos : architecture de la complexit
On aura compris qu ce stade, larchitecte est fondamentalement un crateur dordre.
En se sens, il est urbaniste et architecte. Mais lordre quil doit crer dans lingnierie de
linformation est par nature smantique, fond sur le quoi, qui a sert . La
mtaphore de la bibliothque montre que pour offrir un service de qualit, la
bibliothque doit tre correctement organise partir des contenus, en fonction du
service que son directeur souhaite offrir. Elle montre galement que le personnel doit
tre correctement form et assign des tches en rapport avec son niveau de
qualification. Confier la gestion des index du personnel peu qualifi cest prparer une
catastrophe qui ne manquera pas de se produire.
A contrario, si on est dans le laisser faire et le bon vouloir, sans gouvernance explicite,
si lon fait trop confiance, les livres seront disposs en vrac sur les tagres, au gr des
arrivages et des humeurs de chacun. Pour un il non averti, tout pourra mme avoir les
apparences dune bonne gestion.
J.Printz / Larchitecte et le chaos V110321

Page 18/20

Les rgles de rangement seront dans la tte des bibliothcaires, et non pas dans les
procdures, ce qui fait que le dpart dun bibliothcaire effacera ipso facto les
connaissances quil dtenait, augmentant encore le dsordre et lanarchie. Pour
rechercher un livre, il ny aura plus que la connaissance empirique du rangement, avec
des scrutations de nombreux ouvrages avant de trouver celui recherch. Tout se
ralentira, avec un risque permanent de blocage.
Le patrimoine applicatif, les applications legacy comme on dit en franglais
informatique, est semblable une bibliothque mal organise, ou en cours de
dgnrescence, par non respect des rgles dintgrit qui ont t progressivement
oublies parce que mal documentes et/ou mal expliques aux nouveaux arrivants.
Mettre de lordre dans la complexit, cest hirarchiser et organiser les livres en fonction
de leurs usages, non pas de leur taille ou de leur couleur. Cest dfinir et faire appliquer
des critres de classement fonds sur les contenus, et non pas sur laspect externe. Cest
mettre en place des mcanismes qui permettent de sassurer que les livres sont bien
leur place, quelles que soient les circonstances. Cest aussi standardiser les
infrastructures et les plates-formes autant que faire se peut.
Tout le monde peut comprendre que modifier ou emprunter un livre dans un ensemble
bien organis naura pas le mme cot que dans un fouillis htroclite sans structure, et
que le risque encouru sera bien plus grand.
La mtaphore de la bibliothque et des livres explique de faon simple et pertinente
quelques uns des mcanismes basiques que larchitecte devra mettre en uvre pour
matriser la complexit, donc les cots, dans des limites qui restent acceptables
humainement et conomiquement. En bref, comment tre intelligent !
Lingnieur et le bricoleur
Un clin dil ethnologique pour conclure avec un texte de C.Lvi-Strauss, dans La
Pense sauvage, Plon.

Le bricoleur est apte excuter un grand nombre de tches diversifies ; mais, la diffrence
de lingnieur, il ne subordonne pas chacune delles lobtention de matires premires et
doutils, conus et procurs la mesure de son projet : son univers instrumental est clos, et la
rgle de son jeu est de toujours sarranger avec les moyens du bord , cest--dire un
ensemble chaque instant fini doutils et de matriaux, htroclites au surplus, parce que la
composition de lensemble nest pas en rapport avec le projet du moment, ni dailleurs avec
aucun projet particulier, mais est le rsultat contingent de toutes les occasions qui se sont
prsentes de renouveler ou denrichir le stock, ou de lentretenir avec les rsidus de
constructions et de destructions antrieures. Lensemble des moyens du bricoleur nest donc
pas dfinissable par un projet (ce qui supposerait dailleurs, comme chez lingnieur,
lexistence dautant densembles instrumentaux que de genres de projets, au moins en
thorie) ; il se dfinit seulement par son instrumentalit, autrement dit et pour employer le
langage mme du bricoleur, parce que les lments sont recueillis ou conservs en vertu du
principe que a peut toujours servir .

Par bien des cts, dans les sciences de linformation, nous sommes encore des
sauvages , et nous en payons le prix. Mais il ne tient qu nous de nous civiliser et de
mettre un terme au bricolage. Nous en avons tous les moyens, il suffit de se pencher et
de ramasser ce que nos prdcesseurs ont accumul comme savoir et savoir-faire, et de
les transmettre correctement, en y intgrant les vraies innovations, rares, par dfinition.

J.Printz / Larchitecte et le chaos V110321

Page 19/20

Bibliographie
Cits dans le texte :
Umberto Eco, Smiotique et philosophie du Langage, PUF Kant et lornithorynque,
Grasset Au nom de la rose, Grasset.
John von Neumann, The computer and the brain, disponible en franais ou en anglais.
R.E.Park, Software size measurement: A framework for counting source statements,
CMU/SEI-92-TR-20 ; site du SEI.
D.Parnas, On the criteria to be used on decomposing systems in modules, CACM, 1972.
Jacques Printz, cosystme des projets informatiques, Herms.
Jacques Printz, Architecture logicielle, concevoir des applications simples, sres et
adaptables, Dunod.
Jacques Sassoon, Urbanisation des systmes d'information, Herms, Coll. Management
et Informatique, 1998.
John Zachman, A framework for information systems architecture, IBM Systems
Journal, Vol. 26, N3, 1987.
Charles H. Bennett, Logical reversibility of computation, IBM Journal of research &
development, November 1973.
Sur larchitecture et lurbanisme, on peut lire les ouvrages de Le Corbusier, dont
plusieurs sont disponibles en livre de poche. Aux ditions du Moniteur, spcialises en
architecture, on trouve des ouvrages passionnants comme : A.Picon, Lart de
lingnieur, constructeur, entrepreneur, inventeur ; S.Deswarte, B.Lemoine
Larchitecture et les ingnieurs, Deux sicles de ralisations ; G.Ragot, M.Dion, Le
Corbusier en France, Projets et ralisations.
Sur la psychologie des programmeurs, voir :
W.Humphrey, Managing technical people, Addison Wesley.
F.Dtienne, Gnie logiciel et psychologie de la programmation, Herms.
J.Printz, Productivit des programmeurs, Herms.
G.Weinberg, The psychology of computer programming, Silver edition, Dorset House
Publishing, 1998.
Sur les statistiques concernant les erreurs, voir :
B.Beizer, Software testing techniques, Van Nostrand Reinhold.
P.G. Neumann, Computer-Related Risks, Addison-Wesley and ACM Press ; ainsi que le
site http://www.csl.sri.com/users/neumann/insiderisks.html
NIST, The economic impacts of inadequate infrastructure for software testing, site du
NIST, for Dr Gregory Tassey, Senior Economist.
Sur lergonomie et les facteurs humains, la sociologie du risque, voir :
R.W.Bailey, Human preformance engineering, Prentice Hall.
U.Beck, Risk society, SAGE.
R.S.Bridger, Introduction to ergonomics, Taylor & Francis.
J.Reason, Lerreur humaine, PUF.
F.Vanderhaegen, Analyse et contrle de lerreur humaine, Herms.
D.Vaughan, The Challenger launch decision, University of Chicago Press.

J.Printz / Larchitecte et le chaos V110321

Page 20/20