05 décembre 2006

Collègues ...

Aujourd'hui, j'ai eu la joie de revoir un ancien externe. Celui-là même qui a fait un pot d'adieux la pénultième semaine. Il avait laissé un projet fini mais vu que les équipes de recette ont enfin testé, elles ont levé de nouveaux soucis. :-/
Il a appris son retour ce matin en appelant son nouveau client pour s'excuser de son absence dûe à une grève des transports en communs. Nouveau client qui s'est alors plaint puisqu'il était déjà prévu qu'il soit absent le lendemain pour aller travailler chez son ancien client.
Prévu ? Mon collègue l'apprenait de la bouche de son nouveau client. L'organisation et la communication, il n'y a que ça de vrai ... Du coup il est venu prester sa journée de corrections aujourd'hui.

Et mon collègue interne ? La grève ne l'a malheureusement pas arrêté. Il a passé sa journée à pester contre tout le monde.
Contre un nouvel externe d'abord; qui lui a donné trop de travail. Il faut dire que l'externe en question a fignolé le projet chez lui le weekend précédent pour ne pas être à la bourre ...
Contre son responsable interne ensuite, parce que celui-ci vérifie maintenant systématiquement le travail qu'il fait. Je peux facilement comprendre les inquiétudes légitimes du responsable connaissant les capatités de son subordoné ...

Ensuite il y a notre nouvelle collègue, qui a eu la difficile mission d'organiser une réunion. Entre demi-journées de congés, journées de formation et indisponibilités dûes aux projets, elle a reporté au lendemain, au surlendemain puis finalement à la semaine prochaine.

Et moi ? J'ai passé ma journée à lire des lignes de code cauchemardesques comme par exemple:

    int do_something( char *str )
    {
        str = NULL;
        str[10] = NULL;
        ...

Bon alors déjà, initialiser deux fois un paramètre, c'est pas terrible. Ensuite, initialialiser un paramètre chaîne à NULL, c'est idéal pour perdre sa valeur quand c'est un paramètre d'entrée. J'en ai déduit que ce devait être une valeur renvoyée par la fonction ...
Et en ce qui concerne la seconde initialisation:
  1. Mettre un caractère à NULL plutôt que '\0', c'est témoigner trop de confiance au compilateur.
  2. S'attaquer de la sorte au 11ème caractère d'une chaîne inconnue, c'est présumer de la taille de la chaîne paramètre et des capacités du système d'exploitation à gérer les dépassements mémoire.
  3. Enfin, tout ce joyeux foutware c'est casse margoulette quand on vient juste d'initialiser la chaîne à NULL.
Après avoir vainement tenté d'expliquer ce genre d'erreur de développement à l'une de mes collègue pendant près d'un quart d'heure, à grand renforts de justifications techniques exposées le plus didactiquement possible, je l'ai ouïe me répondre: "Ho, il est 17h, il faut que j'aille chercher mon gamin à l'école".

Et là, désolé, je ne peux plus lutter ...

Aucun commentaire: