Le temps est sans importance

Tout bon article de geek doit comporter une référence à Star Wars, en voici donc une : Georges Lucas a souhaité fonder Lucasfilm à l’origine non pas pour faire de l’argent (en tout cas pas uniquement), mais surtout pour être indépendant des grands studios. Il ne supportait pas de ne pas avoir le contrôle total sur ses films, notamment sur American Graffiti, et bien sûr sur Star Wars.

Maintenant que cette référence est faite, entrons dans le vif du sujet : laissez-moi, en ce mois de Décembre, vous conter une histoire cocasse sur le temps.

Une confession et un contexte

En tant que développeur front-end bossant dans une petite agence, je me considère comme un artisan. Mon vœu, mon motto, c’est de produire du sur mesure, du haut de gamme, de la qualité, appelez ça comme vous voulez.

Naturellement, le mot « industrialisation » est synonyme pour moi de sites à la chaîne, d’uniformisation, de « travail stupide », etc. Un mot péjoratif au possible, exécrable. En bon grincheux soucieux de maîtriser totalement son travail, je ne me vois pas en plus utiliser quelque chose que je ne possède pas.

Dans le contexte de la petite agence dans laquelle j’évolue, je me dis qu’on doit être hyper-réactifs, capables de s’adapter sans arrêt. Tout le contraire d’une grosse usine où il faut faire cinquante réunions pour changer une balise.

Les temps modernes

Un problème, des solutions

Même si je suis donc dans une petite agence, l’expression « être en contexte de production » est une réalité : je dois abattre du boulot en quantité. En bon fainéant, je déteste perdre mon temps, courir après des choses qui devraient être là.

Par contre, même en devant produire beaucoup, je ne souhaite pas pour autant perdre en qualité. C’est dans cet esprit que je me suis dit : « il faut que je me fasse une base de travail, suffisamment souple pour vite évoluer, me permettant de gagner du temps et de démarrer plus vite, d’organiser sans pour autant me cloisonner ».

L’élément le plus visible de cette démarche de gain de temps est mon micro-framework CSS RÖCSSTI. Encouragé par mon propre boss et par mes collègues pour poser les bases de cet outil, je me dis que ce dernier va être très vite adopté, je m’auto-cite : « cela ne sera que l’affaire de deux petites semaines ! ». En plus, tout le monde s’accorde à dire qu’on en a besoin, c’est dire si c’est gagné d’avance.

Afin de gagner du temps, je travaille en solitaire, mes oreilles traînent et écoutent les choses qui agacent les intéressés en même temps, afin de trouver/proposer des solutions au passage. La base est vite posée.

J’effectue une première réalisation, le cerveau fume un peu, mais je suis plutôt content. Les deux réalisations suivantes confirment mon impression. Deux nouvelles réalisations en responsive permettent d’affiner. C’est indéniable, cet outil répond parfaitement à mes besoins.

Persuadé que l’adoption franche et massive ne sera qu’une formalité, je continue d’améliorer le bébé sans relâche.

En fait, cela fait déjà bien plus que « deux petites semaines », et je ressens un malaise. L’adoption est franche et massive dans les paroles, mais pas du tout dans les actes, à mon exception bien sûr.

Une désillusion en demi-teinte

Je constate que j’ai tellement cassé les habitudes de travail (utilisation des em au lieu des px, de calcul de rythme vertical, de système réutilisable à grands coups de classes atomiques, d’une organisation bien plus poussée pour le responsive, de certaines conventions comme BEM, SMACSS, etc.)… que tout le monde est perdu. Les em terrifient, le calcul de rythme vertical laisse tout le monde pantois, l’organisation générale bouleverse trop les habitudes, etc.

Je suis déjà en train d’embrayer sur les pré-processeurs pour accélérer encore la version « 2.0 », et je n’ai même pas remarqué que la version « 1.0 » n’a pas du tout été digérée. J’essaie d’accompagner mon collègue sur une intégration, je constate qu’il a énormément de mal à utiliser cette base, un comble pour un micro-framework qui se veut totalement personnalisable !

J’avoue que ma première réaction est la stupeur. En quelque sorte : « je leur offre une solution à plein de problèmes – sur un plateau d’argent – et qui va plus loin au passage, et ils ne s’en servent pas, tout en disant pourtant que c’est bien ». Curieuse dissonance.

En fait, j’ai complètement négligé un facteur : le temps. La résistance au changement (confort, incapacité, etc.), ce n’est vraiment pas un concept abstrait, croyez-moi sur parole.

Qu’on s’entende bien : je ne blâme personne, c’est un simple constat. Mon approche bulldozer a certes permis d’avancer, mais toute médaille a son revers. Je débarque avec mes gros sabots en balançant le bébé et l’eau du bain avec, et on passe en deux réalisations de la faucille à la moissonneuse-batteuse. Seulement, qui a son permis moissonneuse-batteuse dans l’équipe ?

Des conseils

Mon ambition n’est pas du tout de ruiner votre enthousiasme si vous vous lancez dans ce genre d’aventure : faites-le et parlez-en ! C’est enrichissant et très formateur. Toutefois, il ne faudra pas négliger le facteur temps.

Donnez-vous le temps pour :

  • faire mûrir vos outils ;
  • cultiver la prise de conscience que « on doit évoluer », « on ne peut pas continuer ainsi », etc. ;
  • laisser l’idée et les concepts mûrir dans le crâne de vos collègues ;
  • semer du code bien fait partout (c’est con, mais à force d’en voir, on finit par s’y habituer) ;
  • et les accompagner quand les fruits sont mûrs !

Au risque de choquer, un rapid-release process agressif, quand vous gérez de l’humain, ce n’est pas forcément la panacée, notamment au démarrage. Réservez-vous ce mode si cela vous chante (c’est ce que j’ai fait), mais n’annoncez pas de changement majeur sans arrêt. Une certaine stabilité – stabilité, pas immobilité – cela aide bien, même dans un métier aussi évolutif que le nôtre.

Un signe positif : quand votre collègue s’empare de votre travail et décide de le customiser ou de l’améliorer, ne résistez pas et laissez aller ! Il se l’approprie. Même si ma base sur RÖCSSTI était un poil différente avant que mon collègue ne s’y mette, si ses fondements ne sont pas mis en danger, à quoi bon faire de la résistance ?

Comme symbolisé par la formule certifiée (plus l’adoption est positive, mieux c’est) :

Adoption = (avantages de la nouveauté) x (coefficient de résistance au changement) – (avantages des habitudes) x (confort des habitudes).

Avec :

  • coefficient de résistance au changement : 0 étant la résistance la plus absolue et 1 étant l’absence de résistance
  • confort des habitudes : 0 étant l’inconfort le plus complet et 1 étant le confort le plus absolu.

(Bon d’accord, la formule est simplifiée, l’équation du changement ressemble plutôt à ça.)

Quoi qu’il en soit, soyons clair : ce n’est pas une ode à l’immobilisme, à la procrastination, ou à la lenteur ! C’est plutôt une incitation à voir à long terme : l’adoption demande du temps. L’épreuve sera pour vous d’accepter ce temps, patiemment. Cela va mettre à l’épreuve votre foi en votre bébé, et peut-être même vous causer quelques crises de nerfs. Pour ma part, il m’a fallu attendre 7 ou 8 réalisations pour qu’enfin cela démarre sérieusement.

Si cela peut vous rassurer, certains outils mis en place ont mis des mois à passer, mais au moins ils sont utilisés. De manière peut-être imparfaite, incomplète… mais ça sert et ça marche. L’avantage de ce temps, c’est que vous aurez le temps d’aller plus loin, et peut-être de devenir le référent dans ce domaine pour votre boîte.

Le référent est la personne vers qui l’on se tourne en cas de question. Comprenez alors que le référent oriente, indique et guide. Et quoi de mieux pour faire adopter quelque chose ou faire évoluer un système ?

Conclusion

En cherchant un mode de fonctionnement hyper réactif, rapide, presque agressif et en fuyant l’industrialisation, je me suis quand même heurté au facteur temps, et j’ai adopté un processus qui ressemble bigrement… à de l’industrialisation. Même artisanale si j’ose dire.

Me voila en quelque sorte victime de l’ironie du sort : j’ai plus ou moins été vers… ce que je fuyais au début. D’une certaine manière, bien entendu.

Nos métiers n’incitent pas à prendre du temps : tout va toujours vite, nous avons la tête dans le guidon, et nous sommes parfois saturés d’informations. Si je ne peux vous donner qu’un conseil : si vous avez l’ambition de lancer un semblant d’industrialisation, prévoyez-vous du temps. Je ne suis pas un expert en industrialisation, mais je n’ai pas de doute sur le fait que cela ne se fait pas sur des temps courts. Faire évoluer les gens et les mentalités non plus.

En résumé : le temps est sans importance quand vous « industrialisez ».

Vous vous demandez peut-être pourquoi j’ai lancé cette anecdote sur Lucasfilm au début de cet article ? En fait, il faut la mettre en perspective, elle était volontairement incomplète : en souhaitant s’affranchir des grands studios et de leur immense machinerie, Lucas a en fait créé… ce qu’il fuyait : un immense studio, une vraie machinerie de guerre.

Que la force soit avec vous !

5 commentaires sur cet article

  1. lordfpx, le 7 décembre 2013 à 22:43

    Très bon article! Je rajouterai une petite chose en ce qui me concerne. Ton micro framework, je ne l'utilise pas..., mais il me sert beaucoup en même temps. Il m'a donné plein de bonnes pistes pour faire mon propre micro framework, car selon moi, un développeur front se doit de se créer ses propres outils, pour gagner du temps par la suite et surtout maîtriser son intégration. Reprendre des classes existantes demande une compréhension totale de ce que chacune induit à ses enfants. J'ai fait le choix de "pomper" (en citant ROCSSTI, KNACSS et d'autres) pour le digérer et me créer mon propre outil que je partage également. Bref, tu n'as pas fait ton micro framework pour toi, tes collègues et une poignée d'intégrateurs, tu l'as fait pour que d'autres puissent avancer avec des idées neuves et de bonnes pratiques de travail. Pour ça, merci à toi et à tout ceux qui partagent leur temps et leurs "secrets".

  2. Frank Taillandier, le 8 décembre 2013 à 18:21

    @Nicolas : Comme souvent c'est un problème humain avant tout.

    Personne ne t'a forcé à forker KNACSS le framework de Raphaël, tu l'as fait par choix et parce que ça t'a motivé pour l'adapter à tes besoins. Si Raphaël était venu de dire de bosser avec KNACSS du jour au lendemain, tu aurais eu sans doute la même réaction et besoin d'un temps d'adaptation.

    Si tu souhaites obtenir l'adhésion de ton équipe, alors tu dois les inviter à participer ouvertement au projet, et de manière facultative.

    Cela se fait généralement en plusieurs étapes : une discussion sur les besoins de chacun est un préambule nécessaire. Par exemple demander :

    1. Qu'est-ce qui nous gène aujourd'hui ?
    2. Qu'est-ce qui pourrait nous rendre la vie plus simple ?
    3. Comment peut-on faire pour y parvenir ?
    4. OK, on a qu'à essayer ça. (revenir au 1 autant de fois que nécessaire)

    Tu verras que tu obtiendras des réponses voire même de l'aide, car si chacun trouve une raison suffisante qui le motive et peut influencer sur la réalisation, tu verras que le résultat ne sera pas le même.

    Le but finalement n'est pas tant de faire un framework, c'est d'apprendre à travailler en équipe, d'échanger sur des pratiques et de viser une amélioration continue de vos méthodes de travail avec des résultats tangibles.

    Et pour cela il te faut y aller par étapes, petit à petit. Un commit est souvent insignifiant mais quand tu les mets tous bout à bout, tu peux voir le chemin parcouru et le changement.

    Sur le sujet, je t'invite à lire ce qui concerne l'adoption agile ouverte de Daniel Mezick (http://www.infoq.com/articles/open-agile-adoption-2) qui a obtenu d'excellents résultats avec cette méthode.

    Bonne chance à vous.

  3. Gaël Poupard, le 9 décembre 2013 à 14:04

    Super article !

    Je confirme, m’étant moi-même lancé dans ce type de projets, qu’un fonctionnement participatif et par itération fonctionne beaucoup mieux.

    Lorsque tout le monde comprend son intérêt à améliorer l’outil, le résultat est d’une qualité étonnante :)

    De plus, dans l’agence qui m’emploie j’ai mis en avant le fait que ça allait forcément faire monter l’équipe entière en compétence - en plus d’améliorer la qualité globale de nos productions. Ces projets sont l’occasion d’expérimenter, de lire, de se documenter, de maîtriser des techniques que l’on utilisait parfois sans comprendre, etc.

    Pour le sujet central de l’article, c’est vrai que ça prend du temps : tout le monde ne se lance pas aussi facilement dans le bain. Mais un facteur a considérablement accéléré le «délai d’absorption» de mon outil : le turn-over dans l’agence. Avoir un outil documenté, éprouvé et en place est un acquis pour tout nouvel employé.

    Un rafraîchissement qui fait parfois du bien.

  4. Nico, le 10 décembre 2013 à 9:38

    Lordfpx : Pareil, je me nourris de bonnes idées. Et je me dis qu'en matière de CSS, ça sert pas à grand chose de cacher : vu que c'est de facto accessible et point barre.

    D'ailleurs, la valeur ajoutée n'est pas la CSS en elle-même mais la capacité à bien la créer.

    Frank : C'est un peu comme ça que j'ai procédé, j'ai résumé pour que l'article ne fasse pas 50 km de long, mais grosso modo, on a dit tout ce que l'on voulait mettre dans cette base (régulièrement, avec des discussions courtes et informelles), et partant de là, j'ai expérimenté, avec retour. Le seul problème de trop demander l'avis tout le temps (j'ai vu ça au début), c'est que ça n'avance pas, surtout si tu pars de loin (les CSS étaient jonchées de ruines si j'ose dire).

    > quand votre collègue s'empare de votre travail et décide de le customiser ou de l'améliorer, ne résistez pas et laissez aller !

    Là, j'étais content par contre, c'était beaucoup moins timide, genre "go, on y va, fini de rire !"

    Gaël : le participatif fonctionne bien… si tout le monde joue le jeu :)

  5. Bruno Bichet, le 20 novembre 2014 à 16:07

    Tiens, ta phrase "Toutefois, il ne faudra pas négliger le facteur temps." me fait penser à cette excellent article paru sur Sitepoint qui parle de l'accompagnement au changement. En l'occurence : accompagner l'équipe lors de la migration vers Sass : http://www.sitepoint.com/migrating-team-sass/

Il n’est plus possible de laisser un commentaire sur les articles mais la discussion continue sur les réseaux sociaux :