Optimiser votre temps de travail

Améliorer vos méthodes et outils de développement

Plou
Dev Notes

--

L’année dernière, j’ai eu l’occasion de participer à une conférence autour de Typo3 avec Grégory Copin, nous avons présenté les outils qui nous permettent d‘être plus efficaces et de nous concentrer sur notre coeur de métier: vendre de l’intelligence.

L’optimisation du temps de travail : un sujet qui ravirait sans doute les patrons qui se cachent en vous. Pourtant c’est bien aux petites mains que je m’adresse. Aux personnes qui au fil des projets exécutent régulièrement des tâches rébarbatives d’installation et de configuration.

La démarche qu’illustre cette présentation a un champ d’application très large. Elle résulte d’un travail d’équipe sur le long terme, c’est le fruit d’une petite décennie de réflexions et d’évolutions.

Les bénéfices recherchés sont :

  • Augmentation de la productivité à moyen terme.
  • Interchangeabilité des équipes pour plus de souplesse.
  • Cohésion d’équipe accrue à court terme
  • Accélération de la montée en compétence des nouveaux arrivant
  • Partage des compétences individuelles à très court terme
  • Augmentation de la qualité générale des produits ou services.

C’est alléchant, comment fait-on ?

Que vous soyez indépendant-es ou dans une équipe aux compétences homogènes, vous menez probablement, je l’espère, une reflexion sur vos méthodes et outils. Que vous les remettiez constamment au lendemain ou que vous y travailliez activement, il est important d’entreprendre cette reflexion. Des outils et méthodes améliorés vous ferons gagner en confort, temps et finalement en qualité.

Ce cheminement est valable pour tout le monde, l’artisanat en est le meilleur exemple : de la formation des apprentis à l’organisation d’un atelier, on retrouve un travail et une formation continue en équipe. Le but est de fabriquer un produit toujours plus abouti tout en augmentant l’intelligence collective et individuelle.

L’objectif est de comprendre comment mettre en place simplement et efficacement un projet d’optimisation interne. Ce projet se découpe en deux chantiers :La mise en place de boîtes à outils communes et l’harmonisation des méthodes et procédures. Il n’est pas toujours pertinent d’investir du temps dans des outils sophistiqué si vous n’en avez pas besoin. Dans le cas d’une équipe de développement,de nombreux d’outils open sources combleront vos attentes. Vous avez besoin de monter rapidement des prototypes d’interfaces back-end et sans design ? Utilisez et/ou contribuez à Bootstrap ou un équivalent. Dans le cas où vous fabriquez des interfaces sur-mesure, vous aurez besoin d’outils plus spécifiques. Ça tombe bien, c’est que nous allons aborder ici.

Essayons donc de comprendre comment se mettre en route de manière douce et fluide. L’interêt est d’arriver à une amélioration régulière et continue tout en ne perdant personne en route.

Trouver le diapason

Commencer cette réflexion peut paraître une tâche sans fin, mais ne paniquez pas, l’effort sera progressif et collectif. Vous ne pourrez pas aboutir à une harmonie saine dans votre équipe si vous leur imposez du jour au lendemain des méthodes et outils flambants neufs. Il faut que ce soit un cheminement dans lequel tout le monde se sente impliqué et accompagné. L’amélioration continue et l’implication de tous les acteurs sont les fondements d’un principe qui a plus que fait ses preuves : le Kaizen.

Il ne faut pas se laisser impressionner pas l’étendue apparente de l’effort à fournir.

Pour établir un bon travail d’équipe, la première étape est d’en construire les fondations solides et communes. L’harmonisation de vos méthodes en sera une des pierres fondatrices. Sa réussite dépendra de deux facteurs, l’acceptation par chacune des personnes concernées et la qualité des documents produits. Ils seront les gardiens de ces pratiques communes.

Go go gadget à documentation

La première étape consiste à faire un rapide audit de la documentation et des méthodes déjà établies. À partir de là une concertation de l’équipe doit venir poser les bases et lister grossièrement tous les documents à fournir pour normaliser vos pratiques. Pour accélérer le processus et prévenir un maximum les discussions stériles, il est important au préalable que chacun et chacune fasse une rapide introspection de ses propres habitudes. Fouiner dans des ressources externes est aussi une bonne idée, que ce soit pour l’inspiration ou comme base de travail. Au fur et à mesure, vous construirez un dictionnaire commun qui vous permettra de mieux vous comprendre et d’étendre vos connaissances par le partage. Vous aboutirez assez rapidement à des conventions d’écritures collectives. Il en est de même pour vos procédures, un document écrit en commun vous rendra plus efficace et serein. Des tâches telles que le lancement, la récupération ou la mise en production d’un projet deviendront naturelles. Le but est d’avoir une explication simple claire et didactique. Petit bonus dans la boîte de lessive : l’accueil d’un nouveau membre dans l’équipe deviendra bien plus simple. Ce dernier pourra se référer aux documentations en cas de doute. A ce stade chacun gagne déjà en autonomie et en confort de travail.

En plus d’une cohésion de votre équipe renforcée, les bénéfices directs de ce vocabulaire commun seront une plus grande aisance à intervenir sur un projet ou une fonctionnalité inconnue, un accueil plus simple des externes et une amélioration générale de la qualité du produit. On est souvent surpris des solutions apportées par des collègues habituellement introvertis qui profitent de cette mise en commun pour partager d’excellentes idées.

En parallèle, vos outils y gagneront en cohérence. Vous pourrez ainsi vous atteler à les améliorer dans des conditions optimales.

Trouver la bonne boîte à outils

Des outils viendront compléter ce language commun. Il faudra trouver la formule adaptée à vos besoins. Selon votre coeur de métier, et votre expérience ces outils varieront, mais une base commune à toute équipe technique est nécessaire. Les outils que je vais vous présenter sont utilisés dans le développement, à vous de trouver les solutions répondant aux besoins de votre corps de métier.

Dans l’esprit de partage des connaissances et d’harmonisation des méthodes de travail, vous aurez besoin de partager votre code. Ce besoin est souvent satisfait par une plateforme de visualisation de vos dépôts, GitLab ou GitHub en sont deux exemples populaires. Si le code à partager n’est pas stocké dans un gestionnaire de versions, d’autres solutions plus ponctuelles sont à votre disposition: Gist, Jsbin, Codepen, etc. À travers ces interfaces vous pourrez facilement partager votre code, centraliser les reports de bug et évolutions à venir. Pour renforcer le partage des connaissances ce sont aussi de très bons outils pour organiser de la revue de code.

Visualisez vos documents avec les outils qui vous conviennent.

Photo: Joaquim Alves Gaspar under CC BY 2.5

Go go gadget au dummy

Maintenant que vous avez des méthodes communes ainsi qu’une maison où faire vivre vos projets, vous pouvez commencer à réfléchir aux outils dont vous avez besoin. Commencez par faire un constat de l’existant, au cours de cet état des lieux, apportez un soin particulier à noter les fonctions et éléments récurrents de vos projets. Cette étape est très importante car vos outils ne doivent pas devenir des usines a gaz. Il doivent être le reflet épuré des fondations de vos projets. Si vous devez enlever des choses à chaque lancement de projet, c’est que vous êtes allés trop loin. Le résultat de cette démarche a plusieurs formes, nous les avons regroupés sous un même terme, une collection de dummy (trad. mannequin à couture). Tel Batman, vous n’aurez plus qu’à piocher dans votre ceinture les outils appropriés à chaque mission. Une suite logique d’outils viendra vous épauler dans la création de votre produit.

Pour les curieux, le résultat de notre reflexion est disponible sur GitHub.

Prenons l’exemple d’un CMS, peu importe votre préférence, une installation nue nécessitera plusieurs étapes. Cette partie de notre travail n’est, soyons franc, pas la plus intéressante. Créer le dépôt, récupérer les sources, configurer l’installation locale et le serveur, créer une base de données… Recommencer sur les autres environnements de travail. Un travail répétitif, long et sans aucune valeur ajoutée. Et ce n’est pas fini, il faut ensuite créer des comptes administrateurs et rédacteurs, installer les plugins de base, créer des pages et contenus d’exemples, insérer un thème “vide”, y mettre votre base de développement front-end… C’est uniquement après tout ce processus que vous pourrez vous mettre à travailler. Toutes ces tâches rébarbatives ne devraient pas être effectuées par quelqu’un doué d’intelligence, vous avez tous à disposition des petits esclaves (et je ne parle pas des stagiaires) qui le feront mieux et bien plus vite. Si vous êtes dans ce cas, la priorité de l’optimisation de vos méthodes de travail devrait être l’automatisation de ce processus.

Quelle que soit vos compétences, des outils d’automatisation relativement simples existent. Une solution possible est de créer automatiquement l’environnement de travail (vhost, bdd, git/svn), et ensuite d’y rapatrier un projet type (comptes, contenus et plugins). Un script de ce type pourra rapidement être prêt à l’emploi et vous fera gagner quelques heures à chaque début de projet. Vous aurez alors une base sur laquelle itérer.

C’est ce type de reflexion qu’il faut appliquer à tous vos processus.

La mise en place d’ébauches de nouveaux outils a quelque chose d’euphorisant. Les discussions, la motivation et la cohésion engendrées en début de projet doivent être encadrées pour éviter l’éparpillement, mais aussi être cultivées pour parer à tout essoufflement trop précoce. Encore une fois prenez soin d’écouter les avis et besoin de chacun. L’adhésion des outils n’en sera que meilleure. Plutôt que d’allouer un temps conséquent au début puis de le distiller plusieurs semaines plus tard, il sera un peu plus frustrant mais bien plus efficace de prendre votre temps. Evaluez le temps minimum que nécessitera l’élaboration d’un outil fonctionnel, pas un outil fini, ni même élaboré. C’est à partir de cette version simple que vous itérerez à l’intérieur du temps qui aura été prévu à l’avance. La gestion de ce projet interne, est probablement la partie la plus difficile à tenir sur le long terme. Vous serez les seuls garants de son déroulé, personne ne sera là pour vous sermonner si le projet n’avance pas. C’est cependant l’assiduité avec laquelle vous y travaillerez qui fera la qualité de vos outils et par incidence de vos produits. De petites améliorations régulières vous assureront de ne pas faire fausse route.

Un artisan se doit d’entretenir son atelier et de renouveler régulièrement ses outils.

Mais on n’est pas payé à enfiler des perles

Si le titre de cet article parait alléchant pour les personnes chargées de gérer les forces de travail, c’est à ce moment que des freins peuvent surgir. Optimiser son temps de travail n’est pas instantané, de l’élaboration de la feuille de route à l’entretien de vos outils et méthodes, du temps devra être dédié à ces projets. Les plus passionnés prendront sans doute sur leur temps libre mais ce n’est pas le but. Lors des périodes les plus chargées, il est tout à fait compréhensible de mettre en priorité les projets qui rapportent de l’argent directement, mais cette refonte de vos pratiques est un bénéfice indéniable sur le long terme. Vos outils ne deviendront pas obsolètes tout de suite, ça prendra du temps. Les anciennes pratiques perfectibles, peu à peu, le deviennent de plus en plus et ce qui n’était qu’un grain de sable à l’origine devient une dune à gravir à chaque projet. Pensez-y !

L’investissement premier est grand, couper ce coût peut paraître une manière d’optimiser la rentabilité générale lors de période ou les semaines semblent trop petites, mais le vieillissement de vos outils provoquera l’effet inverse à moyen terme. Pour réduire les risques, il est important d’avoir pour chaque projet, une feuille de route claire et accessible avec de petits objectifs simples, ainsi les évolutions pourront être traitées petit à petit dès que l’opportunité se présentera. En agilité, on parle de sprint, mais nous aurons l’occasion d’en parler dans un futur article.

Vos outils doivent être à la hauteur de vos ambitions

L’ACG (Apollo Guidance Computer - système de guidage de la navette) CPU: 1MHz, RAM: 4ko, ROM: 72ko, Poid: 32Kg

Alors on se sort les doigts et on s’y met

La barrière psychologique que peuvent représenter l’engagement global de l’équipe au début et les tâches récurrentes ensuite risque de rebuter beaucoup d’équipes mais le jeu en vaut la chandelle. Si la perte de rentabilité première – toute relative – est difficile à faire comprendre aux membres extérieurs, l’optimisation du temps de travail en résultant est telle que la seule question qui doit rester est : “Quel cadre va t’on donner à ce projet interne ?”. La capacité d’interchanger deux personnes, avec un temps de passation quasi nulle, devrait faire naître des étoiles dans les yeux de tous les chefs de projets. Et si ils ont encore des doutes, dites-leur de nous contacter et nous leur expliquerons avec plaisir comment nous avons transformé un jour et demi de lancement de projet en un script qui s’exécute en deux minutes.

--

--