Overblog
Suivre ce blog Administration + Créer mon blog
4 août 2009 2 04 /08 /août /2009 17:20

Norbert le geek est seul à la maison. Norbert le geek a l'estomac qui gargouille. Norbert le geek est tout désemparé. Alors Norbert décroche le téléphone :  Allô Maman ? Faim. 


Ça devrait vous rappeler quelque chose : le  Scénario 1  de cet article. Il y était question des diverses  richesses  de communication envisageables entre mère et fils, aussi bien qu'entre équipements informatiques (il y aurait donc une différence ?).

Le scénario 1 : toute l'intelligence d'un seul côté, un ordinateur dialoguant avec un terminal, était le plus agaçant mais aussi le plus simple. C'est pourquoi je le reprends comme support aujourd'hui – cependant les notions présentées sont d'emploi tout à fait général.

Retour à l'histoire.


Donc ça commence par  avance le pied droit, avance le gauche, avance le droit, etc.  , répété jusqu'au congélateur, et les autres étapes : ouvrir le congélateur, choisir une boîte, fermer le congélateur, aller au micro-ondes, etc. demanderont le même niveau de détail fastidieux.

Heureusement Maman connaît son rejeton comme si elle l'avait fait, elle connaît le nombre de ses pas du téléphone (toujours à la même place) au congélateur (idem) et elle est prévoyante : depuis longtemps elle a fait une petite fiche où tout ça est noté (sous le titre  du téléphone au congélo ), elle se contente de lire la fiche.

De même l'ouverture du congélateur est une procédure standardisée depuis longtemps : deuxième petite fiche,  ouvrir le congélo . Ensuite troisième fiche :  choisir une boîte , tâche délicate car les tiroirs ne sont pas toujours parfaitement rangés – on en reparlera.

Au bout du compte, une fiche après l'autre, elle finira par nourrir son rejeton.

Décodage : par la force des choses et de l'amour maternel, et bien qu'elle soit convaincue que l'informatique est un truc de malade, Maman s'est faite analyste-programmeur :

  • vous avez compris qu'elle a une fiche par tâche élémentaire, tâche décrite dans tous ses détails : une fonction est une suite d'instructions ;
  • chaque fiche porte un titre : une fonction a un nom (parfois on utilise les mots de tout le monde…) ;
  • toutes ces fiches sont regroupées dans une boîte : bibliothèque de fonctions ;
  • elle a même plusieurs boîtes, une pour chaque genre de tâches : se déplacer dans l'appartement, actionner les divers équipements… plusieurs bibliothèques plutôt qu'un seul fourre-tout ;
  • à côté de ça elle a d'autres fiches, une pour chaque  macro-tâche  comme de nourrir l'animal. Ces fiches sont plutôt courtes parce qu'elles sont principalement une suite de renvois aux fiches des boîtes – pourquoi en effet se fatiguer à tout recopier à chaque fois ? Ces fiches-là sont des programmes qui appellent (ou invoquent) les fonctions qui leur sont utiles – et seulement celles-là ;

Pourquoi toutes ces fiches ? Maman n'est pas maniaque, simplement elle n'a pas de temps à perdre.

Au début elle écrivait dans plusieurs grands cahiers où elle notait tout au fur et à mesure des besoins, un long roman (une procédure ou un programme) pour chaque  macro-tâche  qu'elle lisait une ligne après l'autre, en séquence : les cahiers étaient très épais. Bientôt elle a remarqué des points communs entre tous ces romans, elle a commencé à mettre des flèches et des renvois de notes partout. Ces débranchements et ces points de retour compliquaient un peu la lecture du cahier (ils rompaient la séquence) mais faisaient gagner beaucoup de place.

Beaucoup de place et aussi de temps. Non que ce système lui ait permis d'aller plus vite (il fallait toujours lire toutes les instructions et même un peu plus : flèches et renvois), mais il n'y avait plus d'écriture en double : quand Norbert a grandi et que ses pas se sont allongés, il n'a fallu réécrire que la section des déplacements (exemplaire unique) et pas tous les cahiers où Norbert se déplace (et il faut souvent le faire se déplacer). En accomplissant cette  mise en facteur , ce regroupement, Maman a commencé à modulariser son système, ce qui a considérablement facilité la maintenance de ce système. La modularisation est toujours une bonne idée.


Toujours dans les premiers temps, et un peu débordée, Maman réfléchissait à partir du tout début :  lui faire bouger le pied gauche, puis le droit, et recommencer. Bon. Après ouvrir le congélateur : lever le bras jusqu'à la poignée, etc. . Maman a vite remarqué qu'elle s'y perdait : occupée à ne rien oublier pour la mise en marche du four, elle ne savait plus si elle avait bien compté les pas pour arriver à ce four.

Jeanine, de la compta, a eu pitié :  Ne plonge pas tout de suite dans les détails, tu n'en sortiras jamais. Commence donc par répertorier les grandes étapes, sans rien oublier : prendre un plat, le faire cuire… Ensuite seulement tu approfondiras chaque étape : aller au congélateur, l'ouvrir, trouver le plat dans le congélateur, etc. Et s'il le faut tu détailleras encore chaque sous-étape, jusqu'à ce que tu arrives au niveau que comprend Norbert . Alors Maman a offert des macarons Ladurée à la précieuse Jeanine et a commencé à faire de l'analyse descendante. Du coup l'idée des fiches est venue d'elle-même, tout comme la répartition des instructions entre les fiches : programmation structurée.


Voilà les grandes lignes de l'organisation de Maman, de l'architecture logicielle de son système (je case ce gros mot en vitesse, profitant de ce qu'elle est occupée ailleurs). Quand elle aura cinq minutes libres elle vous laissera regarder ses fiches de plus près.

Archives