PandaLabs

Sous-estimer un projet ou surestimer ses capacités

30 mai 2017,   By ,   0 Comments

J’aurais peut-être du écrire un titre plus pute-à-click genre « 10 erreurs symptomatiques des développeurs, la 8e va vous faire uriner de plaisir »…

C’est un article un poil « slice of life » qui débarque parce que j’me suis rendu compte qu’on a souvent des excuses pour expliquer pourquoi les choses traînent parce que souvent, c’est notre cul qui est en jeu. Mais quand le projet n’appartient qu’à vous et que l’attente ne vient que de vous… là, c’est plus chaud.

J’vais pas me regarder dans la glace en me disant « hey, c’est pas ma faute… y avait apéro ». oh que oui, y avait apéro, mais pas que…

Un peu d’contexte ma p’tite dame

Comme vous le savez un peu, j’ai décidé de freiner les jobs freelance, j’avais envie de temps pour moi… rentrer le soir, bosser sur mes jeux, mes projets, ne rien foutre… me faire une soirée entière à mater des vidéos youtube de vulgarisation scientifique. Ca fait du bien. Parfois, j’envie ceux qui peuvent pas ramener du boulot chez eux… Genre t’es conseiller darty. t’as conseillé toute la journée, tu rentres chez toi le soir… tu vas pas essayer de convaincre ta femme d’acheter le frigo qu’elle possède déjà…

Bref… j’me suis pas fixé d’objectifs de temps ou de délais de livraison pour mes projets… même si je devrais, mais comme ça, j’y vais « au plaisir ».

Et là, j’avais « une petite idée en tête ». Avec un très bon pote, on joue à un très vieux rpg en ligne par navigateur… une sorte de Walls of Hope, en buggé de partout, plus maintenu, et où t’es passé de 10000 joueurs à 150. M’enfin, sur ce jeu, t’as la possibilité de reroll quand t’en as marre de ton perso. En gros, on te rend entre 90 et 100% de ton expérience accumulée et tu peux rebuild un personnage…

Et nous, on est des optimisateurs. Les mecs qui calculent toujours que chaque petit point d’XP est parti au bon endroit qu’il a influencé les bonnes mécaniques et qu’il y en a ni trop, ni pas assez. Et ça, jusqu’à y a « le début de cet article » (tu te doutes bien lecteur que je ferais pas un article si j’avais pas fini ça et que j’venais genre faire mes états d’âme)… parce que sinon, c’était tout en excel avec des calculs à la con… Bref j’ai décidé de développer « un builder pour ce jeu à la con »… que je nomme pas parce que d’une… j’veux pas y voir vos tronches et de deux… parce qu’il est nul et que j’veux pas faire de pub à ces enculés xD (non j’déconne, faut modérer le propos jeune homme).

T’inquiète poulet ! Ca va prendre 1 semaine grand max…

Cette maudite phrase… je le sais, tu le sais, on le sait tous… on l’a tous dit au moins une fois. J’me suis dit « j’vais y bosser 3 h par soir, à mon avis y en a pas pour plus de 10 heures et derrière ça, un peu de fignolage, d’interface… quelques tests et hop »…

En plus, tu te dis « le truc, je le connais par coeur, la techno je la maitrise… pas de tests ni unitaires ni fonctionnels… parce que ça va quoi, on s’en branle, tu sors pas une chemise avec boutons en or pour aller à un barbecue »… Bref… j’avais tablé sur 10 heures.

Je m’étais dit :

  • Création du répo git, on pose les base du angular et le gulp => 1h
  • il y aura 3 composants : les infos de base, les caracs principales et secondaires, les compétences => 3h par composant
  • j’héberge ça sur un sous domaine de pandalabs et basta…

Et bah la réalité est tout autre :

  • 49 commits (en moyenne, je commit dès que j’ai fini une fonctionnalité… que je découpe en gros en un bloc d’1h)
  • 14 putains de composants
  • j’héberge bien ça sur un sous domaine… ouf

Mais alors gros, qu’est-ce qui s’est passé ?

Il m’a fallu 10 jours, j’ai créé le repo le 20/05 et on est le 30… Alors j’y ai pas bossé chaque jour, mais en moyenne… j’y ai passé 5h / jour …donc on est sur x5 au niveau des estimations.

Qu’est-ce qui a bien pu se passer ?

  • L’excitation et l’engouement de faire un truc qui nous plait a tendance à nous masquer toute la partie cachée de l’Iceberg. Alerte Spoil… mais Frodon n’a pas trouvé l’anneau, monté la colline et jeté le bignou… non. Et bah là pareil. J’ai peut-être oublié que le builder sans l’étape de passage de niveaux ne servait à rien, que sans les objets intéressants du jeu le build était pas précis… et que du coup, j’ai fait un fichier JSON des 70 items les plus utiles de ce con de game… j’ai pas vu que j’passerais 2h à coder les passages de niveaux, que l’interface c’est pas mon métier et que je galérerais à avoir un truc un peu user-friendly
  • A mesure que je voyais que j’m’étais merdé dans mes estimations, la passion s’est barrée laissant place à une forme de « ah mais j’veux plus en fait, on arrête ? »… parce que pour bien faire, il faudrait faire plusieurs factory et services et que j’avais hyper la flemme… donc j’me retrouve avec un truc de 800 lignes imbitables parce que « j’avais plus du tout envie »…
  • Que du coup, j’ai cherché le réconfort dans des petites fonctionnalités triviales qui prenaient pas longtemps et qui servent pas à grand chose : un affix pour mon UI, un système de capture d’écran qui génère un canvas grâce au html généré…

Juste pour la déconne… les captures générées font 1900x8000px … il me faut 7 fois mon écran superposé pour afficher l’entièreté de l’interface généré … A quelle heure j’ai cru que ça prendrait 10h ? Tocard !

Qu’est-ce qu’il faut tirer de ça ?

Vous, pas grand chose : soit parce que vous êtes pas concernés, soit parce que vous vous pensez meilleurs, soit parce que vous êtes vraiment meilleurs… mais moi, j’me suis rendu compte que bosser pour soi à 100% ou un client… et bah c’est pareil.

Finalement, en tant que « mec qui veut que cette app tourne comme ça », j’avais des attentes et ce que je me livre, y a pas tout, j’ai la flemme, je dois refacto… Si j’m’étais considéré comme un client lambda, j’aurais posé mon cahier des charges, mes specs et j’aurais avancé intelligemment.

Et je pense, que ce genre de couilles, ça n’arrive pas seulement parce que je suis le client et le développeur… mais ça m’est déjà arrivé sur d’autres projets où j’ai considéré le besoin comme simple… « Ouais, c’est juste une page comme ça, avec un bouton qui fait ça, et quand le traitement est fait, il s’passe ça… » kikoolol trop simple, 2 jours… et ça en prend 10…

Bref, cet article est surement utile à 0.000000001% de mes contacts facebook… mais j’crois que tant qu’on s’est pas rendu compte de l’attente qu’on impose à ses clients quand on foire une estimation, on peut pas vraiment faire ce genre d’introspection. Alors, je l’ai faite pour vous…

Bisous !