mercredi, janvier 14 2015

La tentation du toujours plus de règles

Un jour, un chef de projet un peu perdu me contacte :

-- Je comprends pas, tous les indicateurs de mon projet sont au vert. Le code est couvert à plus de 90% par des tests unitaires, le sonar dit qu'on est bon. Et pourtant, l'appli est une catastrophe.
-- Comment ça ?
-- Non seulement elle fait mal le métier, mais en plus, elle plante régulièrement. On m'avait dit qu'avec des tests unitaires, ce genre de choses n'arrivaient plus.
-- Montrez moi le code, je vais voir ça.

Et j'ai vu. Oui, il y avait bien des tests, un sacré paquet même. Plein de tests, mais aucun Assert[1]. Donc plein de code de tests, mais qui ne vérifie rien. Et comme une grosse partie des Exception étaient silencieusement rattrapées, au final, tout cela n'avait quasiment aucune utilité...

Quand j'ai raconté ça à mon chef de projet, sa réaction ne s'est pas fait attendre

-- ah, ouais, c'est nul. Bon, ben je vais demander qu'on rajoute une règle pour vérifier qu'il y a bien des Assert. Et puis une pour les Exception et les @SuppressWarning aussi.[2].

Et c'est la réaction qu'ont eu la plupart des chefs de projet et développeurs à qui j'ai raconté cette histoire : si une règle se trouve inefficace, on rajoute de nouvelles règles pour contrôler encore plus.

Sauf que ce n'est pas une solution. Pourquoi ? tout simplement parce que les développeurs de l'histoire d'origine ne savaient juste pas à quoi servaient tout ça. On leur a demandé d'avoir un certain taux de couverture, ils l'ont fait. Personne n'avait pris le temps de leur expliquer ni de leur apprendre ce qu'était un test, comment le rendre utile, intéressant. Comment ça pouvait les aider dans leur quotidien. Rajoutez leurs des règles, des contraintes, il est fort à parier qu'ils trouveront un moyen de les satisfaire sans pour autant faire le taf derrière. De saboter[3] le code, sans que cela puisse se voir de ceux qui surveillent et créer les règles.

Par contre, pour le développeur qui sait faire des tests, écrire du code de qualité, ces règles le contraignent inutilement. Cela rendra son travail plus compliqué au quotidien car il devra satisfaire tout un paquet de règles qui n'ont de sens que pour ceux qui les enfreignent.

Ok, si les règles ça ne marche pas, c'est quoi la solution ?

La solution est simple. Il suffit juste de leur apprendre. Expliquer à quoi ça sert, comment on fait La plupart des gens qui font des applications toutes moisies ne le font pas volontairement. C'est juste que personne n'a jamais pris le temps de leur montrer qu'on pouvait faire autrement. Qu'il était possible de faire les choses bien, en travaillant ensemble, en réfléchissant pour le système et non contre.

C'est sur, expliquer, éduquer, enseigner, c'est plus long, plus compliqué et ça demande plus de courage que de rajouter de nouvelles règles pour contraindre. Mais au final, c'est bien plus efficace et les effets durent sur le long terme.

Remarque : toute tentative de rapprochement de cette histoire avec l'idée de rajouter de nouvelles lois liberticides suite à l'échec des précédentes au lieu d'aller à la source du problème par l'éducation et la pédagogie est fortement encouragée.

Notes

[1] le truc dans lequel on va effectivement vérifier que le résultat est bien celui qu'on attendait

[2] parce que c'est ce qui étaient utilisés pour masquer les problèmes relevés par checkstyle et pmd

[3] probablement involontairement

mardi, décembre 16 2014

Une histoire de temps

2010.06.05-montre_m.jpg

Lorsque 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  […]

Lire la suite

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

- page 1 de 14