Les articles de la catégorie « Conception »

Réinventer la roue

Je suis tombé récemment sur cet article initialement intitulé « Quand ne devrait-on pas utiliser WordPress ? ». J’ai d’abord cru à un article satirique, puis j’ai vite réalisé que l’auteur était sérieux. Parmi les arguments avancés pour justifier une utilisation systématique de WordPress, j’ai sursauté sur le suivant.

  • Il ne sert à rien de réinventer la roue.

Non merci ! Trop occupés

C’est un argument que je n’aime pas trop, mais que j’ai déjà entendu de la part de clients. Pour commencer, je n’aime pas la comparaison avec la roue. Je ne suis pas un travailleur à la chaîne qui assemble des pneus. Je suis intégrateur. Je me vois plus comme un artisan que comme un ouvrier sur une chaîne de montage.

Alors prenons une autre métaphore. Par exemple, la cuisine. Si vous allez dans un supermarché, vous trouverez certainement de quoi vous nourrir jusqu’à la fin de vos jours sans avoir jamais à cuisiner. Plats préparés, surgelés, conserves. Rien de telle qu’une bonne ratatouille surgelée, non ? Non ? Non ?

Mais alors, à quoi bon réinventer la ratatouille ?

Le premier argument qui me vient à l’esprit, c’est bien entendu la qualité. En cuisinant moi même une ratatouille, je connais la qualité de mes ingrédients.

Le second argument, c’est la facilité de personnalisation. Vous n’aimez pas les poivrons ? Aucun problème, je vous fait une ratatouille sans poivron.

Le dernier argument, c’est le plaisir. Découper soi même amoureusement ses aubergines, courgettes et tomates, et les faire revenir langoureusement à la poêle, c’est quand même autre chose que jeter un sachet plastique surgelé dans le micro-onde.

La ratatouille du film ratatouille, cuisinée par… Rémy

Le parallèle avec l’intégration, ou même le développement au sens large, n’est pas bien difficile à faire. Je suis un codeur dans l’âme. J’aime savoir comment fonctionne quelque chose avant de l’utiliser. J’ai besoin de m’assurer de la qualité de ce que j’utilise. J’aime aussi concevoir des pages et interfaces sur mesure, correspondant à un besoin précis. Et j’éprouve beaucoup de plaisir à faire tout ça, même si ça nécessite que j’y passe beaucoup de temps ou que j’y laisse quelques cheveux.

De la même manière que je pourrais me contenter de manger du surgelé tous les soirs, je pourrais me contenter de claquer du WordPress sur tous mes projets. Mais j’y perdrais surement vite goût.

Toute la subtilité de mon métier réside alors mon propre jugement de ma capacité à réinventer la ratatouille. Si on est vendredi à dix-sept heures et qu’il faut impérativement que je livre une page avec un carousel en 3D pour dans trente minutes, il y a des chances pour que je me jette sur la première bibliothèque faisant ça proprement que je trouverais.

Et ça ne signifie pas non plus que je vais systématiquement réessayer de réinventer la roue. J’aurais peu d’intérêts à créer mon propre pré-processeur CSS, mon propre langage de programmation, mon propre système d’exploitation, etc.

Pour citer Carl Sagan (dans un moment de télévision tel qu’on ne ferait plus de nos jours) :

Carl Sagan: If you wish to make an apple pie from scratch, you must first invent the universe.

Si vous souhaitez faire une tarte aux pommes à partir de zéro, vous devez d’abord inventer l’univers.

La semaine dernière, je suis tombé sur cet autre article intitulé « Je sais comment programmer, mais je ne sais pas quoi programmer ». Ce passage m’a apporté un autre argument pour réinventer la roue :

Dans la communauté du logiciel, l’attitude générale est de ne pas réinventer la roue. C’est presque mal perçu si vous réécrivez une bibliothèque quand une option mature et stable existe. Si c’est une bonne règle en général, les débutants ne devraient pas avoir peur de réinventer la roue. Quand c’est fait pour apprendre et pour s’entraîner, c’est très bien de faire une roue. C’est une partie importante de l’apprentissage. Par exemple, écrivez votre propre version de ls, mv, wget ou cowsay. Si vous souhaitez partir sur un jeu, alors faites un clone de Pong, Tetris ou Space Invaders. Vous n’avez pas besoin de reprendre toutes leurs fonctionnalités ou d’en faire une réplique exacte, mais vous démarrez avec votre objectif et une feuille blanche, et vous faites en sorte d’y arriver.

Il s’avère que Jeff Atwood avait écrit sur ce thème en 2009 :

« Ne réinventez pas la roue » devrait être utilisée comme un appel aux armes pour s’enrichir de toutes les solutions existantes, et pas comme une matraque pour affaiblir ceux qui voudraient légitimement construire quelque chose de mieux ou améliorer ce qui existe déjà. De ma propre expérience, malheureusement, c’est plus souvent ce dernier cas que le premier.

Donc, non, vous ne devriez pas réinventer la roue. À moins que vous ne prévoyiez d’en savoir plus sur les roues.

Les métiers du Web nécessitent un constant réapprentissage (« Les bonnes pratiques d’aujourd’hui seront les mauvaises pratiques de demain », disais-je il y a quatre ans). Réinventer la roue, c’est aussi une façon de s’assurer de rester dans la course plutôt que de regarder la roue tourner.

Le système d’identification de Spotify sur PS3

Hier soir, je me suis connecté pour la première fois à Spotify sur ma poussiéreuse PS3, pour voir. Et à ma grande surprise, le système d’identification est plutôt bien pensé. En plus d’un traditionnel formulaire identifiant / mot de passe, l’application présente par défaut l’écran suivant.

(capture d'écran via jmdgame.fr)

(capture d’écran via jmdgame.fr)

On ouvre Spotify sur son smartphone, on lance un morceau, on choisit de le lire sur sa PS3 dans la liste des appareils distants. Et c’est parti.

C’est rapide et ça fonctionne bien. En particulier pour une console où les gestionnaires de mot de passe sont inexistants, et où la moindre saisie au clavier virtuel est un enfer.

L’expérience après une commande

Le mois dernier, j’ai été missionné par le Père Noël pour trouver une poupée « Elsa Chantant » pour ma filleule. Après une recherche sur Google, j’ai rapidement décidé de passer commande sur le site de Toys“R”Us (qui m’assurait d’être livré dans les temps, vu que je ne m’y prenais pas du tout à la bourre…). Je n’avais jamais passé de commande sur le site, et j’ai été très agréablement surpris par la simplicité et la facilité d’achat sur le site. En effet, dès la page panier, le site de Toys“R”Us propose un bouton « Acheter avec Paypal » qui me redirige directement vers Paypal. Je n’ai alors eu qu’à me connecter à mon compte Paypal, et toutes mes coordonnées ont été récupérées. J’ai ainsi pu passer une commande sans avoir à me créer de compte chez Toys“R”Us, ce qui est vraiment pratique dans ce genre de cas où je ne compte pas refaire d’achat.

À ce moment précis, j’étais un client totalement satisfait. Mais je ne sais pas si je peux en dire autant pour tout ce qui a suivi ma commande, hors du site, à travers les différents e‑mails reçus. Et en y repensant, j’ai l’impression que mon expérience est assez représentative de ce qui se passe pour un client après une commande en ligne. Cet article n’a donc rien du tout de personnel contre Toys“R”Us. Je tenais plutôt à partager quelques remarques et réflexions.

Lire la suite

« Regarde toutes les minorités »

Le mois dernier, je suis tombé via Twitter sur cette excellente conférence TED de Maysoon Zayid, une comédienne atteinte de paralysie cérébrale qui raconte son parcours face au ressenti de son handicap. C’est vraiment l’une des meilleures conférences TED que j’ai regardé ces dernières années. Voici quelques morceaux choisis :

S’il y avait des Jeux Olympiques de l’Oppression, je gagnerais la médaille d’or. Je suis Palestinienne, Musulmane, je suis une femme, je suis invalide, et je vis dans le New Jersey. […]

J’ai eu une bourse pour l’Université d’État d’Arizona, parce que je remplissais chacun des quotas. […]

Les gens avec des handicaps constituent la plus grande minorité au monde, et nous sommes les plus sous-représentés dans le spectacle. […]

En l’écoutant, ça m’a rappelé un sketch de Louis C.K. (qui avait fait le tour du web en image) :

J’ai lu quelque chose dans le journal qui m’a vraiment embrouillé l’autre jour. Ça disait que 80 % des habitants de New York sont des minorités…

Est-ce qu’on ne devrait pas arrêter de les appeler « minorités » quand elles représentent 80 % de la population ? C’est vraiment une attitude de blanc, vous voyez. Vous pourriez emmener un homme blanc en Afrique, et il vous dirait « Regarde toutes les minorités qu’ils ont ici ! ».

Cela m’amène à un projet qui m’occupe actuellement. J’ai commencé à travailler sur le lancement d’un nouveau site pour un client. J’ai regardé les statistiques d’un autre site du même client, et voici ce que j’ai vu :

Position Navigateurs Pages vues
1. Microsoft Internet Explorer 11 12,8%
2. Mobile Safari 7.0 10,3%
3. Microsoft Internet Explorer 9 8,2%
4. Microsoft Internet Explorer 10 6,6%
5. Google Chrome 36.0 5,4%
6. Microsoft Internet Explorer 8 5,3%
7. None 4,4%
8. Android Browser 4.0 3,7%
9. Google Chrome 37.0 3,3%
10. Mozilla Firefox 31.0 2,9%
11. Google Chrome 32.0 2,0%
12. Google Chrome 35.0 2,0%
13. Safari (unknown version) 2,0%
14. Google Chrome 31.0 1,7%
15. Mozilla Firefox 30.0 1,6%
16. Google Chrome 33.0 1,5%
17. Mobile Safari 6.0 1,5%
18. Mozilla Firefox 26.0 1,4%
19. Mozilla Firefox 32.0 1,4%
20. Google Chrome 34.0 1,0%

Regardez toutes ces minorités ! Aucune version de navigateur ne dépasse les 13 % d’utilisation. Même constat avec les différentes résolutions d’écran, où la plus courante (1024×768) ne représente que 14,3 % d’utilisation. Et tout ça, c’est sur près de deux millions de pages vues le mois dernier.

Je me suis toujours intéressé de près aux statistiques des navigateurs. Et ça me fascine toujours autant de voir à quel point, en à peine dix ans, nous sommes passés d’un marché monopolistique composé majoritairement d’utilisateurs d’Internet Explorer 6 sous Windows XP en 1024×768, à un marché composé d’un ensemble de minorités.

En juin dernier, Fiona Taylor Gorringe soulevait une question intéressante sur son blog : « 3 % des utilisateurs naviguent avec IE9 et 14 % des utilisateurs ont un handicap. Pourquoi on ne se préoccupe seulement que des premiers ? ». Je ne dirais pas qu’on se préoccupe « seulement » des vieux navigateurs et jamais des utilisateurs avec un handicap. Mais j’ai clairement bien plus de demande explicite pour ces premiers que ces derniers. C’est un peu une « attitude de blanc » appliquée au web. Mais les minorités sur le web ne sont plus forcément celles qu’on croit.

Demander deux fois le mot de passe lors de la création d’un compte

C’est idiot. Et pourtant ce modèle de conception est particulièrement courant sur le web. CDiscount le fait, Vente Privée le fait, Les 3 Suisses le fait, Auchan le fait, Carrefour le fait, Leclerc le fait, La Redoute le fait…

C’est bien simple, j’ai pris la liste des vingt premiers e-commerçants de France sur JournalDuNet, et sur ces vingt sites, seuls deux (Sarenza et Éveil et jeux) ne demandent pas de saisir deux fois le mot de passe lors de la création d’un compte. Il se trouve que j’ai aussi pêché par le passé en faisant exactement la même chose. Et puis j’ai eu l’occasion de réaliser à quel point c’était idiot il y a quelques années en travaillant sur la refonte d’un gros site e-commerce.

Pour se rendre compte à quel point c’est idiot, il faut se poser une question simple mais récurrente dans la conception web : quel problème est-ce que j’essaie de résoudre ?

À la base, l’origine du besoin de ce deuxième champ est totalement saine d’esprit. Ce champ est là pour s’assurer que l’utilisateur n’a pas fait d’erreur en tapant son mot de passe. Ça arrive de faire des erreurs. Et encore plus quand on ne voit pas ce qu’on écrit, comme dans un champ de mot de passe.

Mais du coup, le fait de taper deux fois son mot de passe dans des champs où l’on ne voit pas ce qu’on écrit ne résout pas du tout le problème. L’utilisateur a désormais deux fois plus de chances de faire des erreurs. Et corriger son erreur devient désormais deux fois plus long, puisque sans voir ce qu’il a écrit ni où se trouve l’erreur, l’utilisateur sera obligé de retaper ses deux mots de passe.

Alors comment résoudre ce problème ? Plusieurs solutions existent :

  • Permettre d’afficher le mot de passe en clair. C’est ce qui existe depuis un bail sous OS X, et plus récemment sur Windows 8 (et c’est la solution adoptée chez les deux bons élèves cités en début d’article). C’est extrêmement facile à mettre en place avec jQuery (ici un tutoriel en français chez Creative Juiz).
  • Afficher les lettres en clair au fil de la saisie. C’est le comportement par défaut sous iOS et Android. C’est un peu plus lourd à mettre en place (ici un exemple chez CSS Tricks), et le comportement n’est peut-être pas du meilleur effet sur desktop.
  • Afficher le mot de passe en clair. C’est ce que Jakob Nielsen implorait en 2009 dans son article Stop Password Masking. C’est radical, et à peser avec la sensibilité des informations accessibles derrière le compte. Mais rien n’empêche de combiner cette solution avec la première, en affichant par défaut le mot de passe en clair, et en permettant à l’utilisateur de le masquer si besoin.

Je vais conclure en casant cet XKCD.

Le champ important

Si vous êtes sur un site de vente en ligne et qu’on vous demande deux fois votre adresse e-mail et deux fois votre mot de passe, mais qu’une seule fois votre adresse postale, ça en dit surement beaucoup plus sur la volonté du vendeur à détenir vos informations personnelles plutôt que sa volonté de vous livrer à bon port.