Génies au travail

Tout le monde a des idées. Personne ne traverse l’existence sans jamais imaginer quoi que ce soit qui pourrait changer son environnement.

Entre l’idée de base, et l’exécution, le fossé est aussi important qu’entre le militant fraîchement entré en politique et le président de la République. Manque de foi dans ses capacités, flemme de se lancer, crainte de réussir, peur du regard des autres, il existe un nombre quasi infini de (fausses) bonnes raisons de ne jamais se lancer. Cela peut être pour des choses toutes simples : refaire son salon, se mettre à la guitare. Ça peut aussi être pour changer le monde, une chose à la fois.

Ces dernières semaines, je me suis remis à avoir 15 idées par minute. Certaines ne sont pas idiotes, d’autres complètement farfelues, les autres encore franchement mauvaises.

Chaque fois qu’il me vient une telle idée, je la note dans mes outils de productivité. Ça peut être une ligne ou deux, plus rarement quelques pages. Quand je trouve le temps d’y réfléchir pour de vrai, je m’y replonge, j’étoffe un peu, j’ajoute parfois, et je retranche souvent. La majorité passe à la trappe, mais une fois de temps en temps, certaines se transforment en projet.

Il y a dix jours, dans l’avion qui m’emmenait à Vienne, je me suis remis à coder sur un projet personnel que j’avais commencé dans le même avion au mois d’août. Intéressé, mon manager m’a demandé de lui montrer ce que ça donnait. C’est là que je me suis rendu compte qu’après trois jours de code, je n’avais strictement rien de fonctionnel à lui présenter.

J’ai profité du reste du vol pour me demander pourquoi, hors Twitmark aucun de la vingtaine de projets qui trainent dans mon dossier code n’avait jamais vu le jour.

Pour comprendre, j’ai refait tout le chemin qui mène de l’idée à la non exécution.

Une fois l’idée arrivée à maturation, je profite de quelques jours de vacances ou d’un week-end sans femme ni enfants pour la mettre à exécution. Je fais chauffer une théière de Grand Lapsang Soushong, j’ouvre Textmate, un terminal, je lance un nouveau projet Rails, installe quelques Gem, télécharge la dernière Bootstrap, mets un Muttoncast à fond dans mon Ath M50, et youpi tralala, je peux coder.

Je code les premières fonctionnalités de base, celles qui sont vraiment à la base du projet. Je rajoute des tests automatisés, ça fait gagner du temps même si ça en bouffe aussi pas mal. Je teste, j’améliore certaines fonctionnalités, je rajoute 2-3 trucs, un signup vite fait, et, à la fin du week-end, j’achète un nom de domaine et file le lien à 3-4 potes pour avoir leur feedback. En deux jours, j’ai un truc utilisable, que je peux améliorer au fur et à mesure de mon temps libre.

Ça c’est dans un monde idéal de Bisounours©®™ et de petits poneys©®™.

Dans le vrai monde réel de l’Internet multimédia convivial 3.0, mes projets avortent à la fin du week-end sans jamais sortir et je me retrouve avec plein de trucs inutilisables et que je n’ai pas envie de reprendre, parce qu’à chaque fois, je m’y prends à l’envers.

Je ne suis pas développeur. J’ai appris à développer à 6 ans en BASIC, j’ai codé à l’école, et je contribue à des projets open source depuis 1997 ou 1998… mais je ne suis pas un vrai développeur. Plus je rencontre de vrais développeurs hardcore avec le spirit, tu vois, plus je me rends compte du fossé qu’il y a entre eux et moi.

J’aborde la création de mes projets d’un point de vue utilisateur. Parfois, c’est très pratique, sauf quand le projet démarre de zéro.

Je commence par créer une maquette fonctionnelle en pur HTML, en soignant un peu mon code afin de le rendre réutilisable lors de l’intégration. En tant qu’utilisateur, la première chose que l’on rencontre quand on arrive sur une application Web, c’est une page d’accueil présentant le produit, un formulaire de login, une page de création de compte, une pour récupérer son mot de passe… Puis j’aborde les fonctionnalités vraiment importantes. Et je développe de même.

À la fin de la journée, j’ai une maquette fonctionnelle couvrant le périmètre de ce que je veux faire, mais je n’ai pas encore commencé à développer. Sur un projet d’agence, ce n’est pas bien grave, de toutes manières, les mockup doivent être terminés et validés avant de coder. À la fin du week-end, je me retrouve avec tout le circuit de création d’utilisateur, bien chiadé, mais je n’ai rien de fonctionnel, et le projet passe une fois de plus aux oubliettes.

Sur un projet personnel, sur lequel on a peu de temps consécutif pour développer, c’est une connerie. Au lieu de partir du périmètre pour aller au coeur, il faut faire exactement le contraire : partir du coeur, puis ajouter des couches tout autour. Release early, release often qu’il disait…

Ce week-end, je vais reprendre le projet viennois de zéro, en le faisant dans le bon sens. On en reparle dans 6 mois ;-)

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: