Au bout d’un projet libre : le plan (2 / 4)
Après tout, libre à vous de faire ce que vous voulez, les principes sont faits pour être bouleversés. Mais pour contourner les règles, autant commencer par les connaître !
🌟🌟🌟
Cet article fait partie d’une série de 4 articles enthousiastes sur la création de projets libres :
🌟🌟🌟
Les mains pas dans le cambouis
En attendant le chat
Partons du principe (on ne prend pas trop de risques) que vous aimez programmer. Pour créer un programme, vous allez vous lancer sur votre éditeur favori (peu importe lequel, ce n’est pas le sujet), évidemment, bien évidemment.
Ce n’est pas forcément une bonne idée. Je vous assure.
J’adore passer du temps à écrire du code, des fois sans trop savoir ce que j’écris. J’aime ça. Bricoler la logique, bidouiller les variables, bâtir les algorithmes, empiler les fonctions. Mais ce n’est pas parce que j’aime ça que c’est forcément quelque chose de formidable. Après tout, j’en connais pas mal qui aiment indécemment enchaîner les tartines de chocolat, de pâté de campagne ou de fromage de chèvre. On aime, mais est-ce une raison suffisante ?
Si le but est de se lancer dans un marathon, de créer un logiciel vraiment utilisé par de vraies gens, alors mieux vaut ne pas gâcher tout le plaisir dès le début. En réfléchissant un peu, nous nous gardons une bonne dose de plaisir pour la suite. Croyez-moi, nous en aurons besoin.
Le projet libre est comme un petit chaton trop mignon. Au début, on veut lui faire des câlins tout le temps, on en prend soin, on lui donne toute notre attention. Le temps passant, les choses sont moins claires : bien sûr qu’on l’aime, même quand il nous réveille la nuit, même quand il fait pipi partout, même quand il nous griffe quand il n’aime pas ce qu’on lui donne gracieusement à manger.
Et puis un jour, on le voit pour ce qu’il est : un être égoïste (d’autres disent pudiquement « indépendant »), une machine à embaumer sa caisse, un monstre à dévorer des repas, un gouffre financier en vétérinaire. On l’aime, hein, faut pas croire. Mais bon. Ça devient dur de s’en occuper, même un minimum. On changera la litière demain. Ou la semaine prochaine.
Alors mieux vaut prévoir un peu au début, histoire d’être content des objectifs atteints et de trouver une source de motivation avec des objectifs à long terme.
Objectif Lune
Fixer des objectifs, c’est une manière simple d’activer le circuit de récompense qui vous apportera joie, bonheur et prospérité. Alors mieux vaut en fixer une bonne tripotée dès le début, avec des premiers échelons facilement accessibles et très valorisants. Lorsqu’on les a, encore faut-il les écrire, histoire de s’en souvenir après et d’avoir une bonne idée du chemin déjà parcouru.
Pour obtenir rapidement quelque chose de valorisant (et manger quelques tartines pour fêter ça), il est plutôt intéressant de se lancer dans des premières étapes à la fois faciles, rapides et utilisables. Plus vite on aura un joujou agréable à utiliser, plus on sera motivé pour l’améliorer. Et quand on fait joujou, vous le savez bien, l’envie de voir les bugs corrigés et les améliorations s’empiler ne connaît aucune limite. L’utilisation motive le développement, même quand c’est la même personne qui incarne les deux rôles.
Le long terme est la seconde face d’une même médaille. Le court terme vous aide à atteindre le long terme, si tant est que vous savez à peu près où va ce long terme. On dit qu’il faut viser la Lune, et que si l’on échoue on finira dans les étoiles. C’est très poétique (et un brin gnangnan), c’est aussi un petit peu vrai : viser loin vous donne du courage. La vision à long terme transforme les empileurs de pierres en constructeurs de cathédrales, juste par un astucieux (et parfaitement fallacieux) changement de point de vue.
Allez-y, mentez-vous. Allègrement. Vous voulez écrire un concurrent à Photoshop ? Aucun problème. Assurez-vous avant d’obtenir un petit logiciel pour faire du pixel art au bout de quelques centaines de lignes de code, histoire de vous transformer en utilisatrice ou utilisateur le plus tôt possible.
Les objectifs à court terme doivent prendre le pas sur les objectifs à long terme. Ce n’est pas la peine de lire des milliards de papiers de recherche sur l’optimisation des matrices de convolutions à n dimensions si vous n’avez pas déjà de quoi dessiner une image de quelques pixels à l’écran. Le long terme reste dans un coin de la tête, il peut influencer certains choix, mais il ne doit pas brider des objectifs à court terme facilement atteignables.
Il sera bien temps d’améliorer et de nettoyer du code qui fonctionne quand il fonctionnera et que vous l’utiliserez. Vous pouvez écrire des montagnes de joli code, mais si c’est une très belle coquille vide, vous ne trouverez jamais la motivation de remplir tout cet espace laissé vaquant.
On fait quoi ?
Parce que c’est notre projet
Nous avons vu dans l’article précédent que l’idée n’était pas un problème. Vous avez forcément un truc qui vous dérange, forcément un manque, une chose qui vous frustre, un vide à combler.
Prenez-le, quel qu’il soit. C’est votre projet. Mieux : c’est votre objectif à long terme. Ce logiciel parfait dont vous rêvez depuis si longtemps.
Pour moi, c’est un lecteur de flux RSS en ligne. Il y en a déjà plein, mais ils sont payants, ou avec un compte, ou surchargés et lents comme des grosses vaches, ou limités en nombre de flux. J’ai envie d’un truc clair et pas prise de tête.
Ce projet, vous n’allez sans doute pas le construire en peu de temps. Vous avez un marathon devant vous. Comme tous les marathons, on commence par les dix premiers mètres. C’est ridicule, quand on y pense, dix mètres, à l’échelle d’un marathon. C’est tellement ridicule qu’on pourrait être tenté d’abandonner tout de suite.
Que nenni. Votre premier objectif, c’est dix mètres. Pas un de plus. Après dix mètres : tartine. Et vous l’aurez bien méritée, parce que vous serez désormais plus loin que toutes celles et ceux qui auront déjà rendu leur tablier.
Au football, on dit qu’il faut jouer les matchs un par un. Quand on chasse, on dit qu’il ne faut pas courir plusieurs lièvres à la fois. C’est une source de moqueries évidentes, parce que ce serait quand même très étrange de jouer plusieurs matchs ou de courir après plusieurs animaux en même temps (#premierdegré, j’assume). Moquez-vous, moquez-vous. Mais quand votre tête vous dit que dessiner des pixels un par un, ce n’est pas la même chose que de faire des flous gaussiens dynamiques, vous rigolerez moins. Votre premier match, votre premier lièvre, c’est les pixels, et rien d’autre.
Écrivez vos objectifs. Ouvrez des tickets sur une forge logicielle, mettez des Post-it sur les murs de chez vous, faites une belle liste avec des cases à cocher, peu importe. Écrivez. Puis fermez les tickets, barrez les Post-it, cochez les cases au fur et à mesure. C’est votre barre de progression, celle que vous regardez en mangeant vos tartines. Ce n’est pas la peine d’y penser quand vous développez, vous aurez à loisir de l’admirer pendant vos repos bien mérités.
Il est venu le temps des cathédrales
Dernier passage obligé avant d’ouvrir votre éditeur (enfin !) : l’architecture.
Vous allez construire une cathédrale, c’est sûr. Mais dans un premier temps vous allez plutôt empiler trois cubes en mousse, comme un enfant. Comme un enfant, ce sera une tâche compliquée. Vous avez l’impression que c’est très facile d’empiler trois cubes, mais prenez le temps. Réfléchissez.
Ces trois cubes en mousse ne seront sans doute pas dans la cathédrale finale. Pourtant, ils sont une étape importante. Définissez avec précision comment ils sont mis les uns sur les autres. Un cube sur deux autres, pour plus de stabilité ? Les trois cubes empilés, pour prendre de la hauteur ?
À ce moment-là du projet, allez là où vous prendrez le plus de plaisir à utiliser votre création. Ce n’est pas encore la peine de mettre en place des outils complexes ou des bonnes pratiques, ni de réfléchir pendant des semaines au matériau à utiliser. N’importe quelle mousse facile d’accès fera l’affaire pour empiler trois cubes. Les problèmes viendront, mais plus tard. Vous les réglerez en temps voulu.
Faites des dessins, des maquettes, des gribouillages. Plus vous savez ou vous allez, plus il sera facile de faire du code. Il est très dur, pendant qu’on code, de résoudre en parallèle des problèmes aussi complexes que de lister les fonctionnalités que l’on veut ou les interfaces que l’on désire. Faites ce travail avant, quand vous avez encore un peu de lucidité, avant de vous lancer dans le tunnel du développement. Ne visez pas loin, mais visez juste.
Lorsque vous aurez obtenu quelque chose de très excitant (même si ce n’est pas forcément beau, vous n’êtes pas nécessairement graphiste) et d’assez précis, c’est le moment tant attendu.