Le Rayon UX

La radiographie du Web en temps presque réel / thème en chantier (je m'appelle Teuse)

Concevoir une usine à gaz est plus simple qu'un logiciel qui ne fait qu'une seule chose simplement

J’ai profité de ma semaine de vacances pour commencer à réfléchir à mes prochains projets personnels, et notamment à un outil qui me permettrait de tous les gérer de manière centralisée. Je m’éparpille facilement – il suffit de voir la diversité des thématiques de ce site – et j’ai parfois besoin d’outils pour m’y retrouver. Il ne s’agissait pas pour moi de réinventer la roue. Il existe de nombreux outils de gestion de projets, productivité personnelle, et je pense en avoir testé un certain nombre. Malheureusement, aucun d’entre eux ne m’a convaincu, même de loin, à part peut-être Remember The Milk, et contraindre mes habitudes et mes reflex sera probablement plus long et plus pénible que de repartir de zéro.

J’ai donc fait ce que je fais toujours en pareil cas. Je suis parti marcher avec un carnet et un crayon à papier dans la poche, le long du littoral cette fois, et j’ai commencé à noter toutes les idées au fur et à mesure qu’elles venaient : fonctionnalités, workflow, brouillons d’interfaces… J’en ai rayé ou reformulé un certain nombre et fait pas mal de schémas illisibles par tout autre que moi. Quelques heures plus tard, le soleil s’était déjà couché sur l’océan, je me suis retrouvé avec un carnet noirci d’une couverture à l’autre. Le temps de rentrer et reprendre tout ça à tête reposée, le constat fut lapidaire : j’avais accouché d’une usine à gaz certainement géniale sur le papier, mais parfaitement inutilisable.

À ce stade, deux solutions s’offraient à moi : jeter mon carnet dans la première poubelle venue, ou trancher dans la masse à grands coups de hache à double tranchant jusqu’à ce qu’il en ressorte quelque chose d’utilisable.

Je suis retourné sur la plage. La nuit était noire, et la marée basse. Je me suis assis sur le sable à la lueur d’un réverbère avec 2 Redbull et une bouteille de vodka (pas indispensable mais il faisait froid et je n’avais que ça pour me réchauffer). Enfin, j’ai pris chaque fonctionnalité une par une, et je les ai rangées dans 5 grandes catégories

  1. Les clairement superflues.
  2. Les trop complexes pour être utilisables.
  3. Celles dont je n’avais pas besoin immédiatement mais que je voulais ajouter au cas où…
  4. Celles qui faisaient double emploi avec des services que j’utilisais déjà et que je pouvais éventuellement intégrer.
  5. Celles que j’allais vraiment utiliser.

Au total, j’ai gardé 24 feuillets griffonnés au crayon à papier, exemples d’interfaces et schémas de fonctionnement compris. Il me reste maintenant beaucoup de travail pour faire tenir la peau de la vache avant de commencer à coder (ça tombe bien, je suis célibataire les 3 prochaines semaines), mais le plus gros est là (NON je ne suis pas gros).

Évidemment, mon cas est très particulier puisque je suis à priori le seul destinataire de cette application. Cependant, en élargissant un tout petit peu, on arrive facilement à une application relativement grand public.

La morale de cette histoire (larirette larirette)

Puisque toute histoire doit être porteuse d’une morale et donner des leçons à retenir pour la vie de tous les jours, allons y gaiement.

La première, c’est qu’il est plus facile de concevoir une usine à gaz qui fait le café qu’un logiciel qui fait une chose, simplement. Il faut donc faire attention de ne pas s’éparpiller ni s’éloigner du sujet principal.

La seconde, c’est que la Speculative Generality ne s’applique pas qu’au code. Si vous n’avez pas besoin d’une fonctionnalité maintenant, mais que vous pensez en avoir besoin plus tard, laissez la de côté, même si elle ne semble avoir un impact limité en termes de développement, de performances ou de complexification de l’interface. Elle ne sera au final jamais comme vous l’aviez imaginée au premier abord, et il vous en coûtera beaucoup plus de changer l’existant que de redémarrer de zéro.

La dernière, c’est qu’il ne faut jamais perdre de vue à qui vous destinez votre application. Si vous commencez à concevoir des workflow complexes pour une application destinée à un seul utilisateur, c’est que vous vous êtes planté quelque part. Autant vous arrêter, reprendre votre travail du début, et reprendre la bonne route là où vous aviez commencé à dévier.

  • Par Rubix 27/07/2009 at 07h40

    YAGNI!


  • Par loopion 27/07/2009 at 09h42

    Tout à fait d’accord sur le processus de sélection des fonctionnalités (focus-targeting comme j’appelle ca) avec ce que tu dis cependant je n’irai pas jusqu’à dire que c’est plus compliqué à réaliser une application simple.


  • Par Mère Teresa 27/07/2009 at 09h45

    Allez, je me fends d’une petite citation “La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.” (Saint-Exupéry)


  • Par Olivier G. 27/07/2009 at 12h24

    “et mes reflex” : très joli lapsus (quand on sait ta passion pour la photo).

    Et l’alcool ne réchauffe pas, bien au contraire, il accélère le refroidissement du corps en amenant le sang à la surface de la peau.


  • Par jojo 27/07/2009 at 21h59

    J’adore ce genre de style. J’ai juste été déçu que cela s’arrête aussi brutalement …

    Jocelyn


  • Par Mr Xhark 28/07/2009 at 01h23

    D’accord avec toi. Aujourd’hui je trouve tout de même que le plus dur c’est de ré-inventer la roue pour s’apercevoir quelques temps après qu’un outil existe et qu’il fait la même chose en 2x mieux :)

    Personnellement je suis chez Google Reader pour ma veille, mais il ne fait pas le café… ;p


  • Par delaluz 02/08/2009 at 21h55

    http://fr.wikipedia.org/wiki/GettingThingsDone


Commentaire Concevoir une usine à gaz est plus simple qu'un logiciel qui ne fait qu'une seule chose simplement