Tout le weekend durant, j’ai vécu dans l’attente de ce rapport de build (l’image est floutée pour des raisons évidentes de respect des infos professionnelles - tout ce qui est rouge n’est pas bon signe…).
En rentrant dans le bureau ce matin, j’avais déjà ôté mes écouteurs et rangé mon iPod, j’étais prêt à affronter les collègues!
Avant de parler de ce matin, il faut parler de ce weekend. Mlle V. n’étant pas là (partie en rando), j’avais donc le loisir de bâtir le programme de mon choix, histoire de ne pas trop compter les secondes:
Vendredi soir et samedi toute la journée étaient dédiés à une session de jeu non stop pour faire enfin passer à mon chasseur le cap du lvl 60 (oui, WotLK approche et il était encore lvl 51…). Mission accomplie, check!
Samedi soir était prévu une sortie avec les français rencontrés récemment à Nuremberg. Dîner dans un sushi-bar histoire d’éponger les litres d’alcool ingurgités par la suite. La soirée s’est terminée dans une boite de nuit super-select-prout-prout où il a fallu batailler ferme pour entrer. De retour à l’appart’ à 6h du mat’, j’ai émergé (pas franchement frais) vers 14h dimanche… encore 20h de bien occupées, check!
Quelques heures de zonage plus tard, direction le fitness studio histoire de faire du sport malgré le temps pourri. De retour en fin d’après-midi il ne me restait plus qu’à ranger l’appart’ (c’est dingue à quel point ça peut se déranger vite ce genre de petite bêtes) avant le retour de MlleV, épuisée mais bronzée, check!
Entre temps, j’ai pu faire quelques photos de coucher de soleil (sur fond de ciel orageux), suivre Greg sur Twitter (il s’est acheté un iPhone3G donc il a intérêt à l’utiliser pour Twitter en permanence) et m’y mettre également (cf l’encart ici en haut à droite), commencer le livre Ilium, écouter 5 épisodes des podcasts de 1Up.com, regarder les 3 actes du DrHorrible’s Sing-Along-Blog (que je recommande très fort vivement en applaudissant des deux mains) et enfin réfléchir à des choses et d’autres (@Ghusse)… voila un weekend bien rempli.
Trêves de plaisanteries, en arrivant ce matin, pas de regard noir, pas de note sur mon bureau type “viens me voir dès que tu arrives t’as tout pété, signé DrHorrible”… j’ai donc tranquillement allumé mon ordi, ouvert le rapport de build de ce matin et découvert que le build en question est totalement inutilisable (là mon sang n’a fait qu’un tour)…
Après une demi heure d’épluchage de logs et de tests, je peux affirmer qu’aucun bug n’est dû à mes modifications… pourvu que çà dure!
J’ai les boules… je viens de faire le merge du boulot que j’ai abattu depuis pas loin de 3 mois (merge = transfert du code d’une branche de développement à une autre - en l’occurrence depuis ma branche “privée” vers la branche “publique” visible et utilisable par tous les développeurs). Ce soir à 23h se lancera la compilation journalière, base de travail pour tous les développeurs du projet et donc dans laquelle mes modifications seront pris en compte. Lundi l’action première de tous les développeurs sera de télécharger cette nouvelle version et de l’utiliser comme base de travail pour la journée… autant dire que si j’ai foiré quelque part… je le saurais avant même d’atteindre mon poste de travail!
Depuis début Mars, je travaille à la refonte d’une des parties centrales de notre logiciel alias le moteur de règles qui gère les relations entre les objets lors des actions - copier/couper/déplacer/coller - effectuées par l’utilisateur. Pour vous faire une idée de ce que je fais, imaginez une table (composée de 4 pieds d’un plateau) et un verre vide posé sur celle-ci. Au moment de leurs créations respectives au sein du logiciel, chaque objet a émis un certain nombre de règles du genre “je suis un pied, je peux être ajouté sous un plateau” ou “je suis un verre, je peux être posé sur un plateau” ou “je suis un plateau je peux avoir au maximum 4 pieds, et si j’en ai moins de 4 ca va barder”. Dès lors, que se passe t-il si l’utilisateur copie un pied de table et essaye de le coller sous ce même plateau? Le moteur de règle va interdire l’action au regard de la règle émise par le plateau (max 4 pieds). De même, si l’utilisateur essaye de couper le plateau, le moteur de règle va dire “tss tss, il y a un verre qui repose sur toi, si tu t’en va il va se péter la gueule alors je t’interdit de t’en aller”.
Vous l’aurez compris, je m’occupe en fait d’assurer la “consistance” de la structure qui est entrain d’être construite; je fais en sorte que jamais une action qui aboutisse à une structure “bancale” - on parle de configuration illégale ou inconsistante - soit effectuée. Autant dire que si qqch foire dans mon code, l’erreur est susceptible d’impacter simplement… tout le monde!
Pour minimiser les erreurs et maximiser la qualité du logiciel, nous travaillons avec un ensemble de règles de test. Pour chaque morceau de code (ou plutôt chaque fonctionnalité élémentaire), un scénario de test automatique doit être écrit, scénario qui vient alors gonfler la masse des tests à effectuer avant tout “merge”. Le script global contient plus de 1800 tests et demande près de 4h d’exécution, mais permet d’éviter les effets de bord (qu’une modification à un bout du logiciel ne casse qqch à l’autre bout sans le savoir).
Depuis une semaine, je laisse tourner le script toutes les nuits et décortique les résultats pendant la journée pour m’assurer qu’aucun des tests négatifs obtenu n’est dû a mes modifications… ce soir j’ai eu le go de mon chef alors voila c’est mergé! Après tant de tests, je suis (presque) convaincu que tout ira bien, mais malgré tous je ne peux m’empêcher d’imaginer le pire… si qqch foire lundi promet d’être funky!
Mardi, vélo et soirée alcoolisée jusqu’à pas d’heure,
Mercredi, barbecue encore plus arrosé avec les collègues jusqu’à pas d’heure,
Jeudi? Jeudi c’est aujourd’hui et là, maintenant tout de suite, je n’ai qu’une envie et c’est de dormir… jusqu’à pas d’heure, cela va de soi!
En fait, la grande différence entre les années d’études et maintenant, ça n’est pas le fait qu’on fasse moins la fête, oh non! C’est surtout que quand on fait la fête, on ne peut plus rester toute la matinée au pieu comme un gland. Mais heureusement, je suis dans une phase calme au boulot (tests de régression avant intégration - 4h pour chaque test qui prend facile 80% des ressources de mon ordi - je les enchaine depuis lundi à raison d’un ou deux chaque jour et un la nuit)… mais quand même!
Passer une soirée entre français à Nuremberg, voila un truc qui ne m’est pas arrivé souvent depuis mon arrivée. Hier soir, un peu plus de 19 mois après mon installation en Allemagne, j’ai été retrouver une dizaine de français habitant dans le coin pour boire un coup… first time, big time!
Tous entre 24 et 30 ans (27-28 en moyenne je dirais), tous ici pour travailler (il me semble) avec seulement deux autres que moi chez Siemens (c’est étonnant). Forte concentration de bretons, avec une pointe de parisiens!
En fait, je n’ai pas grand chose à dire si ce n’est que ça fait un bien fou de pouvoir chambrer, faire des jeux de mots à la con, suivre plusieurs conversations en même temps et surtout parler sans réfléchir à la syntaxe. Mais aussi de partager sur cette situation d’expatriés, sur nos différentes expériences et les parcours ayant abouti à un atterrissage à Nuremberg. C’était vraiment sympa, je crois qu’on va s’organiser des sorties plus fréquemment.
Depuis que j’ai commencé mon intégration en Germanie, il y a quelques évènements qui m’ont vraiment fait grimper de quelques niveaux. Saucisson-fromage au petit dej ou même boudin-blanc-bière, le tri sélectif dans plus de 3 containers (sans compter le verre) et l’extinction de mon ordi dès que je ne suis plus devant par exemple.
Mais voila une photo prise ce matin sous mon bureau (au boulot donc) qui, je crois, me fait gagner deux niveaux d’un coup. Yep, ça y est, je me suis mis aux sandales comme 80% de mes collègues…
PS: Reference titrique (ou titrale, c’est comme vous voulez aujourd’hui) évidente au Donjon de Naheulbeuk!
Recent Comments