Courrier des lecteurs : À propos de l’article “Réflexions sur le “bogue de l’an 2000””

Dossier : ExpressionsMagazine N°547 Septembre 1999

J.-M. BARDIN (72)

J.-M. BARDIN (72)

La lec­ture de l’ar­ticle d’E­rik Egnell à pro­pos de l’an 2000 dans le numé­ro de mai m’a plon­gé dans un sen­ti­ment à mi-che­min entre la stu­peur et l’in­di­gna­tion. Après avoir hési­té à répondre, je me suis réso­lu à le faire, non pas pour défendre mon sta­tut de res­pon­sable de pro­jet an 2000 dans une grande banque fran­çaise, mais pour réta­blir quelques véri­tés mises à mal dans cet article, qui pour­rait inci­ter à un cer­tain relâ­che­ment dans les efforts, pour­tant encore insuf­fi­sants, enga­gés dans notre pays pour maî­tri­ser les risques liés au bogue de l’an 2000.

  • Le bogue de l’an 2000 n’est pas une inven­tion d’in­for­ma­ti­ciens dés­œu­vrés. C’est une réa­li­té à laquelle beau­coup d’entre nous ont été confron­tés ces der­niers temps. Je n’en pren­drai pour exemple que ces mil­liers de ter­mi­naux de paie­ment qui, au début de l’an­née 1998, refu­saient les cartes de paie­ment à échéance 2000, car ils les pen­saient péri­mées depuis quatre-vingt-dix-huit ans. Mais il y a quan­ti­té d’autres exemples plus discrets.
     
  • La confu­sion sur les années se tra­duit par des erreurs dans des cal­culs ou des tris fai­sant inter­ve­nir des dates, une des don­nées les plus fré­quentes dans les pro­grammes (90 % des pro­grammes d’une banque mani­pulent des dates !). Les sys­tèmes rentrent alors dans des séquences d’ins­truc­tions jamais tes­tées : au mieux, ils s’ar­rêtent, ce qui per­met de détec­ter l’a­no­ma­lie ; au pire, ils génèrent des erreurs sour­noises, qui, non déce­lées immé­dia­te­ment, sont très dif­fi­ciles à cor­ri­ger quand on s’en aper­çoit bien plus tard.
     
  • Ce n’est pas parce qu’un pro­gramme de prêts immo­bi­liers sait depuis vingt ans trai­ter des échéances pos­té­rieures à l’an 2000 qu’il est vac­ci­né contre le bogue. En effet, celui-ci peut affec­ter de manière dif­fé­ren­ciée cha­cun des types de dates trai­tées dans un pro­gramme : les dates concer­nant les échéances à venir peuvent ne pas poser pro­blème, alors que celles cor­res­pon­dant au pro­chain appel de fonds peuvent en poser un.
     
  • Les sys­tèmes infor­ma­tiques ne sont pas les seuls concer­nés. Tous les sys­tèmes élec­tro­niques sont sus­cep­tibles d’être affec­tés par le bogue, quand bien même il n’y aurait pas de dates appa­rentes. Ce peut être le cas d’as­cen­seurs, dont l’élec­tro­nique peut gérer les dates des visites de main­te­nance, et qui peuvent s’ar­rê­ter en cas de délai exces­sif depuis la der­nière visite.
     
  • L’in­for­ma­tique et l’élec­tro­nique ont enva­hi notre monde ; toute notre socié­té en dépend. Vous ne seriez sans doute pas fâché si votre centre d’im­pôts oubliait votre exis­tence suite au déclen­che­ment intem­pes­tif d’un pro­gramme de purge de don­nées. Vous le seriez sans doute davan­tage, si vous appre­niez que les ins­tal­la­tions de réani­ma­tion de votre hôpi­tal ou que les dis­po­si­tifs de sur­veillance des cen­trales nucléaires d’Eu­rope de l’Est pou­vaient ne pas fonc­tion­ner cor­rec­te­ment au pas­sage à l’an 2000.
     
  • Il est vrai que le bogue de l’an 2000 est fina­le­ment un bogue comme un autre, comme on en ren­contre tous les jours dans nos sys­tèmes. Sa seule par­ti­cu­la­ri­té est qu’il risque de frap­per au même moment dans de mul­tiples endroits, ren­dant insup­por­tables des pro­blèmes qui, sur­ve­nant iso­lé­ment, pour­raient être réso­lus, sans même que vous vous en soyez aper­çu. De plus, c’est un pro­blème sys­té­mique, c’est-à-dire que, même si vous avez tout fait pour adap­ter et véri­fier vos sys­tèmes, vous ris­quez d’être mis en dif­fi­cul­té par vos four­nis­seurs ou vos clients.
     
  • Il est vrai que cer­tains sont allés loin, trop loin, dans le catas­tro­phisme mil­lé­na­riste, et ont fini par décré­di­bi­li­ser le pro­blème réel. Les médias à sen­sa­tions avides de sujets crous­tillants, les cabi­nets d’a­vo­cats amé­ri­cains habiles à tirer des mil­lions de dol­lars d’un fait sans impor­tance, cer­taines socié­tés infor­ma­tiques peu scru­pu­leuses ont cher­ché à tirer avan­tage en en rajou­tant. Cer­taines entre­prises en font même un argu­ment com­mer­cial, en dénon­çant l’in­suf­fi­sante pré­pa­ra­tion de leurs concur­rents. Mais il ne faut pas jeter le bébé avec l’eau du bain. Si le sujet est cor­rec­te­ment trai­té, il peut être maî­tri­sé, mais, s’il est igno­ré, il peut avoir dans cer­tains cas des consé­quences dra­ma­tiques. Com­ment réagis­sez-vous, quand vous appre­nez, après l’in­cen­die du tun­nel du mont Blanc, qu’un rap­port avait dénon­cé quelques mois plus tôt la sécu­ri­té insuf­fi­sante de cette installation ?
     
  • Il est vrai que les infor­ma­ti­ciens portent la res­pon­sa­bi­li­té ori­gi­nelle du pro­blème et ils n’ont jamais cher­ché à le nier. Il peut sem­bler sur­pre­nant qu’ils n’aient pas plus anti­ci­pé un pro­blème iné­luc­table connu depuis tou­jours. La rai­son en est simple : il y a trente ans, les pre­miers infor­ma­ti­ciens ne pen­saient pas que les sys­tèmes et les pro­grammes qu’ils fabri­quaient dure­raient plus d’une dizaine d’an­nées et ils ont sur­tout cher­ché à éco­no­mi­ser les res­sources mémoire et machine, alors rares et chères, en codant les années sur deux carac­tères. Dans les faits, les pro­grammes ont duré beau­coup plus long­temps qu’ils n’a­vaient ima­gi­né, et les nou­veaux sys­tèmes n’é­taient jamais construits ex nihi­lo mais emprun­taient sou­vent à la géné­ra­tion pré­cé­dente, d’où la pro­pa­ga­tion jus­qu’à nos jours de cet anachronisme.
     
  • Mais pour­quoi leur repro­cher d’a­voir aler­té le reste de la socié­té sur ce sujet, au pré­texte qu’ils en étaient à l’o­ri­gine ? Fal­lait-il attendre que des pro­blèmes graves se pro­duisent pour réagir ? Auriez-vous pré­fé­ré qu’ils imitent les orga­nismes de trans­fu­sion san­guine, qui ont atten­du que des mil­liers de per­sonnes soient conta­mi­nées avant de recon­naître leur responsabilité ?


J.-P. VIAL (65) (Auteur du progiciel » Software ISO 2000 »)

Informaticiens de l’an 2000. Félicités ? Remerciés ?

Il paraît presque super­flu de rap­pe­ler dans ces colonnes la teneur du « bogue de l’an 2000 ». Il existe, dans les ordi­na­teurs, comme dans les fichiers qu’ils uti­lisent, des limites à la capa­ci­té d’af­fi­chage des don­nées. La capa­ci­té d’af­fi­chage est finie. Pour les dates comme pour les autres données.

Ce pro­blème d’af­fi­chage est, par nature, un pro­blème infor­ma­tique, mais il n’est pas pour autant un pro­blème uni­que­ment élec­tro­nique. Il existe, dans tous les ins­tru­ments que nous uti­li­sons, des limites d’af­fi­chage. Nom­breux sont les affi­chages qui se font sur un nombre de chiffres limi­té et choi­si arbi­trai­re­ment. Par exemple, le kilo­mé­trage des voitures.

Dans les voi­tures des années 50, le comp­teur kilo­mé­trique com­por­tait cinq chiffres, parce que la plu­part des voi­tures de l’é­poque avaient une durée de vie esti­mée infé­rieure à 100 000 km. Depuis, on a construit des voi­tures plus solides, si bien que l’af­fi­chage du kilo­mé­trage à six chiffres s’est généralisé.

Il est cer­tain que la pré­ci­sion d’un affi­chage kilo­mé­trique ne revêt pas une impor­tance capi­tale. Cer­tains indé­li­cats pour­raient même y voir un avan­tage, en sous-éva­luant l’an­cien­ne­té d’une voi­ture qu’ils comptent ain­si revendre à meilleur prix. Mais pour­quoi les détrac­teurs du « bogue de l’an 2000 » choi­sissent-ils jus­te­ment cet exemple-là pour en mini­mi­ser les risques infor­ma­tiques ? Il y a tant d’autres situa­tions dans les­quelles l’af­fi­chage d’une don­née revêt une impor­tance bien supé­rieure, éco­no­mique ou même vitale.

Les comp­teurs d’eau, de gaz, d’élec­tri­ci­té ont eux aus­si leurs limites d’af­fi­chage, et on peut rai­son­na­ble­ment sup­po­ser que les com­pa­gnies qui dis­tri­buent les res­sources cor­res­pon­dantes sont hau­te­ment inté­res­sées, finan­ciè­re­ment, à une cer­taine exac­ti­tude des infor­ma­tions affichées.

Et qui mon­te­rait à bord d’un avion si, tous les 10 000 pieds, l’al­ti­mètre repas­sait par le zéro ?

Admet­tons donc, pour l’ins­tant, l’exis­tence de limites de capa­ci­té d’af­fi­chage : une infor­ma­tion affi­chée sur n chiffres s’af­fiche modu­lo 10n.

Comment exprimer les dates ?

Pour expri­mer une date quel­conque, il faut d’a­bord choi­sir une date de réfé­rence. La limite de capa­ci­té se tra­duit ici par un nombre de jours, comp­té posi­ti­ve­ment ou néga­ti­ve­ment, que l’on sait repré­sen­ter à par­tir de la date de réfé­rence.

Selon les dates de réfé­rence choi­sies, et les nombres de jours per­mis, les sys­tèmes infor­ma­tiques peuvent tom­ber en panne à des dates diverses. Cer­tains sont déjà tom­bés en panne en 1970 ou en 1999. D’autres tom­be­ront en panne en 2011, 2038 ou 2071. Sans action pré­ven­tive, beau­coup pour­raient tom­ber en panne en 2000.

Seuls quelques spé­cia­listes, comme les astro­phy­si­ciens ou les géo­logues, ont besoin de toutes les échelles de temps, depuis le big bang ori­gi­nel jus­qu’à la fin sup­po­sée de l’u­ni­vers. Pour eux, la seule repré­sen­ta­tion du temps qui convienne est la repré­sen­ta­tion scien­ti­fique, que les infor­ma­ti­ciens appellent repré­sen­ta­tion en vir­gule flot­tante, c’est-à-dire :

± n . 10 ± p.

En infor­ma­tique de ges­tion, comme dans la vie cou­rante, on s’in­té­resse à une tranche de temps, une fenêtre de temps, plus ou moins cen­trée sur la date du trai­te­ment. Du moins, la fenêtre de temps contient-elle, en plus de la date du trai­te­ment, un cer­tain laps (ou hori­zon) de temps dans le futur et un cer­tain laps de temps dans le pas­sé. C’est ce que figure le sché­ma suivant.

Les para­mètres (- a, + b) de la fenêtre de temps varient en fonc­tion des besoins des appli­ca­tions infor­ma­tiques. Par exemple, la ges­tion de prêts ban­caires aura sans doute un hori­zon (+ b) de quinze ou vingt ans. Pour gérer la date de nais­sance des emprun­teurs, le pas­sé (- a) pour­ra avoi­si­ner un siècle.

Comme les trai­te­ments infor­ma­tiques sont répé­ti­tifs, la date du trai­te­ment change conti­nuel­le­ment. Il en résulte que la tranche de temps gérée se déplace uni­for­mé­ment vers le futur. L’in­for­ma­tique de ges­tion a besoin d’une tranche, ou fenêtre, de temps glissante.

Les para­mètres (- a, + b) de la fenêtre sont choi­sis à un moment don­né, en fonc­tion des besoins, des habi­tudes, des normes. Il est pos­sible que les choix effec­tués judi­cieu­se­ment à un moment don­né ne soient plus valables ulté­rieu­re­ment. Mais pour­quoi serait-ce la seule faute des informaticiens ?

Par exemple, si les gen­darmes viennent déran­ger une mamie de 106 ans, dans sa mai­son de retraite, pour la conduire à l’é­cole manu mili­ta­ri comme une gamine de six ans, c’est d’a­bord et avant tout une erreur infor­ma­tique (c’est « la faute de l’or­di­na­teur »). Mais on pour­rait tout aus­si bien sou­te­nir que c’est une erreur de la méde­cine, qui s’é­ver­tue à pro­lon­ger la durée de vie de l’es­pèce humaine, alors qu’il y a à peine de quoi nour­rir l’es­pèce tout entière.

Sans aller aus­si loin – je ris­que­rais de me fer­mer défi­ni­ti­ve­ment les portes des mai­sons de retraite – les infor­ma­ti­ciens ne sont pas les seuls cou­pables. L’homme de la rue, les médias, notre culture com­mune nous font tous com­mettre la même erreur. On parle des années 60 ou des années 90. Per­sonne ne dit les années 1960 ou les années 1990. Même à l’ap­proche de cette fin de siècle et mil­lé­naire. Même sous la menace du « bogue de l’an 2000 ».

Pour les dates, et pour les années en par­ti­cu­lier, le pro­blème – car c’en est un – prend tout à coup une acui­té déme­su­rée, parce que tous les sys­tèmes risquent de tom­ber en panne en même temps, à la fin de l’an­née 1999.

J’en­tends au fond de la salle quelques car­té­siens qui mur­murent « mais n’y a‑t-il pas une norme de repré­sen­ta­tion des dates ? »

Ah ! s’il n’y en avait qu’une ! Dans le lan­gage cou­rant, il y a une norme de fait : les années s’é­noncent avec deux chiffres. Dans les années 60, comme dans le lan­gage cou­rant, il y avait aus­si une norme infor­ma­tique de fait : les années se repré­sen­taient com­mu­né­ment sur deux chiffres. La modes­tie ou le manque de vision des infor­ma­ti­ciens de l’é­poque les empê­chaient d’en­tre­voir que, non seule­ment leurs pro­grammes, mais aus­si, et sur­tout, leurs fichiers – voir plus loin – sur­vi­vraient jus­qu’en l’an 2000 et au-delà.

La norme ISO 8601 traite de la repré­sen­ta­tion des dates. Mais de quand date-t-elle ? Notre calen­drier lui-même date seule­ment d’un peu plus de quatre siècles, et son uni­ver­sa­li­té est tout juste – est-ce un hasard ? – contem­po­raine de l’in­for­ma­tique. Com­bien de temps res­te­ra-t-il en vigueur sous cette forme ? Est-il seule­ment rai­son­nable d’af­fir­mer, aujourd’­hui, que le 1er jan­vier 2100 tom­be­ra un ven­dre­di, comme le pré­voit le calcul ?

Le pro­blème n’est pas tant de nor­mer que de renor­mer. C’est un pro­blème de volume.

Quelles sont les formes du « virus an 2000 » ?

Il existe gros­so modo trois variantes du « bogue de l’an 2000 ».

  • Les sai­sies ou les trai­te­ments infor­ma­tiques véri­fient les années trai­tées. Aucune sai­sie ni aucun trai­te­ment n’ont été pré­vus au-delà de 1999. Dans le futur, le sys­tème infor­ma­tique se bloque de lui-même.
    C’est le cas de figure le plus « infor­ma­ti­que­ment cor­rect ». Le sys­tème infor­ma­tique n’a pas été pré­vu pour le futur, et il s’au­to­pro­tège. Néan­moins, s’il faut l’u­ti­li­ser après 1999, on doit le corriger.
  • Les années ne sont pas véri­fiées, et le sys­tème les laisse pas­ser sans contrôle.
    C’est déjà un cas de lais­ser-aller infor­ma­tique carac­té­ri­sé. Le sys­tème peut cal­cu­ler les résul­tats les plus aber­rants. Et même peut-être les bons ; allez savoir ? Et, pour le savoir, il faut ins­pec­ter les pro­grammes de fond en comble.
  • Cer­taines années, comme 00 ou 99, prennent une signi­fi­ca­tion spé­ciale qui inter­dit de les uti­li­ser en tant que telles. Sou­vent, 00 signi­fie don­née incon­nue, valeur non com­mu­ni­quée. 99 repré­sente l’infi­ni, l’ab­sence de limite supérieure.


C’est le cas de figure le plus défa­vo­rable. Encore que, pour 99, le pro­blème – s’il y a pro­blème – est déjà réglé.

Dans tous les cas de figures, il faut ins­pec­ter les pro­grammes de fond en comble, pour y débus­quer l’une ou l’autre forme du « virus an 2000 », puis les décon­ta­mi­ner. Avant le réveillon, s’il vous plaît.

Les risques de dys­fonc­tion­ne­ments sont nombreux.

  • Erreurs de comparaison
    Les erreurs de com­pa­rai­son sont liées au trai­te­ment des années modu­lo 100. Par exemple, une carte ban­caire dont l’an­née d’ex­pi­ra­tion est 00 risque d’être reje­tée en 99, sous pré­texte que 00 est infé­rieur à 99 – cela s’est déjà vu. Les erreurs de com­pa­rai­son risquent de pro­vo­quer la des­truc­tion, à tort, de don­nées non expi­rées. Si une telle erreur n’est pas détec­tée rapi­de­ment, elle peut être très grave (des­truc­tion d’archives).
  • Erreurs de tri
    Les erreurs de tri, ou de clas­se­ment, sont de même nature que les erreurs de com­pa­rai­son, mais elles sont « sta­tis­ti­que­ment » moins graves, en ce sens que leur pro­ba­bi­li­té de pas­ser inaper­çues est plus faible. Par exemple, si notre mamie, née au siècle der­nier, se retrouve mêlée à la jeune géné­ra­tion, et convo­quée à l’é­cole pri­maire, il reste excep­tion­nel qu’au­cun recou­pe­ment ne per­mette de détec­ter le pro­blème, quelque part dans le sys­tème infor­ma­tique, avant que l’in­for­ma­tion erro­née ne sorte du sys­tème. Mais pour­tant cela arrive.
  • Erreurs de calculs
    Les erreurs de cal­culs sont sans doute les plus spec­ta­cu­laires.
    Sta­tis­ti­que­ment par­lant, elles peuvent, comme les erreurs de com­pa­rai­son, pro­duire les résul­tats les plus aber­rants et, comme les erreurs de tri, conduire à des pro­blèmes plus faci­le­ment déce­lables par recou­pe­ments. Par exemple, si vous sou­hai­tez la bonne année à l’un de vos proches, en l’ap­pe­lant un peu avant minuit le soir de la Saint-Syl­vestre, et si vous rac­cro­chez le com­bi­né à l’aube de l’an­née 2000, il n’est pas exclu – dans le cadre de cet article, bien sûr ! – que le sys­tème infor­ma­tique de votre opé­ra­teur télé­pho­nique vous décompte un siècle de com­mu­ni­ca­tion (entre fin 99 et début 00). Une telle erreur est pos­sible, mais elle a peu de chances de pas­ser inaper­çue. Soit le sys­tème infor­ma­tique res­pecte les règles de l’al­gèbre, et votre opé­ra­teur vous cré­dite d’un avoir de quelques mil­lions d’eu­ros, soit il ne s’embarrasse pas de consi­dé­ra­tions de signes, et vous fac­ture froi­de­ment un mon­tant équi­valent. Dans un cas comme dans l’autre, c’est la banque qui saute.

Quels sont les risques pour l’entreprise ?

Pour l’en­tre­prise, le risque est avant tout une désor­ga­ni­sa­tion majeure de l’ou­til infor­ma­tique. Tant que l’on n’a pas inven­to­rié et cor­ri­gé les pro­grammes conta­mi­nés par le virus, le mal peut frap­per n’im­porte où.

Y a‑t-il des appli­ca­tions infor­ma­tiques plus sen­sibles que d’autres ? Certainement.
La ges­tion actua­rielle, celle des prêts ban­caires, celle des contrats d’as­su­rance sont des appli­ca­tions qui traitent le long terme, sur des fenêtres de temps par nature très larges. Pour elles, l’an 2000 a pu être un pro­blème dans le pas­sé ; mais, en 1999, le pro­blème est très cer­tai­ne­ment déjà réso­lu. Ces appli­ca­tions à hori­zon loin­tain peuvent être, éven­tuel­le­ment, sen­sibles à un allon­ge­ment de la vie humaine, mais ce n’est déjà plus tout à fait le même pro­blème. Comme ces appli­ca­tions traitent le long terme, leur cor­rec­tion est moins urgente : les infor­ma­ti­ciens dis­posent d’un temps, sinon confor­table, du moins suf­fi­sant pour appor­ter les cor­rec­tions nécessaires.

À l’autre bout de l’é­chelle de temps, les appli­ca­tions qui contrôlent, en temps réel, des pro­ces­sus indus­triels sont fina­le­ment peu sen­sibles aux dates, même si elles sont sen­sibles aux durées. Il est pos­sible qu’elles tombent en panne dans la nuit de la Saint-Syl­vestre. Mais, si on les relance immé­dia­te­ment, il y a de fortes chances qu’elles fonc­tionnent de nou­veau, par­fai­te­ment, à l’aube de l’an 2000. Le risque pour l’en­tre­prise est « sim­ple­ment » de gâcher un cycle de pro­duc­tion. Le risque éco­no­mique est plus ou moins impor­tant (cas de la sidé­rur­gie, par exemple), mais il reste limi­té. Existe-t-il un risque phy­sique de mort d’homme ? Sans doute, dans quelques cas extrêmes (nucléaire, hôpi­taux), mais un tel risque semble, là aus­si, très limité.

Mon opi­nion est que les appli­ca­tions infor­ma­tiques les plus sen­sibles au « virus an 2000 » sont celles qui traitent le moyen terme, comme la pla­ni­fi­ca­tion, la ges­tion des stocks, la dis­tri­bu­tion, les réser­va­tions de places de trans­ports. La rai­son en est que le virus n’a pas encore eu l’oc­ca­sion de se mani­fes­ter dans ces appli­ca­tions. Si le virus appa­raît, ce sera vers l’au­tomne 1999. Or, cor­ri­ger ces appli­ca­tions, qui traitent le moyen terme, risque d’être plus long que leur hori­zon de temps. Les inci­dents risquent de sur­ve­nir plus vite que les cor­rec­tions ne seront ren­dues dis­po­nibles. Les pro­gram­meurs char­gés de cor­ri­ger pour­raient buter sur un mur du temps, comme les ondes sonores butent sur le mur du son. Les ser­vices infor­ma­tiques pour­raient se retrou­ver engor­gés, étran­glés, par une cadence d’in­ci­dents supé­rieure au rythme des corrections.

Indus­triels qui tra­vaillez en flux ten­du, crai­gnez l’an 2000 ! Ce sont les rela­tions avec vos four­nis­seurs qui risquent d’être tendues.

Quelles corrections appliquer ?

Bien enten­du, ins­pec­ter un pro­gramme et le cor­ri­ger pour le rendre « com­pa­tible an 2000 » ne consti­tue pas un exploit hors de por­tée. Mais alors, pour­quoi ne pas l’a­voir fait au cours des der­nières années ?

La dif­fi­cul­té tient au nombre de pro­grammes, à la méthode et au caden­ce­ment de l’opération.

Tan­dis que le com­por­te­ment d’un seul pro­gramme est par­fai­te­ment déter­mi­niste et, en prin­cipe, repro­duc­tible, le nombre des pro­grammes et leur com­bi­na­toire dans les sys­tèmes infor­ma­tiques rendent aléa­toire le com­por­te­ment du sys­tème infor­ma­tique tout entier.

La méthode car­té­sienne sug­gère d’ap­pli­quer la norme : puisque les années s’ex­priment sur quatre chiffres, modi­fions les pro­grammes pour qu’ils traitent des années à quatre chiffres.

Le pro­blème, c’est qu’il ne suf­fit pas de modi­fier les pro­grammes. Il faut aus­si et sur­tout modi­fier les don­nées, c’est-à-dire les fichiers infor­ma­tiques. Un pro­gramme traite rare­ment une seule date. Il en traite com­mu­né­ment plu­sieurs, dans plu­sieurs fichiers. Disons trois fichiers, pour don­ner un ordre de gran­deur réaliste.

Les fichiers servent d’in­ter­faces, de struc­tures d’é­change entre pro­grammes. Lors­qu’on modi­fie un fichier, pour y chan­ger la struc­ture des dates, la modi­fi­ca­tion concerne donc plu­sieurs pro­grammes. Au moins deux. Et, de plus en plus, les bases de don­nées pre­nant pro­gres­si­ve­ment la place des fichiers, les don­nées concernent un nombre crois­sant de pro­grammes. Lors­qu’on modi­fie la struc­ture d’une base de don­nées, la modi­fi­ca­tion concerne cou­ram­ment des cen­taines de programmes.

Si bien que la modi­fi­ca­tion de notre pro­gramme d’o­ri­gine peut main­te­nant concer­ner des dizaines d’autres pro­grammes connexes qui échangent des dates avec le pre­mier pro­gramme. Et, comme il serait dom­mage de s’ar­rê­ter en si bon che­min, autant cor­ri­ger aus­si ces pro­grammes connexes, liés au pre­mier, qui eux-mêmes sont liés cha­cun à quelques dizaines d’autres pro­grammes connexes, etc.

En l’ab­sence de bases de don­nées, on pour­rait encore espé­rer trou­ver des sous-ensembles de pro­grammes connexes dis­joints dans le sys­tème infor­ma­tique, ce qui sim­pli­fie­rait notre pro­blème. Mais il ne faut pas se faire trop d’illu­sions : les bases de don­nées sont deve­nues omni­pré­sentes, et le sys­tème infor­ma­tique est ain­si deve­nu un seul ensemble connexe de programmes.

Notre méthode car­té­sienne, si ras­su­rante au départ, nous conduit en fin de compte à un pro­blème dont la com­plexi­té croît, par récur­rence, de façon expo­nen­tielle, et est seule­ment limi­tée par la taille du sys­tème. Véhi­cu­lé par les flux de don­nées entre pro­grammes, le « bogue de l’an 2000 » se dif­fuse dans le sys­tème infor­ma­tique comme un virus dans un orga­nisme vivant. La cor­rec­tion consiste main­te­nant à décon­ta­mi­ner tout le sys­tème. Il faut éra­di­quer le virus.

L’in­te­rac­tion entre les pro­grammes et leurs don­nées est si forte que c’est bien la sur­vi­vance des don­nées, dans les fichiers puis les bases de don­nées, qui explique la sur­vi­vance des pro­grammes dans les­quels on exprime encore aujourd’­hui les années modu­lo 100.

Ce n’est rien de modi­fier un pro­gramme. Par contre, c’est une tout autre affaire de modi­fier les fichiers ou les bases de don­nées, de façon syn­chrone, dans tout un centre infor­ma­tique ; ou, qui plus est, entre centres infor­ma­tiques par­te­naires (télé­in­for­ma­tique). Pour don­ner quelques ordres de gran­deur, disons qu’il est cou­rant, dans les grands sys­tèmes infor­ma­tiques, de comp­ter les pro­grammes par mil­liers et les fichiers par dizaines de milliers.

Par ailleurs, il semble exces­sif d’im­po­ser, en tant que norme, des années à quatre chiffres. C’est, d’une cer­taine façon, nier la conti­nui­té du temps. Nulle appli­ca­tion infor­ma­tique cou­rante n’a besoin de trai­ter tout le calen­drier depuis son ori­gine en 1582. Ce n’est pas l’an 2000 qui crée le besoin de nor­mer les années. L’an 2000 est, tout au plus, une occa­sion de le faire. Mais le moment n’est sans doute pas le mieux choisi.

Les par­ti­sans des années à quatre chiffres arguent aus­si des meilleures per­for­mances des sys­tèmes infor­ma­tiques, en fai­sant obser­ver que les cal­culs de dates sont sim­pli­fiés par les années à quatre chiffres. Et il est vrai qu’a­vec des années à deux chiffres les cal­culs doivent tenir compte de la repré­sen­ta­tion modu­lo 100, et sont donc un peu plus com­plexes. Mais est-ce là un argu­ment suf­fi­sant ? C’est sous des pré­textes d’op­ti­mi­sa­tion ana­logues que l’on codait, dans les années 60, les années sur deux chiffres, pour évi­ter de gas­piller quelques bits. Avec le suc­cès que l’on connaît. À quoi bon, aujourd’­hui, grap­piller quelques Mips ou quelques Flops ?

C’est ici, selon moi, que les infor­ma­ti­ciens se sont offert un petit plai­sir, en abon­dant dans le sens de la norme, à l’oc­ca­sion des « pro­jets an 2000 ». Il suf­fi­sait, dans la plu­part des cas (mais cela ne sau­rait, non plus, être une règle abso­lue), de conti­nuer à expri­mer les années modu­lo 100, et d’at­tri­buer à ces années, au moyen d’une pro­gram­ma­tion adé­quate, une signi­fi­ca­tion com­pa­tible avec le chan­ge­ment de siècle. Au lieu de cela, un cer­tain nombre d’in­for­ma­ti­ciens de tous bords, socié­tés de ser­vices, entre­prises clientes, gou­rous et autres tech­no­crates, ont cru bon de son­ner le glas de la conti­nui­té du temps. L’an 2000 infor­ma­tique connaî­trait le temps absolu.

Il en résulte qu’au lieu de modi­fier pro­gres­si­ve­ment, l’un après l’autre, les pro­grammes concer­nés par le pro­blème, en fai­sant en sorte que les pro­grammes attri­buent à chaque date la signi­fi­ca­tion qui lui revient, dans la fenêtre de temps impar­tie, nos défen­seurs de l’an­née à quatre chiffres ont soli­dai­re­ment alour­di de façon déme­su­rée les « pro­jets an 2000 », en impo­sant de modi­fier les fichiers, les bases de don­nées et la plu­part des pro­grammes. Tous en même temps. Et avant le réveillon s’il vous plaît.

Et en ren­dant, au pas­sage, mons­trueux le futur « bogue de l’an 10000 ».

Comment conduire un « projet an 2000 » ?

Il me semble inop­por­tun d’en dire plus sur la façon de mener un pro­jet « an 2000 ». Non pas que le sujet manque d’in­té­rêt – et je crois, à tort ou à rai­son, avoir acquis une cer­taine expé­rience des conver­sions infor­ma­tiques, indé­pen­dam­ment de l’an 2000 – mais il est tout sim­ple­ment trop tard pour se lan­cer main­te­nant dans un pro­jet important.

Les cam­pagnes de sen­si­bi­li­sa­tion, aux­quelles on assiste actuel­le­ment, ne peuvent plus concer­ner que l’in­for­ma­tique indi­vi­duelle, ou celle de PME ayant un parc infor­ma­tique réduit. Pour les grandes entre­prises ou les admi­nis­tra­tions qui ont un parc infor­ma­tique d’une cer­taine importance :

  • soit elles ont com­men­cé (et, je leur sou­haite, lar­ge­ment avan­cé) leur projet,
  • soit leur infor­ma­tique court de sérieux risques – voir plus haut.


Il n’est plus temps de se sou­cier, en 1999, d’as­sou­plir les condi­tions de pas­sa­tion des mar­chés publics, pour pré­pa­rer telle ou telle admi­nis­tra­tion à fran­chir l’an 2000.

Finalement, faut-il féliciter ou… remercier les informaticiens ?

Par­tant d’un pro­blème simple, à l’é­chelle du pro­gramme indi­vi­duel, la com­bi­na­toire ren­con­trée dans les sys­tèmes infor­ma­tiques fait que leur modi­fi­ca­tion, ou leur conver­sion, consti­tue un pro­jet complexe.

Oui, l’an 2000 pré­sente un risque infor­ma­tique cer­tain. Et, comme l’in­for­ma­tique est par­tout, le « bogue de l’an 2000 » peut se mani­fes­ter n’im­porte où. Il se pré­sente comme un virus mul­ti­forme, en ce sens qu’il frappe à l’im­pro­viste, et que son iden­ti­fi­ca­tion puis son éra­di­ca­tion ont quelque chose de médical.

Les risques pour l’en­tre­prise sont une pro­fonde désor­ga­ni­sa­tion infor­ma­tique, une perte majeure de cré­di­bi­li­té, une image de marque en chute libre.

Sans doute, les infor­ma­ti­ciens sont-ils en grande par­tie res­pon­sables du pro­blème, mais ils ne sont peut-être pas les seuls. Qu’ils tra­vaillent dans les socié­tés de ser­vices ou les entre­prises clientes, les infor­ma­ti­ciens se sont tous fait un peu plai­sir en trans­for­mant, si com­mo­dé­ment, un pro­blème simple de conver­sion – qui pou­vait rai­son­na­ble­ment s’ef­fec­tuer pro­gres­si­ve­ment – en un pro­blème com­plexe de conver­sion de type big bang. Mais peut-être sont-ils seule­ment cores­pon­sables de ce détournement.

Ils ont vou­lu, à cette occa­sion, appli­quer une norme, sans doute judi­cieuse, qui leur a peut-être été impo­sée, et ils ont seule­ment péché par omis­sion, en mas­quant la charge que repré­sente un tel chan­ge­ment de norme.

Ren­dez-vous le same­di 1er jan­vier 10000 – si notre calen­drier n’a pas chan­gé entre-temps – pour véri­fier si l’ex­pé­rience acquise, à la fin de notre mil­lé­naire, pour cor­ri­ger le « bogue de l’an 2000 », est réuti­li­sable pour trai­ter celui de l’an 10000…

Poster un commentaire