mardi, décembre 16 2014

Une histoire de temps

2010.06.05-montre_m.jpgLorsque je donne des formations ou des conférences, j'utilise tout un tas de petites anecdotes, des histoires qui me sont arrivées au cours de ma carrière. Il y en a une en particulier que j'utilise lorsque je veux parler de la mauvaise notion du temps que l'on peut avoir parfois. On a pas le temps de faire des tests, on ne peut pas prendre le temps de faire de la qualité, car il faut avancer les fonctionnalité, corriger les bugs...

Il y a donc quelques temps, j'intervenais dans une équipe d'un très gros projet avec d'énormes problèmes de défauts, de qualité, et des temps de développement surréalistes. Et pourtant, quand on écoutait les développeurs et qu'on les regardait faire, il était impossible de dire qu'ils glandouillaient joyeusement. Non, ça bossait dur. Et en plus, ils étaient techniquement très compétents.

Pour comprendre ce paradoxe, j'ai demandé à un développeur si je pouvais bosser avec lui pour la journée, que je vois comment ça se passe de l'intérieur. Pas de soucis. Me voilà donc à suivre un développeur. Ce jour là, il s'attaquait à un défaut. Le développeur avait une bonne idée de l'endroit du problème. Il n'y a aucun doute à avoir sur le fait qu'il maîtrisait son produit et ses outils.

Le voilà donc en quête de la zone, qu'il trouve rapidement et pour confirmer ses doutes, il rajoute quelques print("toto") et autres print("on est passé par là")[1].

- donc maintenant, on compile, on exécute et on vérifie les logs ?
- yep. Sauf que, on a pas tout le nécessaire pour compiler sur nos machines, c'est trop long et compliqué, on envoie ça sur un serveur de compil.
- ok.
- vu la queue actuelle, y'en a pour 20 min[2].

20 min plus tard, on récupère le package.

- donc là, on installe et on vérifie
- oui, mais toujours pas sur ma machine, on a des environnements pour ça, d'ici 20 min ça sera déployé.

20 min plus tard, on peut enfin utiliser l'application. On reproduit, le bug. On fouille les logs à la recherche des toto. Et drame... pas de toto.

On retourne sur le code, on rajoute plus de print. Partout. Puis on envoie en compile. 20 min. Puis on déploie. 20min. Puis on reproduit le bug, on fouille les logs. Ouf, ils sont là. Ils sont clairs, on sait maintenant quel est le problème.

On retourne sur le code, on corrige le défaut[3]. Puis on envoie en compile. 20 min. Puis on déploie. 20min. Puis on reproduit le bug, et on constate qu'il n'y est plus. Youhou. Victoire. On a bien mérité un café.

- Ça serait plus pratique si vous pouviez compiler sur vos environnements non ?
- Oui, mais la chaîne de compil est trop lourde. Ça prendrait trop de temps à mettre en place.
- Et modulariser le système pour ne pas avoir à tout recompiler à chaque fois ?
- Oui, on a fait une étude, il y en a pour 15 jours de boulot, on n'a jamais trouvé le temps pour s'y attaquer.
- en 18 mois[4], vous n'avez pas pu consacrer 15 jours à ça ?
- nop
- par contre, vous pouvez perdre 3h pour corriger un bug qui a réellement nécessité 15 min de travail ?
- Je... On... On l'avait jamais vu comme ça. Mince.[5]

Ils s'y sont collé à 2 et en une semaine, ils ont complètement remis à plat leur système de build. Ils ont calculé que cela leur évitait de perdre 1h par jour chacun. Une équipe de 7 : 1 journée de gagnée tous les jours.

Et si on prenait plus souvent le temps d'éviter d'en perdre ?

Notes

[1] on ne se moque pas, le print("toto") est une arme de débuggage massive, plus efficace que la plupart des debuggers quand elle est bien utilisée (et si en plus on a des tests, c'est juste une tuerie)

[2] grosse appli en C/C++/C# (sisi, les trois d'un coup), mal modularisée et donc à recompiler intégralement à chaque fois

[3] une allocation mémoire foireuse

[4] dont 6 de retard

[5] un exemple de la vision du lion ?

mercredi, novembre 26 2014

Je ne suis pas un codeur

https://www.flickr.com/photos/cesarastudillo/2815083396

Je n'aime pas ce terme 'codeur'. Trop restrictif à mon goût. Et pourquoi pas "pisseur de code" tant qu'on y est. On ne dit pas d'un boulanger que c'est un pétrisseur de pâtes, un maçon un poseur de briques, un peintre un étaleur[1][2] de couleurs, ... Alors oui, c'est vrai, ça fait partie  […]

Lire la suite

mercredi, avril 23 2014

Changer le monde...

wall-e.jpeg

J'ai l'impression, depuis quelques temps, d'avoir régulièrement cette conversation et en 3 jours de Devoxx France, elle est revenue au moins 5 ou 6 fois. Comment on change le monde ? Avec ses variantes : Comment on change les développeurs qui ne comprennent pas qu'ils doivent devenir  […]

Lire la suite

jeudi, février 27 2014

La vision du lion

Lion de Leszek Leszczynsli, CC BY-SA 2.0

Il y a quelques années, j'ai eu l'occasion de passer un week-end avec un dresseur de lion[1]. Quand j'interviens pour un accompagnement sur un nouveau projet, je repense presque systématiquement à ce qu'il m'avait alors expliqué sur la façon dont les lions voient le monde. Le lion est un animal qui  […]

Lire la suite

vendredi, janvier 17 2014

Les 100 meilleurs développeurs préférés des français

Ce matin, je tombe sur l'article La french Touch du code de Tariq Krim. Malgré une légère tendance à l'idéalisation du modèle américain[1], ça part plutôt bien. On parle de la valorisation du métier de développeurs, de leur implication nécessaire dans la réussite des projets. Ce sont des sujets qui  […]

Lire la suite

lundi, octobre 21 2013

Le test unitaire et les méthodes privées

Private property. So what ? d'Alexandre Dulaunoy

Une question qui revient souvent lorsque j'anime un coding dojo ou durant ma session sur les tests unitaires : Faut-il tester les méthodes privées ? Réponse courte et définitive[1]: Non. l'aspect pratique : c'est un peu crade Et oui, déjà, l'aspect pratique de la chose arrête. Par définition, une  […]

Lire la suite

jeudi, octobre 3 2013

J'ai pas le temps

2010.06.05-montre_m.jpg

désolé, j'ai pas eu le temps. j'aimerais bien, mais je vais pas avoir le temps là. On n'a pas le temps / J'ai pas eu le temps : combien de fois j'ai entendu ces petites phrases. Combien de fois je les ai dites... cette superbe excuse pour ne pas avoir à dire, ni à se dire, qu'en fait, on a fait  […]

Lire la suite

lundi, septembre 23 2013

Software Craftsmanship à l'Agile Tour

at2013-speaker.jpg

Octobre-novembre, c'est la période des Agiles Tour et d'Agile Grenoble. L'an dernier, en 2012 donc, toutes les sessions que j'avais proposé ont été acceptées. 9 sessions[1] en 5 dates[2]. Heureusement que pour toutes ces sessions j'avais des binômes de chocs : Fabrice Aimetti, Pablo Pernot, Phillipe  […]

Lire la suite

mardi, septembre 17 2013

Formations TDD/Clean Code

Jusque là, je ne me suis pas lancé dans la formation "inter-entreprise" autour des sujets Clean Code/TDD essentiellement parce que j'ai vu des petits camarades très compétents ne pas réussir à attirer suffisamment de personnes[1] pour que ça le fasse. Et pourtant, au détour des meetup du  […]

Lire la suite

jeudi, mai 2 2013

La dictature des chiffres

Cluj, panneau

Entendu sur des projets : -- dev 1 : rahh, le taux de couverture est en dessous du seuil. -- dev 2 : ok, je vais voir où je peux rajouter des tests pour le faire remonter. -- dev 1 : t'embarques pas trop dans ce bout de code, il est tordu. Tiens, t'as qu'à couvrir les getter/setter, ça devrait  […]

Lire la suite

lundi, janvier 14 2013

Procrastination -- John Perry

perry_-_procrastination.jpg4e de couverture :

Le philosophe américain John Perry est professeur émérite à l'université de Stanford en Californie. Étant de son propre aveu un procrastinateur invétéré, il a créé le concept révolutionnaire de « procrastination structurée ».

Traduit dans une vingtaine de langues, cet ouvrage lui vaut aujourd'hui une reconnaissance internationale.

Lire la suite

vendredi, janvier 11 2013

We Meet In Toulouse

La communauté IT à Toulouse est fabuleuse, diversifiée et très active. JUG, Toulouse JS, Apéro Web, Apéro Ruby, AFUP Toulouse, Meetup UX, et j'en oublie évidemment. C'est formidable, mais dès fois, pas facile de se repérer, de savoir où aller quand, et de caler ses dates pour les autres orgas. We  […]

Lire la suite

mardi, novembre 13 2012

Global Day of CodeRetreat -- Toulouse

gdcr-logo-full.png

Le 8 décembre 2012, c'est le Global Day of CodeRetreat. À l'initiative de la communauté Software Craftsmanship Toulouse et grâce au soutien de Makina Corpus, Toulouse sera encore de la fête cette année. Allez, je reprends mon dernier billet sur le sujet :) C'est quoi un code retreat ? Dans les  […]

Lire la suite

mardi, octobre 30 2012

Agile Tour Pau

at2012.jpg

Le 24 octobre, l'association Pyrénées Agile organisait le premier Agile Tour Pau. Et même si cela n'a durée qu'une demi-journée, c'était vraiment une chouette session. Avec Thierry Cros, nous avons eu l'honneur d'ouvrir le bal avec une présentation "Panorama Agile" au cours de laquelle  […]

Lire la suite

jeudi, octobre 18 2012

Mon petit Tour Agile 2012

at2012_speaker.jpg

Comme tous les ans, octobre novembre, c'est la période des grosses conférences agiles en France, avec Agile Grenoble et l'Agile Tour. Cette année, j'ai proposé pas mal de session. Et j'ai eu le grand plaisir de les voir quasiment toutes acceptées. C'est presque trop :) Me voilà donc parti pour  […]

Lire la suite

lundi, août 13 2012

ArdFeedback : rendez visible vos builds jenkins

2012.08.10_-_Ardfeedback.046.jpg

J'aime beaucoup Jenkins, je l'installe presque partout où je passe. Ça faisait longtemps que je voulais bricoler un truc pour rendre "physiquement" visible le statut des builds. Bon, il existe déjà un paquet de plans, plus ou moins détailléS pour faire faire s'allumer des des orbs, des  […]

Lire la suite

lundi, août 6 2012

Mythe : un code de qualité est largement commenté

useless_comment2.jpgQuand j'aborde le sujet de la qualité du code avec un nouveau groupe, dans un coding dojo ou en établissant la signification de fini par exemple, il arrive toujours un moment comme ça :

dev : et il faut que tout soit largement commenté et que la javadoc soit à jour
le groupe : ah ouais ! c'est vrai, c'est important
moi : les commentaires, ça sert à rien
le groupe : huh !?

Lire la suite

lundi, juin 11 2012

CodeRetreat Toulouse le 23 juin

Le samedi 23 juin, le Software Craftsmanship Toulouse, avec le soutien d'Ekito[1] qui nous offre gîte et couverts, organise son 2ème CodeRetreat ! C'est quoi un code retreat ? Dans les grandes lignes, c'est une journée entière à écrire du code pour s'entraîner. Aucun objectif de production. On est  […]

Lire la suite

mercredi, mai 2 2012

Mix-IT -- 26 avril 2012

logo-mixit.png

Jeudi dernier, avec mes camarades de la Sky Team, Fabrice et Philippe, nous étions invité à la conférence Mix IT 2012 à Lyon organisée par le CARA et le LyonJUG. Mix-IT c'est une journée, 350 participants, 4 sessions en parallèles avec de l'innovation, de l'agilité et du code dedans. C'est aussi  […]

Lire la suite

mercredi, avril 18 2012

Code & Coffee le jeudi à Toulouse

Bon, ça fait quelques temps que ça me démange de lancer un code & coffee à Toulouse. Après quelques repérages de lieux, c'est parti : les code & coffee auront lieu tous les jeudis matin à partir de 7h30 au Déli's à l'angle de l'av Honoré de Serres et du bd Lascrosses (métro compans) Un code  […]

Lire la suite

- page 1 de 13