28 juillet 2006

Code bless you.

Suite à l'article "In code we trust", certains lecteurs ont demandé à très juste titre s'il n'y avait pas un else dans le second if. Après vérification, non. Mais ça aurait pu être drôle en effet. ;-)
Néanmoins (comme dirait Krilin) j'en ai trouvé d'autres, tout aussi désopillants.

Par exemple:

if( a > 0 )
    if( a < 1 )
    {
        lamer();
    }

au lieu de:

if( 0 < a && a < 1 )
{
    lamer();
}

Ou bien encore:

if( a == 1 )
{
    lamer();
}

if( a == 1 )
{
    luser();
}

au lieu de:

if( a == 1 )
{
    lamer();
    luser();
}

Vous me voyez fort marri de ne pouvoir publier ici les sources dans leur intégralité pour satisfaire vos desideratas. C'eut été fort cocasse.

Environnement de travail.

Quelle joie de travailler avec des logiciels informatiques bien conçus.

Le traitement de texte, qui a pour but de me dire quoi faire plutôt que de faire ce que je lui demande. (Allez, contrôle espace pour tout annuler et on recommence.) L'excel-lent tableur, qui ferme tous les fichiers qu'il a ouvert lorsque je lui demande d'en fermer un seul.

L'outil de messagerie qui n'est pas foutu de rechercher un mot-clef dans un courrier. Il faut rechercher dans tous les courriers et scruter avec ses yeux dans le corps des courriers trouvés; ou alors faire un copier/coller dans le traitement de texte. (Rhhahaaa, c'est un cercle vicieux.) Les adresses mail sont conservées (on ne sait où) et proposées par défaut, même si elles sont invalides et/ou ont été retirées de l'annuaire.

Le navigateur Internet qui n'a toujours pas compris que je veux le faire démarrer en plein écran parce que le 640x480 c'est quand même dépassé (même pour moi).
Le même navigateur, décidemment très joueur, qui n'anime plus son icône indicatrice d'activité me laissant penser que la page a fini de se charger alors qu'il est encore en train de se débattre pour en comprendre les scripts.

La connexion réseau visiblement sous dimensionnée, qui me rapelle mes glorieuses heures passées sur un modem 28.8 (non, je n'ai pas connu les coupleurs ;-p). Le routeur doit encapsuler du TCP/IP sur une couche physique à faible débit: des boulets de canons, des pigeons voyageurs ou des signaux de fumée.

L'antivirus en mode paranoïaque qui rabaisse les performances de mon poste de travail (déjà acquis à l'économie) au niveau d'une machine d'il y a plusieurs années; tout ça parce qu'il scanne tous les fichiers que je manipule. Et les Shadoks pompaient, pompaient ...

L'outil administratif sur l'intranet, très ergonomique. Le bouton de validation se trouve 3 pages au dessus des champs à saisir et l'annulation d'un congé se fait avec un type de congé spécial (congé payé, RTT, maladie et ... annulation).

Même le papier toilette ne se découpa pas selon les pointillés. Je vais peut être me reconvertir en boulanger ou en plombier, histoire d'avoir un vrai métier et de moins me prendre la tête.

Un peu d'humour !

Le théorème du chimpanzé.

Mettez 20 chimpanzés dans une chambre, accrochez une banane au plafond et mettez une échelle permettant d'accéder à la banane. Assurez-vous qu'il n'y a pas d'autre moyen d'attraper la banane que d'utiliser l'échelle et mettez en place un système qui fait tomber de l'eau très glacée dans la chambre dès qu'on commence à escalader l'échelle. Les chimpanzés apprennent vite qu'il ne faut pas escalader l'échelle. Arrêtez alors le système d'eau glacée, de sorte que l'escalade n'ait plus son effet de gel.

Maintenant, remplacez un des 20 chimpanzés par un nouveau. Ce dernier, évidemment, va essayer d'escalader l'échelle et sans comprendre pourquoi il se fera tabasser par les autres. (Eux savent quelque chose que lui ne sait pas.) Remplacez encore un des vieux chimpanzés par un nouveau. Ce dernier se fera encore tabasser, et c'est celui qui a été introduit juste avant lui qui tapera le plus fort.

Continuez la leçon jusqu'à ce qu'il n'y ait plus que des nouveaux. Alors aucun ne cherchera à escalader l'échelle, et si jamais il y en a un qui pour une raison quelconque ose y penser, il se fera massacrer illico par les autres.

Le pire, c'est qu'aucun des chimpanzés n'a maintenant la moindre idée de la raison pour laquelle il ne faut pas monter sur l'échelle.

C'est ainsi que naît et fonctionne la "culture d'entreprise".


La petite fourmi travailleuse.

Il était une fois, une Fourmi heureuse et productive qui tous les jours arrivait de bonne heure à son travail. Elle passait toute sa journée à travailler dans la joie et la bonne humeur, poussant même la chansonnette. Elle était heureuse de travailler et son rendement était excellent mais, malheur, elle n'était pas pilotée par un manager !

Le Frelon, PDG de l'entreprise, considérant qu'il n'était pas possible que la situation puisse perdurer, créa un poste de manager pour lequel il recruta une Coccinelle avec beaucoup d'expérience. La première préoccupation de la Coccinelle fut d'organiser les horaires d'entrée et de sortie de la Fourmi. Elle créa également un système de compte-rendu et de fiches navettes. Très vite, il fallut engager une secrétaire pour l'aider à préparer les dossiers et le reporting, si bien qu'elle recruta une Araignée qui mit sur pied un système de classement et qui fut chargée de répondre au téléphone.

Pendant ce temps là, la Fourmi heureuse et productive continuait de travailler, travailler, travailler. Le Frelon, PDG de l'entreprise, était ravi de recevoir les rapports de la Coccinelle, si bien qu'il lui demanda des études comparatives avec graphiques, indicateurs et analyse de tendance. Il fallut donc embaucher un Cafard pour assister le manager et il fallut acheter un nouvel ordinateur avec une imprimante.

Assez vite, la Fourmi heureuse et productive commença à baisser de rythme et à se plaindre de toute la paperasserie qui lui est dorénavant imposée. Le Frelon, PDG de l'entreprise, considéra qu'il était temps de prendre des mesures. Il créa donc le poste de chef de service pour superviser la Fourmi heureuse et productive.

Le poste fut pourvu par une Cigale qui changea tous le mobilier de son bureau et qui demanda un nouveau fauteuil ergonomique ainsi qu'un nouvel ordinateur avec écran plat. Seulement, avec plusieurs ordinateurs, il fallut aussi installer un serveur réseau. Le nouveau chef de service ressenti rapidement le besoin de recruter un adjoint (qui était son assistant dans son ancienne entreprise) afin de préparer un plan stratégique de pilotage ainsi que le budget de son nouveau service. Pendant ce temps-là, la Fourmi était de moins en moins heureuse et de moins en moins productive.

"Il va nous falloir bientôt commander une étude sur le climat social", dit la Cigale. Mais, un jour, le Frelon, PDG de l'entreprise, en examinant les chiffres, se rendit compte que le service dans lequel la Fourmi heureuse et productive travaille n'était plus aussi rentable qu'avant. Il eut donc recours aux services d'un prestigieux consultant, M. Hibou, afin qu'il fasse un diagnostic et qu'il apporte des solutions.

Le Hibou fit une mission de trois mois dans l'entreprise à l'issue de laquelle il rendit son rapport : "il y a trop de personnel dans ce service".

Le Frelon, PDG de l'entreprise, suivit ses recommandations et .. licencia la Fourmi !

Moralité: ne t'avise jamais d'être une Fourmi heureuse et productive. Il vaut mieux être incompétent et ne servir à rien. Les incompétents n'ont pas besoin de superviseur, à quoi cela servirait-il ? Si malgré tout, tu es productif, ne montre pas que tu es heureux au travail, on ne te le pardonnerait pas.


Les rameurs et les barreurs.

Une firme étrangère et une société nationale décident de faire une course d'aviron dans le but de montrer leur savoir-faire dans le domaine de la "galvanisation" des troupes. Les deux équipes s'entraînent très dur et lors de la première épreuve, les étrangers gagnent avec plus d'un kilomètre d'avance.

La société est très affectée. Son management se réunit pour chercher la cause de l'échec. Une équipe d'audit, constituée de senior-managers, est désignée. Apres enquête, ils concluent que l'équipe étrangère est constituée de huit rameurs pour un barreur, alors que leur équipe a huit barreurs pour un rameur.

A la lecture de l'audit, le management décide d'avoir recours aux services de consultants. Après avoir perçu d'énormes honoraires, ils rendent leur avis entouré de précautions oratoires; leur rapport de 512 pages semble préconiser l'augmentation du nombre de rameurs. La structure de l'équipe est donc réorganisée. Une nouvelle stratégie est mise en place, basée sur une forte synergie car il faut améliorer le rendement et la productivité grâce à des modifications structurelles. Il est décidé de mettre en place un manuel qualité, des procédures d'application, des documents de suivi ... Mais personne ne veut devenir rameur, alors la nouvelle équipe est constituée maintenant par :
  • 1 directeur général d'aviron
  • 1 directeur adjoint d'aviron
  • 1 manager d'aviron
  • 1 superviseur d'aviron
  • 1 consultant de gestion d'aviron
  • 1 contrôleur de gestion d'aviron
  • 1 chargé de communication d'aviron
  • 1 coordinateur d'aviron
  • 1 barreur
  • 1 rameur stagiaire
Ils mettent aussi en œuvre un système de stimulation pour encourager le seul rameur de l'équipe à travailler plus. Baptisé "La qualité et le Zéro défaut", il repose sur des réunions bi-hebdomadaires, un comité de pilotage et une prime sur objectif pour le rameur. La course a lieu et cette fois, les étrangers gagnent avec deux kilomètres d'avance.

Humiliée, la direction prend les décisions rapides et courageuses : elle licencie le rameur pour n'avoir pas atteint ses objectifs, stoppe la mise en chantier d'un nouvel aviron, vend le bateau et annule tout investissement. Puis elle récompense les barreurs managers de leurs efforts en leur donnant le prix de la performance. Enfin, avec l'argent économisé par ces mesures de restriction, elle gratifie d'une prime les managers et superviseurs, augmente les salaires des directeurs et s'octroie une indemnité exceptionnelle de fin de mission.


Le consultant et le berger.

Un berger et ses moutons traversent une route rurale. Surgit une Jeep Cherokee flambant neuve, conduite par un jeune homme en chemise Hugo Boss, pantalon YSL, baskets Nike, etc. La Jeep s'arrête, le chauffeur se penche par la fenêtre.
    - Hé! Si je devine le nombre de moutons que vous avez, est-ce que vous m'en donnez un ?
    - D'accord.
Le jeune homme gare sa voiture, branche son notebook à son GSM, entre dans un site de la NASA, scrute le terrain à l'aide du GPS, établit une base de données, 60 tableaux Excel pleins d'algorithmes et d'exponentielles, plus un rapport de 150 pages imprimé sur sa mini imprimante high-tech.
    - Tu as ici 1586 moutons.
    - Exact! Tu peux avoir ton mouton.
Le jeune homme prend le mouton et le met dans le coffre de la Jeep. Le berger s'approche et lui demande
    - Si je devine ta profession, est-ce que tu me rends mon mouton ?
    - D'accord.
    - Toi, tu es consultant.
    - Wow. Comment as-tu deviné ?
    - Très facile. Tu es venu alors qu'on ne t'a rien demandé; tu te fais payer pour me dire ce que je sais déjà et tu ne connais rien à ce que je fais puisque tu as pris mon chien!

25 juillet 2006

Nous sommes envahis !!

J'étais calmement installée au bord d'un lac, à l'ombre d'un pin, profitant de la magnifique journée qui s'offrait à moi pour m'adonner à une de mes passions, la lecture, lorsque un passage du livre que je lisais a attiré mon attention. Pour une raison que vous comprendrez aisément, j'ai souhaité partager cet extrait avec vous :
"Lorsqu'il prend une décision, ce n'est pas parce qu'il est certain d'avoir raison, contrairement à Charles. Il se persuade que c'est bien le cas, mais comme il n'y croit pas vraiment, il présente ses idées avec davantage de force et de dogmatisme que s'il était réellement convaincu. Quand il a une idée, il s'y accroche coûte que coûte de peur de se réveler à lui-même sa propre faiblesse. Il attaque au lieu de chercher à persuader et irrite au lieu d'amadouer."
Extrait du livre intitulé "L'énigme San Gioovanni" de Iain Pears.

Certains d'entre vous, comme moi, reconnaîtront peut être une personne qu'ils connaissent, trouveront la description assez ressemblante. A ceux là, je dis : méfiance, il en existe plusieurs exemplaires répartis dans le monde. Ah, moi qui croyait qu'il était le seul, tous mes espoirs se sont évanouis d'un coup...

Bonne journée à tous et bonnes vacances à ceux qui ont la chance d'en avoir pris.

24 juillet 2006

Mon supérieur ... hiérarchique.

Vous en avez eu quelques aperçus au fil de divers articles, voici un article entièrement consacré à mon très cher coordinateur.

Dès le premier jour, ça s'est mal passé. Ça commençait pourtant bien.
Lors d'un small talk de base, il m'a expliqué qu'il était féru d'une certaine activité. C'est marrant lui répondis-je, ma femme venait à peine de déposer le bilan de son entreprise, justement spécialisée dans cette activité. Il me dit alors quelque chose comme: "Ha oui ... c'était situé à telle adresse. C'est pas loin de chez moi mais je n'y suis jamais allé. J'ai cru que c'était une secte. Et puis c'était pas super bien fichu. Il aurait fallu faire ça et ça pour que son commerce marche."
Ben voyons, l'inspecteur des travaux fini en pleine action post-contemplative qui arrive après la bataille avec LA solution. L'expertise du salarié sur la gestion d'un commerce ...

Les jours suivants, il a essayé de socialiser avec des blagues à deux sesterces. Le problème c'est qu'il semble les prendre, lui, pour de l'humour de haut vol. Alors il les ressasse. Non point qu'il verse dans le comique de répétition. Au mieux il ne se souvient tout simplement pas de ce qu'il dit à ses collègues, au pire il pense qu'on ne les a pas comprises.

Toujours dans la rubrique des rapports humains, on m'a fait remarqué que le matin, le quidam pouvait passer plusieurs fois devant la porte ouverte de mon bureau, jetter un coup d'oeil et m'y voir, mais sans prendre la peine de venir me saluer. Et lorsqu'il le fait, vers la fin de la matinée, c'est souvent sans oser me regarder; comme une corvée dont on s'aquitte au plus vite.
À ce niveau c'est même pas de l'incompétence managériale, c'est un veul manque de la plus élementaire correction.

Question organisation, c'est un champion toutes catégories.
Le logicel qu'il utilise pour prendre ses rendez-vous a beau l'avertir de chevauchements, cala semble être en vain. On a déjà fait plusieurs réunions d'équipe sans lui parce qu'il avait un autre rendez-vous. Pas un pris juste avant et qui aurait débordé, non, non ... Un pris en même temps en toute connaissance de cause.
Croyez-vous qu'il aurait pris la peine d'avertir ses collègues, lui qui est supposé diriger ce type de point régulier ? Et ben non; il faut savoir faire preuve d'autonomie et aller chercher de nous même dans son agenda.
Plouc-man 1, reste de l'équipe 0.

Car ce monsieur pratique avec une maîtrise consommée la rétention d'information. L'information c'est le pouvoir.
Ce qui ne l'empêche nullement dans le même temps, de demander à ses subalternes de communiquer plus. Faites ce que je dis, pas ce que je fais.
Ce qui pourrait passer pour une simple gaucherie doit en fait être qualifié de manipulation. Car ce qu'on lui dit, il le répète. Spécialiste ès fissalingus avec la hiérarchie, il adore trainer avec les gros pontes à la fin des réunions. Il parle de tout et de rien. Tout, c'est les informations qu'on lui a donné. Et rien, c'est peu ou prou ce qu'il a fait. Il occupe le terrain et fait voir qu'il est là en somme.
Et avec un tact devenu légendaire, il nous rappelle parfois que nos pauses (café ou discussion) ne doivent pas compter dans notre emploi du temps. Marrant comme ça ne fonctionne pas à partir d'un certain grade. Du coup, là où ce sont mes collègues ou moi qui faisont le travail pour les clients, chez ces derniers on dit qu'il (id est mon chef) a fait çi ou ça".
Les clients ne retiennent malheureusement que celui qui a fait la communication finale, même si celui-ci dit rarement "je" (j'ai vérifié, il est très fort).
Par contre quand il y a un pépin, c'est ipso facto la faute du collègue qui s'est chargée du dossier. Mon responsable s'improvisera alors sauveur en réglant le problème du client ... si ses modestes compétences techniques le lui permettent bien entendu.

Car il ne fait pas le poids techniquement alors même qu'il est censé être le référent technique de l'équipe. Il raconte ses expériences d'il y a 20 ans à l'école en guise de justification de ces choix alors que les tenants et aboutissant techniques de dossiers acutels ne sont aucunement comparables. Il est capable d'assener des contre-vérités avec un aplomb formidable. Je ne vous détaillerai pas les dégats collatéraux aux échelons supérieurs, non comprenant techniquement, mais pour autant détenteurs du pouvoir décisionnel. Ses subordonnés se sont adaptés, eux, et ont pris pour habitude de vérifier tout ce qu'il dit.

Je parlais de code bancal de collègues que je n'ai pas connu dans un article précédent. Et bien mon chef en assure le pendant administratif. Il dispose de piètres capacités rédactionnelles. C'est un comble quand on sait qu'il vise les documents écrits par ses collaborateurs. Il utilise des phrases qui ne sont pas formulées en bon français, pour exprimer des idées complètement incompréhensibles visant à ajouter des fonctionnalités à un projet déjà en retard et qui n'a pourtant pas commencé. Ne parlons pas de la mise en page des documents à partir des modèles de l'entreprise; le traitement de texte a fait ce qu'il a voulu par dessus.
Notre collègue de l'Europe de l'Est qui suit des cours de perfectionnement en français m'a une fois bluffé en m'apprenant une petite subtilité de ma langue natale. A contrario, lorsque mon n+1 tente de corriger certaines tournures de phrase de mes documents, il ne fait qu'étaler son illétrisme latent.
Je m'en gausserais s'il n'était pas bien mieux payé que moi.

Un peu de vécu: lors d'un problème qui nous été soumis récemment, plusieurs solutions s'offraient à nous. Faire le travail en interne, ou le faire faire de façon légèrement différente par un autre service. Je me suis vu ordonné de contacter l'autre service pour lui imposer de faire le boulot, avec l'aide des justifications du chef. Résultat: le service n'était pas content car il estimait que c'était à mon service de faire ce boulot (tu m'étonnes !).
Ces lointains collègues ont donc convoqué une réunion dans laquelle mon chef est entré en me disant: "je vais jouer au mauvais flic; celui qui ne veut pas faire le boulot histoire qu'ils en fasse un peu". Dont acte.
Dans les faits, quand nos collègues ont justifié pourquoi c'était à nous de faire le job, mon chef a répondu: "mais bien sûr, c'était mon idée première". Et moi de me retourner, abasourdi, pour, oubliant toute diplomacie, m'interloquer à haute voix: "je croyais que tu ne voulais pas entendre parler de cette solution ?".
Le couard. Le poltron. Le pleutre.
Je crois profondemment en la non violence, mais j'ai bien failli lui en mettre une ce jour là. Le Dalaï Lama et le feu grand G'Kar puissent-il m'en excuser.

Alors vous me rétorquerez: "pourquoi ne pas essayer de le garder à distance ?". Ce n'est pas faute de ne pas essayer. Pour n'importe qui dans notre monde moderne sur-technoligisé, dès qu'il y a un truc à faire, quelque chose à demander ? Hop ! Un petit mail et le tour est joué.
Encore faut-il que les-dits mails soient lus ... Car si c'était un PPS avec des photo montages, il le serait certainement. Mais pour des raisons futiles telles que le travail, le mail passe étrangement inaperçu. C'est au bout de la 3ème ou 4ème relance orale (si possible devant un chef du chef pour être plus efficace) qu'il commence à se bouger pour le bidule-machin-chose super urgent de la semaine précédente.
Dans le cas d'espèce, certainement plus par peur d'être pris en faute avant de partir en vacances sur la côte plutôt que par simple culpabilité. Quant à la conscience professionnelle, n'y comptez même pas. Bien évidemment le document fourni à la va-vite était fait avec un logiciel installé uniquement sur son poste (dont personne n'a pas le mot de passe). Après moi le déluge a-t-il dû penser.

À l'inverse, tout ce qu'il demande, lui, doit être fait sur le champ.
Par exemple un soir à 18h, il demande de monter un dossier en urgence pour une réunion le lendemain matin. On reste tard pour boucler tout ça (22h) et le lendemain matin, il n'a même pas eu la décence de venir plus tôt pour demander comment ça s'était passé, s'excuser, voire (on peut rêver) proposer une récup'. Non, au lieu de ça il est arrivé 10 min avant la réunion pendant laquelle il a bêtement lu l'impression qu'il a demandé qu'on lui fasse.
Pathétique.
Ne lisez pas Dominique ... Ne lisez pas ...

Et au niveau management ce n'est guère mieux. En face des gens, il vante leurs qualités. Mais dans leur dos, il n'en dit semble-t-il que du mal. Si possible à d'autres collègues, pour mieux mettre en exergue les qualités de ces derniers. Génial niveau ambiance. Car comme on s'échange tous nos retours d'expérience par messagerie instantanée; les comportements déviants de ce gueux sont une intarissable source de poilade.
Quand quelqu'un lève un ou plusieurs problèmes sur un projet, il le met illico sur un autre pour camoufler les soucis techniques et humains sous le tapis. En espérant que ceux qui prendront la suite ne s'en plaindront pas. Quid de l'expérience acquise par la première personne en charge ? Peu importe en fait, l'ambiance est tellement pourrie qu'il y a un turnover d'une incroyable célérité. Une personne reste un à deux ans; pas plus. Et ça fait des années que ça dure. J'ai surnommé mon manager "poissegrolle".

Il dit qu'il en a marre et qu'il veut partir mais ne le fait pas alors qu'il a toutes les cartes en main. Et personne ne pourra malheureusement le faire partir, puisque ce prédateur a su tisser les ramifications de sa toile politique jusqu'à des hauteurs stratosphériques.
Pour s'élever dans l'échelle sociale on peut chercher à s'améliorer ou enfoncer les autres au vu et au su de sa hiérarchie.
Plus facile, plus rapide est le côté obscur.

Voila, c'est un peu bâclé comme article mais parfois, certains sujets ne méritent pas qu'on s'y appesantisse. Il faut parfois savoir implémenter rapidement un exut-ware. ;-)

In code we trust.

Nulla dies sine linea.
Il faut toujours mettre une locution latine, ça fait sérieux. Je ne sais plus qui disait ça et G**gl* n'a pas trouvé alors je ne peux pas me la péter en casant une citation trovop lava clavasse.
Pas un jour sans une ligne ? Et bien là j'en suis loin. Il faut dire que j'ai été pas mal occupé ces dernières semaines et pour cause: on m'a mis sur le débuggage d'une application. Ce fût fastidieux labeur; un sacerdoce, une sinécure, un apostolat (je vais encore devoir des royaltees à ma femme pour cette citation).

Dans NTIC, le 'N' c'est pour "nouvelles'. En théorie. Car dans le cas présent, j'ai plutôt creusé dans les strates géologiques de code "hérité" comme on dit en jargon professionnel. Dans les couloirs on parle plus volontiers entre pairs de "vieux bousin". Ce qui a le mérite d'être beaucoup plus parlant, en particulier aux profanes.
Personne n'apprécie réellement de replonger dans des sources poussiéreux. On peut comparer cela à l'exercice législatif. Tout le monde y est allé de sa petite touche personnelle au gré des tendances et des chefs. Il y a beaucoup de choses redondantes voire inutiles. Et il est hors de question de perdre du temps dans un improductif toilettage.
Descartes disait pourtant: Ainsi voit-on que les bâtiments qu'un seul architecte a entrepris et achevés ont coutume d'être plus beaux et mieux ordonnés que ceux que plusieurs ont tâché de raccommoder, en faisant servir de vieilles murailles qui avaient été bâties à d'autres fins.

Quant à Amstrad 100%, ils disaient que le bug est l'unité informatique de l'imperfection humain (et oui, je suis pas si tant vieux que ça hein ...). Cependant, entre le manque, tout humain, de dicernement à anticiper des problèmes improbables et le réchampissage à la truelle de lignes grossières selon des tracés non euclidiens, il y a un monde.
Les bugs sont apparus suite à un récent ajout de fonctionnalités (pas moi, pas taper). Au lieu d'encapsuler ou d'interfacer l'existant, il a été fait pléthore de verrues un peu partout avec force branchements conditionnels précaires.
Quand on m'a dit qu'il y avait des ingénieurs "junior", j'ai pensé à des jeunes diplômés payés au lance-pierres pour financer le CLK de fonction du patron. Il ne semblait pas que la législation encourageât le travail des enfants, surtout pré-puberts. Si les intriguants productivo-médeffiens peuvent désormais s'inviter de la sorte dans l'enceinte d'une administration, il va me falloir réviser urgemment mon échelle de valeurs.

Quoi qu'il en soit me voici avec une mission d'une haute technicité. Très valorisante puisque le langage utilisé n'a plus cours depuis au bas mot une décade révolue. Ça va être tout benef' pour ma carrière ça; me voila promu d'archéologue informatique à éboueur informatique. :-/

Car du déchet il y en a ... jugez plutôt:
  • Laisser des pièges.
    La compilation des sources du référentiel est certifiée produire la version exécutable en exploitation. Encore faut-il épépiner le code des morceaux qui ne compilent pas.
    Que je sache, laisser une fin de commentaire sur un ligne après la mise en exploitation n'est une exigence d'aucune norme qualité en vigueur dont se targue la communication de l'entreprise.
    Dans un tout autre style: l'utilisation d'objets déclarés mais jamais initialisés. Le C ne doit pas être assez permissif au goût de certains ...

  • Diviser pour mieux régner.
    Du temps jadis (que les moins de vingt ans ne peuvent pas connaître), il y avait un fichier de milliers de lignes pour une application. Ici je me retrouve avec un fichier de 20 lignes par fonction.
    J'ai pas déjà parlé du concept du Tao, moi ?

  • Utiliser toutes les fonctionalités du langage.
    Plutôt que d'inclure un fichier entête dans un fichier source pour déclarer un prototype, pourquoi ne pas recopier juste le prototype dont on a besoin au début du fichier ? Il faut savoir prendre des risques et optimiser le temps de compilation.
    Surtout quand le serveur de fichiers n'a pas la même heure que le serveur de compilation. J'adore quand la commande make recompile l'intégralité des fichiers parce qu'ils sont dans le futur. Et ce même quand je n'ai rajouté qu'une ligne.

  • Garder un peu de mystère.
    Le code n'est bien entendu pas commenté. On ne sait pas ce que fait telle ou telle fonction. Quant à produire une documentation papier, point de blasphème un jour saint !
    Et les personnes qui ont écrit le code ? Dissolus vers d'autres éons. C'est très volatile les prestataires externes ... Surtout quand on sait qu'ils sont tenus de mettre leur nom dans les cartouches des fonctions. En cas de problème, cela facilite la recherche des coupables et accélère la prise de sanctions.

  • Ce qui se conçoit aisément s'énonce clairement.
    Pas la peine d'indenter ou de justifier les sources d'une quelconque façon que ce soit. Il est par contre conseillé de mélanger les formats de fichier D*S et *N*X, en laissant de temps en temps des retours de chariot (^M) sur certaines lignes.
    Sinon, pour les noms d'index, i, j, k, l, c'est tellement explicite sans commentaire. Bon ... où est-ce que j'ai bien pu ranger ma copie de la pierre de Rosette ?

  • Honorer la globalisation.
    Utiliser des variables globales (c'est tellement plus pratique) et les surcharger de temps à autres avec des variables locales (ça ajoute du challenge). On peut aussi s'amuser à les mettre dans des return pour paufiner l'imposture.
    Thread safe ? Plait-il ? Qui ose m'apostropher de la sorte ?

  • Abondance de biens ne nuit pas.
    L'utilisation d'énumérations est quasi inexistante. On recopie en dur les différentes valeurs que peut prendre un type de variable. On n'utilise que des entiers et on ne crée de nouveau type sous aucun prétexte; trop dangereux. Pour rajouter une valeur, celui qui suivra passera de longues heures à faire des chercher / remplacer dans la multitude de fichiers sources.
    Dans le même esprit, l'utilisation de fonctions est interdite. On préfère là encore recopier des blocs de plusieurs lignes partout où c'est nécessaire. En changeant le nom des variables utilisées, histoire de perdre encore un peu plus de temps. C'est plus lisible; et puis ça évite d'aller chercher la fonction dans un autre fichier.

  • Être rigolo.
    L'utilisation sporadique de macros prête à de douces facécies puisqu'elles sont nommées en minuscules. On peut ainsi les confondre avec les variables. Quels farceurs ces programmeurs !
    Un petit extrait bien drôle également:
    i = i && 1;
    Si c'est faux, c'est faux. Si c'est vrai, c'est vrai.
    Le compilateur pourrait dire "statement has no effect" s'il était plus intelligent. Comment ? C'est au programmeur de faire montre d'une once d'intelligence ? Mais alors à quoi ça sert l'informatique ?
    Personnellement, j'aurais volontiers remplacé par une macro fonction LAPALISSE( i ) mais si ça plante, je risque de me faire lyncher en place publique.

  • Battre des records.
    Cerise sur le gâteau: l'extait suivant:
    if( i == 0 )
    {
        /* ... */
        if( i == 0 )
        {
            /* ... */
        }
    }

    Oui, oui, c'est bien le même test dans le then du premier if. Il fallait oser fouler au pied de la sorte les plus élémentaires règles de l'algorithmie. Apparemment certains pseudo-développeurs n'ont pas complètement intégré ce qu'est la récursivité.

  • Sacrifier à l'empirisme.
    Pas de tests, c'est une perte de temps.
    Après tout les utilisateurs sont là pour ça, non ?
Et moi là dedans ? Je rajoute des fèques sur de la fange. Je m'adapte aux normes en vigueur. Je sais, je suis faux derch'. Il a fallu que je prenne des cours de rattrapage récemment.
Pas le temps d'améliorer. Ne faire que du correctif, pas de préventif. Je n'ai mis que mon trigramme pour identifier mes modifications, j'ai trop honte. Avec un peu de chance d'ici quelque temps quelqu'un d'autre aura le même.

Bon voila ... j'en ai encore pondu des quintaux.
Mais pour être tout à fait franc, je préfère ces galères techniques au fardeau de la rédaction d'une pré-étude visée par mon (ir)responsable.