Je suis un fana de montagne depuis des années, surtout de montagne l’été. C’est un univers absolument fantastique, très apaisant, et qui a le don de nous faire réfléchir sur nous-mêmes : comment ne pas se sentir minuscule et vulnérable face à une telle immensité ? Il parait que c’est la même chose en mer, à ceci près que la mer est en constant mouvement, alors que la montagne est – quasiment – immuable.

Fish Tail Mountain awakens

Photo Inaz

En préparant mes vacances dans les Alpes l’autre jour, je me suis rendu compte que la conception et le développement d’un logiciel avait énormément de points communs avec une randonnée en montagne, que l’on parte seul, ou à plusieurs, pour une journée ou une semaine, et c’est peut-être en partie ce qui me fait tant aimer ces deux disciplines.

Il y a d’abord les préparatifs de la randonnée : d’où allez-vous partir, où souhaitez-vous arriver, en combien d’étapes, et que voulez-vous accomplir pendant ces étapes ? Que vous ayez devant vous une roadmap et du tri de cartes, ou une carte d’état-major change finalement assez peu, le processus reste le même, jusqu’à l’étude du marché, c’est à dire de la région dans laquelle vous comptez vous aventurer.

Définir des étapes est fondamental. Chaque jour de marche doit avoir un but, chaque phase du cycle de développement doit avoir ses livrables, sous peine de partir dans un grand n’importe quoi. C’est une des raisons pour lesquelles j’apprécie les méthodes agiles, et notamment la méthode Scrum, qui définit des sprints de 15 jours à 3 semaines avec des livrables définis en début d’itération : chaque fois que nous entamons une étape, nous en connaissons l’arrivée, même si nous ne savons pas toujours comment elle va se dérouler. Évidemment, rien de tout cela n’est gravé dans la pierre, un jour de pluie vous forcera certainement à redéfinir une étape comme une difficulté technique vous amènera certainement à revoir certaines de vos ambitions à la baisse – à moins de rallonger votre développement.

Une fois planifié votre itinéraire, il est temps de préparer votre sac, vos provisions, et votre équipement, expliquer à vos compagnons où vous irez, et par où vous passerez, sans forcément rentrer dans les détails, puisqu’un éboulement ou un glissement de terrain peut vous amener à changer votre itinéraire en cours de route.

Et c’est parti. On marche des heures durant, on avance, on trébuche, on s’arrête un moment pour regarder derrière soi, et quand on a un doute, on regarde sa carte IGN (ou sur Google Map). En cours de route, toute l’équipe doit avancer au même rythme, afin de ne pas s’égarer ni arriver en retard (surtout les jours d’orage), et ceux qui vont plus vite que les autres ou sont moins fatigués peuvent les pousser pour leur venir en aide. Pour rester sur la méthode Scrum, chaque démonstration de fin de sprint s’apparente à ces soirées au refuge ou ces bivouacs durant lesquels on se pose le temps de regarder le chemin parcouru et d’envisager celui de l’étape suivante.

Et le TDD dans cette histoire ? J’en entends déjà qui se demandent comment je vais coller du TDD dans une randonnée en montagne.

Vous avez déjà fait du glacier, ou même de la varappe ? Développer sans tests est à peu près aussi intelligent que d’attaquer un glacier sans s’encorder. Si vous oubliez de vous encorder, vous avez toutes les chances de terminer dans une crevasse, ou au pied d’une paroi après une chute de 50m – ou plus. Si vous ne vous encordez pas correctement, et que vous ne vérifiez pas votre cordée régulièrement, vous risquez le même sort, mais avec des chances de vous en sortir. En revanche, si vous vous encordez avant de partir, et que vous vérifiez régulièrement que votre corde n’est pas abimée – c’est à dire que vos tests passent – vous êtes (presque) en sécurité.

L’arrivée au sommet est souvent la plus difficile ; après des jours de crapahutage, on a tendance à être fatigués, et un peu moins sur le qui vive. On veut se dépêcher d’arriver en haut, pour accomplir le chemin parcouru. Mais ce n’est pas terminé : une fois arrivés au sommet… il faut redescendre, le travail n’est pas terminé.

Perry the Platypus wants you to subscribe now! Even if you don't visit my site on a regular basis, you can get the latest posts delivered to you for free via Email: