Numabilis Mettre l'informatique au service de ses utilisateurs

Aller au contenu | Aller au menu | Aller à la recherche

De l'utilité d'un site moche

Page d'accueil du site cdiscount

Alors que chacun glose sur la bonne façon de faire un site (meilleures pratiques, accessibilité, ergonomie incitative voire persuasive, etc) et sur l'intérêt de son aspect esthétique en particulier (les internautes jugent un site en 50 millisecondes), les sites faisant les plus fortes audiences ont cette particularité d'être moche ou sans identité ! MySpace, YouTube, CraigList, Quels enseignements pouvons-nous en tirer ?

  • L'absence d'identité visuelle permet de paraître neutre. C'est une position adaptée pour se placer en tant qu'intermédiaire (Google) ou pour se mettre en retrait au profit des productions des utilisateurs (Flickr).
  • Un site moche ou sans identité visuelle peut paraître sérieux. L'austérité du site julbox.net par exemple communique une image de sérieux bien adapté au site professionnel d'un freelance. Selon l'adage populaire, « l'habit ne fait pas le moine » un site moche peut communiquer le message : « ce que nous proposons est tellement génial que nous ne nous sommes pas focalisé sur l'aspect visuel mais sur les contenus et/ou les fonctions. » Attention ! Si le site n'est pas effectivement génial, c'est le bide assuré.
  • Un design moche permet de sélectionner les utilisateurs en dressant une barrière à l'entrée. La nécessité de passer outre l'aspect visuel repoussant élimine une partie des utilisateurs potentiels (les badauds qui arrivent un peu par hasard). Cela permet de créer un esprit communautaire particulièrement efficace pour capter les djeunz et moins djeunz (ou ex djeunz). Le principe est analogue aux modes vestimentaires des ados qui s'enlaidissent aux dires de leurs parents, mais qui se reconnaissent entre eux. Cela peut être une forme de snobisme.
  • Un design moche rend le site sympathique. C'est le côté amateur du site qui communique cette sympathie. Cela peut être adapté pour certains petits sites qui ne peuvent pas rivaliser faces aux géants du marché et qui joue à fond sur ce registre amateur/sympathie.
  • Un site moche peut donner l'impression d'une offre plus large. C'est l'équivalent numérique du bazar ou du souk repris par la foir'fouille (mais pas sur le web). Le foutoir apparent désinhibe l'utilisateur qui n'hésite pas à cliquer, explorer, fouiller, comme ils le feraient sur un marché aux puces ou une foire à tout. Ce faisant, l'utilisateur s'implique d'avantage dès le début.

Bien évidemment, je ne vous encourage pas à faire un site moche (sauf si c'est un concours) mais il ne faut pas tout tabler sur l'aspect visuel. Un site web est un savant dosage de plusieurs disciplines dont l'équilibre dépend des objectifs du site, de sa cible, du produit et/ou service. C'est pourquoi Flash est rarement un bon choix. C'est celui des graphistes qui privilégient l'aspect visuel au détriment du contenu, des fonctionnalités et de l'ergonomie (sans parler du SEO...)

API Google Maps : premières cartes

Je me lance dans la découverte de l'API Google Maps et en profite pour rédiger une série de billets sur le sujet. Voici le premier tutoriel permettant de débuter dont la plupart des informations viennent de ce Google Maps API Tutorial de Mike Williams.

Avant toute chose, il faut disposer d'un compte Google car Google ne donne accès à son service qu'à travers une clé d'identification fournie aux seuls possesseurs de compte Google.

Disposant d'un compte Google, vous devez ensuite, générer la clé d'identification valable pour une URL donnée (et toutes ses sous URL) et qui devra être communiquée à chaque requête. La validation du formulaire vous donne :

Une clé du genre :

ABQIAAAA1x2klffHrefUjPpt9uu-YRSFwTc1YMYqORShagowwmhC3WCZJBTJ7YUSLR4rEGMAxpz2Jm54o0aACw

et le code d'une page permettant de tester le service avec cette clé :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>Google Maps API : coordonnées d'un marqueur <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Maps JavaScript API Example</title> <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA1x2klffHrefUjPpt9uu-YRSFwTc1YMYqORShagowwmhC3WCZJBTJ7YUSLR4rEGMAxpz2Jm54o0aACw" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(37.4419, -122.1419), 13); } } //]]> </script> </head> <body onload="load()" onunload="GUnload()"> <div id="map" style="width: 500px; height: 300px"></div> </body> </html>

Le résultat de cette page ressemble à cet exemple 1. Le code source est assez limpide et simple à modifier pour centrer la carte sur la France avec un facteur de zoom adapté à la taille du div. Pour cela il suffit de modifier la ligne suivante :

map.setCenter(new GLatLng(37.4419, -122.1419), 13);

en fournissant latitude, longitude et facteur de zoom voulus :

map.setCenter(new GLatLng(46.85, 1.75), 6);

J'utilise aussi un div de taille supérieure :

<div id="map" style="width: 650px; height: 650px"></div>

Le résultat est visible sur l'exemple 2.

Plus de détails sur Instant maps with the Google Wizard.

Les autres billets de cette série sur l'API Google Maps :

Critères de choix d'un framework PHP

En tant que chef de projet dans une grosse structure, justifiant son poste par sa capacité à résoudre les problèmes qu'il a lui-même créés, vous êtes décidé à bâtir la prochaine application corporate sur un framework PHP. En plus des critères de choix déjà évoqués, vous veillerez à la présence de fonctionnalités qui permettent aux développeurs de se concentrer sur les particularités de l'application, en les libérant de l'écriture des briques de base :

  • Implémentation du design pattern MVC
  • Présence d'un module de logging
  • Contrôle total sur les URLs
  • Validation des formulaires
  • Gestion des accès aux bases de données
  • Implémentation de l'inversion de contrôle (IoC)
  • Gestion de l'internationalisation
  • Système de caching
  • Authentification et gestion des profils utilisateurs
  • Gestion de la montée en charge
  • Prise en compte de la sécurité (cross scripting, code injection, sql injection, vols de session, etc)
  • Système de communication entre les modules
  • Module Ajax

L'examen d'un certain nombre de framework (Zend Framework, CakePHP, Symfony Project, Seagull Framework, WACT, PHP on TRAX, ZooP Framework, Navigator, CodeIgniter) montre que se sont surtout des usines à gaz. Seul CodeIgniter sort du lot : il est très léger grâce aux modules indépendants, qui ne sont chargés qu'à la demande du contrôleur, mais il a le défaut de la rigidité des URLs. LE framework MVC est donc plus une collection de composants utilisables au sein d'un micro container. C'est la démarche de CodeIgniter et de Zend Framework, bien que ce dernier soit un peu plus complexe.

L'utilisation d'un framework nécessite toujours un investissement pour former les développeurs. Cet investissement sera d'autant plus important que le framework sera complexe. Cette complexité entrainera également des frais plus élevé de maintenance et d'évolution. Dans bien des cas, cet investissement est beaucoup plus rentable s'il est effectué dans le développement d'un micro-noyau maison...

Dites non au marketing et laissez vos utilisateurs tranquilles

Lors de la réalisation d'un site web, le marketing impose souvent de demander plus d'informations personnelles que nécessaires dans les formulaires d'inscription et ceci afin de mieux qualifier la cible (ou un truc dans ce genre). C'est généralement contre productif, et en voici les raisons que donne Steve Krug dans son livre « Je ne veux pas chercher » (« Don't make me think » en version originale) :

  • Baisse du nombre de formulaires remplis. L'utilisateur s'apprête à remplir un formulaire pour obtenir quelque chose (abonnement à la lettre d'actualité, téléchargement d'un rapport, inscription au site, etc) et se retrouve face à un long formulaire, auquel il ne s'attendait pas. L'opération qui ne devait prendre que quelques instants se transforme en une opération fastidieuse et il y a toute les chances que celui-ci abandonne.
  • Récupération de données fictives. La demande d'informations sans rapport avec l'objet du site est suspect. L'utilisateur n'a alors plus aucun scrupule à fournir des informations totalement exotiques. Combien de Jean-Claude Van Damme avez-vous par exemple dans votre fichier client ?
  • Ternissement de l'image du site. En demandant des informations non nécessaires à la réalisation de la tâche, l'utilisateur conclue que vous en avez besoin pour un autre usage, caché celui-ci. Il se méfie de vous et votre image en prend un coup !

Il est même conseillé de :

  • Ne demander que les informations nécessaires à la réalisation de la tâche. Si certaines ne sont pas évidentes, il faut expliquer pourquoi vous avez besoins de cette donnée.
  • Eviter de demander des informations optionnelles. Cela allonge le formulaire et réduit donc le nombre de réponses, sans augmenter la qualité.
  • Expliquer précisément ce que l'utilisateur reçoit en échange. Il est essentiel que l'utilisateur sache ce qu'il obtiendra en échange, d'une part pour l'inciter à remplir le formulaire, d'autre part pour qu'il n'ait pas le sentiment de s'être fait avoir s'il est déçu. Par exemple, montrez un échantillon du rapport que l'utilisateur souhaite télécharger.

En attendant d'essayer cet argumentaire sur la responsable marketing de mon projet, avez-vous d'autres arguments ?

Web 2.0 : fini la simplicité ?

Après la phase de démarrage, les sites web 2.0, caractérisés par la simplicité de leur ergonomie, évoluent et s'enrichissent de nouvelles fonctionnalités. On observe le même phénomène que pour les logiciels bureautiques : l'inflation fonctionnelle au détriment de l'ergonomie. Si ce modèle a permis la domination du plus offrant dans le monde des logiciels bureautiques, il n'est pas certain qu'il en soit de même pour le web.

Lors de sa sortie, netvibes était relativement simple. Au fil des évolutions, les fonctionnalités se sont multipliées, de sorte que l'application est souvent considérée comme un truc de geek. Conscient du problème, la start-up a souhaité simplifier le premier contact avec sa nouvelle version, Coriander : « Même si nous faisons tout notre possible pour faire de l'utilisation de Netvibes une expérience aussi simple et accessible que possible, certains le trouvent toujours un peu difficile à appréhender. C'est pourquoi nous avons ajouté de nouveaux outils. » (Lancement de Coriander: étape 2 !). Cette démarche, qui consiste à ajouter des fonctionnalités pour simplifier la prise en main est très étonnante ! Elle est même contraire à la première loi de la simplicité de John Maeda : « Réduction : pour atteindre la simplicité, le mieux est de procéder par réduction méthodique « (The laws of simplicity).

Pour Maeda, la première méthode, et la plus efficace, pour simplifier un système est d'en supprimer le plus de fonctionnalités possible, en trouvant le parfait équilibre entre simplicité possible et complexité requise. Après avoir supprimé tout ce qui pouvait l'être, le processus se poursuit en miniaturisant, en cachant et en incorporant (embody) les fonctionnalités restantes. C'est le chemin suivi par Google contrairement à Yahoo!, comme le montre la comparaison de leur page d'accueil l'année de leur lancement (1996 pour Yahoo!, 1998 pour Google) et aujourd'hui :

La grande attractivité des sites web 2.0 provient notamment de leur simplicité ergonomique. Comment vont-ils évoluer ? En suivant le modèle Yahoo! comme le fait netvibes (et la sortie des Univers ne fait que conforter cette idée) ou en suivant le modèle Google. La sortie de la version web de Photoshop sera sans doute l'occasion de voir comment réagiront toutes les solutions d’éditions de photos en ligne qui se caractérisent par leur très grande simplicité. Toutes ces start-ups vont-elles avoir des soucis, comme le pense TechCrunch ? N'est-il pas à craindre qu'elles développent une foultitude de fonctionnalités pour pouvoir concurrencer Adobe au détriment des utilisateurs dont probablement 95 % n'utilisent que 5 % des fonctionnalités ?

C'est possible. Mais le web 2.0 n'est pas mort pour autant ! D'une part, parce que le nombre de nouvelles start-ups qui se lancent chaque mois, y compris sur des créneaux déjà fort occupés, assure le renouvellement des plate-formes, toujours simples lors de leur lancement. D'autre part, l'utilisateur n'ayant pas acquis un produit, comme il achetait son logiciel bureautique, il n'éprouve pas forcément le besoin d'en avoir pour son argent. En cas d'hyper-inflation fonctionnelle, certains utilisateurs, un peu moins geek que les autres iront voir ailleurs, et les nouveaux utilisateurs potentiels se rabattrons sur une solution plus simple.

Un site web pour quoi faire ?

Question surprenante, tant se doter d'un site web est une évidence pour la très grande majorité des entreprises. Pourtant bien peu se la pose au moment de la conception du dit site. Tout projet web devrait commencer par l'élaboration d'une stratégie internet qui consiste à définir la façon dont l'entreprise va intégrer internet dans son développement. Même pour une entreprise de petite taille, il est possible de définir une stratégie à faible coût en se posant les bonnes questions :

  1. Quel est l'objectif du site ? Cela peut être : augmenter le nombre de prospects, augmenter ses ventes, etc. Dans tous les cas, un système de mesure du rendement du site doit être mis en place : nombre d'inscriptions à la newsletter, nombre de demandes d'information, nombre de commandes provenant du site (via un formulaire, un numéro de téléphone particulier, ou directement sur le site de e-commerce), etc.
  2. À qui s'adresse le site ? Le ou les profils des utilisateurs (catégorie professionnelle, habitude de l'ordinateur, etc) doit être connu, car on ne s'adresse pas de la même façon à des adolescents qu'à des seniors, par exemple.
  3. Quelles sont les attentes des utilisateurs ? Il est indispensable de savoir ce que les visiteurs du site veulent : obtenir une information spécifique ? Commander ? Acheter ? Réclamer ?
  4. Que fais la concurrence ? Faire une étude concurrentielle est indispensable afin de copier ce qui est bon, éviter ce qui est mauvais et améliorer ce qui peut l'être.

Les réponses à ces questions permettent d'établir une vision du site conciliant les objectifs de l'entreprise avec les besoins des utilisateurs. De là découlera tout le reste : contenu, ergonomie, personnas et scénarios, graphisme, etc.

Un site web ne se résume pas à quelques pages HTML réalisées en un week-end par le petit neveu sous FrontPage. Même un site-vitrine doit être pensé et mis au service du développement de l'entreprise. Le site est souvent la première vitrine de votre entreprise : une mauvaise impression, une information difficile à trouver et le prospect part chez la concurrence... à un clic de chez vous !

Autre ressources intéressantes sur ce sujet :

16 mauvaises raisons de ne pas se lancer

Photo d'illustration de troyscanon

Paul Graham, dans son dernier essai, Why to Not Not Start a Startup, répond à 16 mauvaises raisons généralement avancées pour ne pas se lancer dans l'aventure de la création d'une jeune pousse (startup).

  1. Trop jeune. Seule la maturité compte : certaines personnes sont parfaitement capables de se lancer à 18 ans, tandis que d'autres ne le seront probablement jamais.
  2. Trop inexpérimenté. Le moyen le plus efficace et le plus rapide pour acquérir de l'expérience est... de lancer une startup.
  3. Pas assez déterminé. La détermination est essentielle à la réussite, mais comment savoir si vous ne l'êtes pas assez ? Il est même probable qu'elle grandisse en même temps que vous avancez dans la réalisation.
  4. Pas assez intelligent. si vous pensez que vous n'êtes pas assez intelligent pour vous lancer, c'est probablement que vous êtes assez intelligent pour vous lancer. A moins d'écrire un logiciel type Mathematica, il n'est pas nécessaire d'être spécialement intelligent pour créer une entreprise.
  5. Je ne connais rien aux affaires. La connaissance du monde des affaires est totalement inutile pour créer une startup. La seule chose importante est de savoir comment faire un produit que les gens veulent. Il sera toujours tant d'apprendre comment faire des affaires lorsque les gens voudront effectivement votre produit.
  6. Pas de co-fondateur. C'est effectivement un problème que de sans lancer seul. Mais si vous n'en avez pas : trouvez-en un ! S'il n'y en a pas là où vous habitez allez en chercher un là où il y en a. Si personne ne veut travailler avec vous sur votre idée, changer d'idée !
  7. Pas d'idée. Aucune importance : la plupart des startup change d'idée en cours de route. Ce qui importe le plus dans la réussite d'un projet, c'est le porteur du projet pas l'idée. Un mauvaise idée portée par quelqu'un de brillant réussira, alors qu'une idée géniale portée par un nul ne donnera rien. Si vous voulez vraiment trouver une idée : pensez à ce qui manque dans votre vie quotidienne et trouvez un produit pour combler ce manque.
  8. Plus de place pour une startup supplémentaire. Pourquoi y-aurait-il une limite au nombre de startup pouvant exister ?
  9. Une famille à charge. Cette raison est valable. Ce qu'il faut faire : se lancer dans le conseil pour graduellement se tourner vers le produit. Une autre solution est de rejoindre une startup déjà existante.
  10. Indépendamment riche.. Si vous êtes riche, chercher la motivation ailleurs : travailler avec des gens passionnant par exemple qui, eux, ont besoin de travailler pour payer leurs factures.
  11. Ne pas être prêt pour s'engager. Si vous êtes jeune et que vous voulez conserver votre indépendance : parfait. Lancer une startup nécessite un engagement totale pour 3 à 4 ans (beaucoup moins si vous vous plantez). Mais si vous vous apprêtez à prendre un emploi dans une société, ayez bien conscience que vous vous engagez certainement pour une période au moins aussi longue. Au bout du compte vous regretterez peut-être d'avoir perdu votre temps dans cette boîte plutôt que d'avoir créer votre startup.
  12. Besoin d'une structure. Certaines personnes, la majorité peut-être, ont besoins d'être encadrées. Si tel est votre cas, vous ne pourrez jamais travailler dans une startup et encore moins en créer une. Comment savoir si vous avez un esprit suffisamment indépendant ? Si vous vous raidissez à la simple pensez que vous ne le seriez pas, c'est que vous l'êtes probablement.
  13. Peur de l'incertitude. Certaines personnes ont besoins d'être rassurée sur l'avenir. Si tel est votre cas, sachez que si vous lancer une startup, la probabilité est grande que vous vous plantiez ! Espérez le meilleur, mais attendez-vous au pire.
  14. Ne pas réaliser ce que vous évitez. Les grosses boîtes faisant des trucs chiants, en prenant un boulot dans l'une d'elle vous aurez à travailler sur des trucs chiants. Faciles, mais chiants. cela peut paraître sympa d'être payé pour faire un boulot facile, mais le côté chiant le rendra rapidement très chiant. Dans une startup, cela n'arrive pas.
  15. Vos parents veulent que vous soyez docteur. Les parents sont toujours plus conservateurs pour leurs enfants que pour eux-mêmes afin de les protéger. D'autre part, il sont toujours en retard d'une guerre. Si être docteur assurait un bon revenu et un statut social prestigieux à leur époque, ce n'est plus le cas. Vous en voudraient-ils d'être plutôt le Steve Jobs de demain ?
  16. Un boulot est le choix par défaut. Les choix par défaut sont très puissants, justement parce qu'ils opèrent sans conscience de choix. Mais il est probable que le choix par défaut d'aujourd'hui ne soit pas celui de demain.

Vous n'avez maintenant plus aucune excuse pour ne pas vous lancer... Facile à dire !

Blogasty et les limites du web 2.0

Blogasty est un site de promotion des blogs de qualité agrégeant des fonctionnalités de digg-like et de réseau social. Sa réalisation, due à Christophe Lefevre, est excellente et son originalité est de mettre en place un mécanisme privilégiant les blogueurs de qualité plutôt que les blogueurs hyperactifs. Après quelques jours d'utilisation du site, en béta privé (merci Philippe pour l'invitation), qui évolue en permanence, force est de constater qu'il présente et présentera sans doute toujours des limites, communes à tous les sites web 2.0.

  • Opacité du mécanisme de notation. Le secret de l'algorithme de notation va à l'encontre des promesses de démocratie et de prise de pouvoir par les utilisateurs. De cette opacité naît un sentiment d'insécurité (toute relative) car, ne sachant pas ce qu'il faut faire pour être un bon élève, le statut du blogueur au sein de la communauté peut être remis en cause à tout moment, suite à un faux pas par exemple. Et cela d'autant plus que l'algorithme est amené à changer régulièrement pour le perfectionner ou limiter les tricheries.
    Thomas s'interroge aussi et critique le système de classement.
  • L'intelligence collective et la qualité. Ce mécanisme met en œuvre une forme d'intelligence collective supposée sélectionner les billets de qualité. Or il ne fait que sélectionner les billets les plus populaires. En effet, pour qu'un billet soit considéré comme étant de qualité, il faut qu'il y ait suffisamment de monde pour le reconnaître comme tel. Si j'écris un billet de qualité sur un sujet pointu, il n'y aura personne pour le remarquer. Typiquement, les billets people et sport sont systématiquement sélectionnés sur les sites grand public. Ce genre de site évolue donc naturellement pour se concentrer sur un sujet particulier (la technologie souvent) permettant de créer une communauté dont tous les membres ont le sentiment d'appartenir à la communauté.
  • Le réseau social comme communauté. De plus en plus de site intègrent des fonctionnalités de réseau social pour matérialiser la communauté. Mais après avoir ajouter quelques amis à son profil et s'être vu ajouté comme ami par d'autres utilisateurs, le lien social s'arrête bien souvent là...

Ces limites peuvent-elles être dépassées ? Je ne sais pas. Mais il serait vraiment intéressant d'essayer. Voici quelques pistes de réflexion :

  • Divulguer l'algorithme de notation afin que chacun puisse le commenter et l'améliorer. Peut-on ainsi trouver un algorithme éradiquant la tricherie ?
  • Rendre possible la constitution de plusieurs communautés autour de centres d'intérêt divers.
  • Permettre la personnalisation de la page d'accueil en autorisant de filtrer/agréger les billets issus de plusieurs catégories (celles qui m'intéressent).
  • Suggérer des billets sur la base d'un algorithme de recommandation comme celui d'amazon.
  • Mettre en place des outils permettant de faire vivre la communauté : espace d'échanges et de débats.

Blogasty est encore très jeune mais déjà très prometteur. C'est sans aucun doute lié à la personnalité de son auteur qui semble ne jamais perdre de vue le but du site, la promotion des billets de qualité, et qui met en place les outils adaptés pour l'atteindre. Attitude qui peut sembler évidente mais qui n'est pas générale : bien souvent on met en place un outil en espérant que les gens s'en servent (ou en les forçant à s'en servir dans l'industrie).

ÉDITION 19/04/2007 : Dharmesh Shah a publié un excellent article sur On Startups : The One Thing Wrong With Social Content Sites Like Digg. Ce qui pose problème sur ce genre de sites : le contenu dont le niveau est lamentable. Sa solution : la multiplication des digg-like agrégeant une petite communauté, car centré sur un thème précis...

L'art de créer une communauté 2.0 : 8 conseils pratiques

Guy Kawazaki nous donnait des conseils très généraux dans l'art de créer une communauté. Le récent ratage du lancement de la nouvelle version du site USA Today montre qu'une communauté n'est pas toujours docile et ouverte au changement. Voici quelques conseils pratiques pour favoriser l'émergence d'une communauté, via le fameux UGC (User Generated Content, contenu généré par l'utilisateur).

Jakob Nielsen rappelle que dans la plupart des communautés en ligne, 90 % des utilisateurs ne participent pas du tout, 9 % participent un peu et seulement 1 % participent pour la quasi totalité. Ces inégalités de participation ne peuvent pas être supprimées mais il est possible de les réduire en amenant progressivement les badauds (lurkers) à participer, en suivants les conseils habituels d'ergonomie appliqués au 2.0 :

  1. Hiérarchiser les fonctionnalités. N'oubliez jamais que 90 % de vos utilisateurs viennent pour les quelques fonctionnalités au cœur de votre site. Or ce sont eux qui vous font vivre : elles doivent donc être mises en valeur. Par exemple, si vous avez un site d'information, il doit faire la part belle à... l'information : lecture aisée, recherche simple, navigation entre les divers articles simple et intuitive, bouton d'impression de la page bien visible, etc. Placez ensuite les fonctionnalités peut impliquantes (noter, voter, envoyer par mail, etc). Les fonctionnalités plus impliquantes (commenter, débattre, etc) doivent être visibles mais plus discrètes, ou du moins ne pas gêner les fonctionnalités premières de lecture, de recherche et de navigation dans l'information.
  2. Simplifier l'action de contribuer. Vous aurez, par exemple, une participation plus importante à un système de notation des articles s'il suffit d'un clic sur des petites étoiles placées après l'article que s'il est nécessaire de remplir un formulaire sur une page séparée. Faites en sorte que la participation soit simple et ne soit pas bridée par des barrières inutiles. En particulier, réfléchissez bien aux fonctionnalités qui nécessite un compte utilisateur (dont la création devra également être simplifiée en demandant le minimum de renseignements).
  3. Faite de la participation un effet de bord. Amazon, par exemple, gère un système de recommandations basé sur les achats des utilisateurs sans qu'ils aient à s'impliquer explicitement.
  4. Favoriser l'édition plutôt que la création. Afin d'éliminer l'angoisse de la page blanche, créez des pages ayant déjà un contenu (généré automatiquement) et que les utilisateurs pourront éditer, plutôt que de proposer la création d'une nouvelle page vierge, toujours anxiogène.
  5. Récompenser (mais pas trop) les contributeurs. Toute contribution doit être récompensée afin que le contributeur sente qu'il appartient à la communauté. Il doit voir que son action a un effet visible : publication du commentaire, incrément du nombre de vote, mise à jour de la note, etc. L'utilisation d'Ajax est très pertinente sur ces fonctionnalités, car l'utilisateur voit le résultat de son action en temps réel. Bien sûr, des systèmes de récompense plus lourds peuvent être mis en place pour des contributions importantes et régulières (système de karma, de responsabilité au sein de la communauté, voire de rétribution).
  6. Promouvoir les contributeurs de qualité. Afin de conserver un contenu de qualité, indispensable si vous souhaitez conserver les 90 % invisibles de votre audience, la promotion (récompense importante) doit être basé sur la qualité plutôt que sur la quantité. Vous favorisez ainsi les contributeurs occasionnels de qualité par rapport aux contributeurs frénétiques médiocres.
  7. Protéger la communauté des spammeurs et des trolls. Ne pas le faire abaisse la qualité globale du site, ce qui déplaît aux 90 % silencieux, et fini par rebuter les contributeurs honnêtes qui ne se sentent plus en sécurité dans un espace convivial. Bannissez sans pitié tout les spammeurs et tous les trolls.
  8. Demander l'avis des utilisateurs. Afin de gérer au mieux le changement (l'introduction de nouvelles fonctionnalités), il ne faut pas hésiter à consulter son lectorat en amont du changement, sur des pages de tests en beta, et après la sortie en production. Posez également des questions ouvertes sur les fonctionnalités qu'ils souhaitent comme Dell le fait via son digg-like IdeaStorm.

En transformant une simple visite en expérience utilisateur vous rendrez votre site web collant et en assurerez ainsi le succès. Mais n'oubliez pas que les inégalités de participation fournissent une image biaisée de la communauté, dont près de 90 % des membres ne s'exprimeront jamais.

Le ratage USA Today

La sortie de la nouvelle version du site USA Today, intégrant toute une panoplie de fonctionnalités communautaires web 2.0 a susciter de nombreuses réactions. Les lecteurs habituels la rejettent catégoriquement, tandis que la blogosphère se demande si un journal peut être un réseau social ou si la sortie de cette version est trop tôt, trop 2.0.

Je pense que cette version de USA Today est l'aboutissement d'une très mauvaise gestion du projet de la part de la maîtrise d'ouvrage. Poussé par la crise de la presse quotidienne, le journal américain semble avoir succombé au buzz du web 2.0 et aux sirènes des réseaux sociaux dont les limites sont maintenant bien connues tant pour les sites d'information communautaires que pour le journalisme citoyen. Comme le fait remarquer Cédric Motte : « il est marrant de constater qu'ils ont "imposé" cette nouvelle mise à jour sans réellement consulter ses lecteurs. Ce qui est un joli pied de nez aux services sociaux qu'ils ont mis en place ;o) ». En se focalisant sur la technologie USA Today a fini par oublier l'utilisateur comme Netscape l'a déjà fait et continue a le faire. Ils ont oublié que seul 1 % des utilisateurs participent activement tandis que 90 % ne participent pas du tout. En voulant satisfaire 1 % de leurs utilsateurs ils en ont rejetté 90 %...

Ils ne faut jamais oublier les fondamentaux :

  • Réaliser un site répondant en priorité aux préoccupations principales de 90 % des utilisateurs : obtenir et lire de l'information de qualité.
  • Mettre à la disposition des utilisateurs des outils adaptés aux nouveaux modes de consommation de l'information (annotation, échanges privés, commentaires, etc).
  • Encourager la participation des utilisateurs via une ergonomie incitative, en se rappellant les facteurs de succès des sites web 2.0.
  • Créer une communauté d'utilsateurs passionnés via des outils spécifiques accessibles aux utilisateurs les plus avertis et ne gênant pas les autres utilisateurs (l'erreur faite par USA Today).

À partir de là, tout est permis dans les fonctionnalités communautaires, tant que la limite entre les journalistes et la communauté reste bien distincte. Rien n'empêche ensuite les journalistes de puiser dans la production de la communauté pour extraire de l'information qui sera filtrée, vérifiée, synthétisée et diffusée pour le plus grand nombre.

Le ratage de USA Today particpera sans doute de la descente vers la vallée de la désillusion que le web 2.0 connaît actuellement. Mais est-ce un mal ? Cela accélère le mouvement vers la phase de maturité et laisse le champs libre pour des sites respectueux de son lectorat...

Mise à jour 06/07/2007 : Le ratage USA Today : 4 mois après

L'avenir de la presse

Photo d'illustration de perldude

La sortie du rapport de Marc Tessier, La presse au défi du numérique (71 pages, PDF, 586 Ko) est l'occasion, outre le fait de constater que le gouvernement actuel reste dans sa faille spatio-temporelle, de montrer que le numérique est l'avenir de la presse.

La presse, quotidienne en particulier, n'en fini plus de s'alarmer de la crise, de fustiger les menaces pesant sur l'information et de dénoncer la mascarade du journalisme citoyen. Est-ce justifié ?

Nous sommes dans la société de l'information où les médias sont omniprésents. S'il y a crise ce n'est donc pas celle des médias ou de l'information. Selon l'Association mondiale des journaux (AMJ), la diffusion de la presse dans le monde a progressé de 9,95 % entre 2000 et 2005 (Le Monde via Choingmedia). S'il y a crise ce n'est donc pas celle de la presse. L'AMJ montre que cette progression est essentiellement due aux quotidiens gratuits (+137 %). La crise concerne donc avant tout le presse quotidienne payante, c'est à dire un modèle économique.

Dans The Vanishing Newspaper (dont seule la page 201 présente un réel intérêt), Philip Meyer résume bien la situation : les journalistes ont oublié quel était leur métier. Il pensent que leur métier est de vendre du papier, alors qu'en fait il est de diffuser de l'information. La réaction des journaux face à la baisse du lectorat est immuable : baisse des coûts se traduisant par une baisse de la qualité et augmentation du prix, ce qui provoque immanquablement une baisse un peu plus prononcée du lectorat...

La presse doit comprendre que les modes de consommation de l'information ont changé avec l'arrivée du web et qu'elle doit s'y adapter :

  • Augmenter la qualité des articles papiers sous forme d'analyses et de synthèses
  • Diminuer le prix de la publication papier
  • Augmenter le prix des publicités du papier (justifié par l'augmentation de la diffusion)
  • Transférer les articles brefs et factuels sur un site web, qui ne soit pas une simple copie de la version journal (contrairement à ce que fait et revendique le Monde Diplomatique
  • Fournir des outils aidant le lecteur dans sa consommation d'information numérique

Ce dernier point constitue l'enjeu du prototype que nous réalisons actuellement à l'AFP.

Photo d'illustration de inju

La presse doit également comprendre que les blogueurs et autres journalistes citoyens loin d'être des concurrents représentent une nouvelle source d'information quasiment inépuisable. Grâce à la technologie, chacun peut être producteur d'information factuelle en prenant une photo ou en relatant sur son blog un événement dont il a été témoin. Chacun peut également être producteur d'information analytique dans son domaine d'expertise. Mais comme toute technologie, celles de l'information peuvent produire le meilleur comme le pire. C'est donc ici, que le journaliste professionnel retrouve pleinement son rôle : celui de séparer le bon grain de l'ivraie, faire un véritable travail d'investigation pour analyser et synthétiser les données avant de les diffuser sous une forme compréhensible et digeste à son lectorat. Cela nécessite donc que les journalistes ne soient plus des techniciens de l'information se contentant de retranscrire les dépêches AFP ou les communiqués en provenance des agences de relation presse ou du gouvernement.

Enfin, bien que les blogueurs et autres journalistes amateurs puissent s'adresser directement au public, ils doivent se faire connaître et fournir un contenu reconnu comme étant fiable et de qualité. Seuls quelques personnes peuvent atteindre ce statut. Un autre problème est que si un lecteur décide de s'informer exclusivement par les blogs, il doit faire un travail constant de recherche de blogs pour les ajouter à son agrégateur de flux. Cette dispersion des sources d'informations est clairement un atout pour les sites de presse connus et reconnus. Ils constituent des points de centralisation d'une information de qualité accessible à tous.

Si les journalistes accepte que leur métier n'est pas de vendre du papier mais de diffuser de l'information qu'il auront produit par analyses et synthèse d'information obtenues à partir de sources toujours plus nombreuses et variées, leur avenir est assuré. En abandonnant son édition papier pour ne conserver que son édition numérique, le Post-och Inrikes Tidningar fondée en 1645 ne s'est sans doute pas trompé et restera encore longtemps le plus vieux journal au monde.

Comment sauvegarder automatiquement une base de données MySQL à distance

Lorsque son site est hébergé sur un serveur auquel on n'a pas d'accès SSH (Free par exemple), il est quand même possible de sauvegarder sa base de données MySQL automatiquement et à distance.

Pour cela il faut disposer :

  • de phpMyAdmin installé sur le serveur (c'est le cas chez Free),
  • de Wget installé sur le poste à partir duquel doit se faire la sauvegarde.

Il suffit alors d'exécuter la commande :

wget --http-user=USER --http-passwd=PASSWORD --post-file=export.txt -O FICHIER http://phpmyadmin.free.fr/phpMyAdmin/export.php

En remplaçant USER par votre login, PASSWORD par votre mot de passe et FICHIER par le nom du fichier dans lequel vous souhaiter sauvegarder votre base. export.txt est un fichier contenant les paramètres de la requête envoyée au serveur :

what=sql&asfile=sendit&export_type=server&sql_structure=structure&sql_type=insert&sql_data=data&auto_increment=1&use_backquotes=1

Selon le type d'export voulu, il faudra fournir les bons paramètres. Afin de les déterminer précisément, l'extension Live HTTP Headers pour Firefox est d'un grand secours. Pour automatiser la procédure, il suffit d'ajouter la commande à la liste des tâche à lancer par cron (ou son équivalent sur un autre OS).

Édition 02/08/2007 : Lionel, un lecteur me signal la possibilité de passer par le service de backup de Free :

wget http://sql.free.fr/backup.php --post-data="login=USER&password=PASSWORD&check=1&all=1" -O backup.sql.gz

Merci Lionel.

6 leçons pour les startups en 2007

Jawad Shuaib, le créateur du réseau social pour geeks Shuzak.com nous livre 6 leçons pour les startups en 2007.

  1. Diviser et conquérir, se différencier ou mourir :
    Plus un marché est petit et moins il est intéressant de concurrencer les acteurs dominants. Par conséquent, soyez les premiers sur une niche afin de décourager la concurrence. Une niche se crée en spécialisant une marché plus vaste. Il existe un réseau social pour les jeunes mères au foyer, créez en un pour les jeunes mères au foyer habitant la banlieue est de Londres !
  2. D'une manière générale, plus la niche est petite, plus les utilisateurs sont fidèles.
    « Si toute personne exposée à un produit l'apprécie, le produit n'aura pas de succès... La raison qui fait qu'un produit que "tout le monde apprécie" échouera est que personne ne "l'aime". La seule chose qui prédise le succès est la passion, même si seulement 10 % des clients potentiels l'ont. » (Scott Adams, Dilbert Blog)
    Les produits Apple, par exemple, ont toujours eu une petite communauté d'utilisateurs passionnés évangélisant autour d'eux, comme nous l'a appris Guy Kawasaki dans l'art de créer une communauté.
  3. Focus :
    Comme je vous l'écrivais dans mon précédent billet, il faut savoir garder le focus. Il est impératif de rester focalisé sur sa niche sans chercher à se diversifier, pour conserver cette communauté de passionnés.
  4. Aucun petit marché n'est assez petit :
    Les utilisateurs du web étant tellement nombreux, qu'aucune niche n'est trop petite pour ne pas être rentable.
  5. Pensez simple.
    Ayez toujours en tête le principe du rasoir d'Occam, à savoir que de deux solutions, préférez toujours la plus simple. Cela signifie, que votre produit doit être simple à utiliser, en éliminant toutes les fonctionnalités superflues. Cela implique donc de rester focaliser sur le problème que résout votre produit pour ses utilisateurs du cœur de la cible (les passionnés de la niche).
  6. Les soubresauts de la bulle.
    La bulle internet marque encore le monde du web, et moins d'argent est injecté dans les startups. Mais il n'y a pas de secret : la plupart des jeunes pousses périront, et la principale cause d'échec est de croire qu'il faut s'attaquer au marché entier.

La meilleure façon d'aboutir au succès n'est pas de se lancer sur un énorme marché, en se disant « si je prends 1 % du marché, je suis le roi du pétrol ! » mais de créer un marché de niche et de le conquérir le premier. Mieux vaut 100 % d'une niche représentant 2 % d'un marché plus gros, que 1 % de ce dernier !

Un plan d'affaire pour quoi faire ?

Le Wall Street Journal s'interrogeait sur l'utilité d'avoir un Plan d'affaire (business plan). En effet, une étude (.doc) récente n'a pas trouvé de différence statistique de succès entre des jeunes pousses (start-up) ayant un plan d'affaire et celles n'en ayant pas. Je pense, pour ma part, que se doter d'un plan d'affaire est indispensable.

D'abord, la rédaction de ce document est l'occasion de mettre ses idées au clair en les formalisant, car si « ce qui se conçoit bien s'énonce clairement », ce qui s'énonce confusément se conçoit mal... C'est une aide à la conception et à la définition du projet.

Ensuite, il permet à toute l'équipe de partager la même vision du projet et ainsi de garder le focus sur le but.

Cependant, sa rédaction doit être rapide et aboutir à un document léger (10 à 20 pages). Et pour nous aider dans cet exercice le bon docteur Kawazaki nous enseigne le zen du Business Plan. Tout l'art de rédiger un plan d'affaire est d'évaluer sincèrement son projet, sans se mentir, et d'y renoncer s'il s'avère par trop bancal avant d'être ruiné...

Framework PHP MVC : pourquoi s'en passer

Beaucoup plus populaire que les conteneurs implémentant l'inversion de contrôle, les frameworks MVC (Model-View-Controller ou Modèle-Vue-Contrôleur) en PHP sont légion. Ils participent de cette attente irrationnelle du monde PHP envers la programmation orientée objet et son corollaire, le framework. Seul Rasmus Lerdorf semble percevoir le comique de la situation avec son no-framework PHP MVC framework. Avant de vous décidez de démarrer votre prochain projet avec un tel framework, considérez d'abord les inconvénients suivants :

  • Une application moins performante. Les diverses couches d'abstraction et la panoplie impressionnante de composants accompagnant tout framework en font un mécanisme lourd, consommant beaucoup de ressources matérielles. La mise en production peut alors s'accompagner de l'achat, en urgence, d'un système de cache performant pour remédier aux performance déplorables. Rappelons-nous des difficultés de lancement du GéoPortail ou plus récemment les débuts difficiles du comparateur de prix des carburants du Minefi.
  • Coût de développement accrus. La complexité du framework induit des salaires plus élevés pour les développeurs spécialisés en raison de leur rareté ou des frais de formation (ou de perte de productivité) pour les autres développeurs. Ajoutez les frais de formation à un nouveau langage de script si le framework s'appuie sur un moteur de template style Smarty, très à la mode chez les développeurs PHP. Ces moteurs n'ont aucune utilité (si ce n'est de complexifier le développement) comme le montre bien l'article PHP for designers de Matt Mullenweg (co-fondateur et développeur principal de WordPress). Seule compte la séparation des préoccupations.
  • Une application bridée. Une autre conséquence de la complexité d'un framework est la difficulté de l'étendre ou de l'adapter à ses besoins particuliers.
  • Une application ne répondant pas aux besoins des utilisateurs. La plupart des framework font des choix radicaux en termes de conception grévant les fonctionnalités de l'application. L'exemple le plus simple : l'URL rewriting. L'URL d'une page est généralement de la forme http://my.web.com/module/action/params pour invoquer l'action action du module module. Aussi lorsque l'on souhaite créer un site web dont les URLs représentent l'architecture fonctionnelle du site, cela s'avère très compliqué ! Ainsi au lieu d'avoir l'URL http://www.numabilis.com/services/realisation_de_sites_web on a quelque chose comme http://www.numabilis.com/article/view/id/35. Le module de réécriture fourni est généralement insuffisant : les sections Services et Réalisations étant toutes deux constituées d'articles, la réécriture ne permet pas de distingués les articles de ces deux sections ! Comme souvent les couches techniques imposent des contraintes fortes sur le fonctionnel.

Les frameworks PHP, dans leur très grande majorité, souffrent d'une trop grande complexité. Ils singent le monde Java (voir les implémentations PHP de Struts : Phrame, PhpMVC ou Studs) en faisant du tout objet avec force renfort de template engine et de mod_rewrite.

Par conséquent, sauf si vous êtes chef de projet dans une grosse structure, dont le poste n'est justifié que par votre capacité à résoudre les problèmes que vous avez vous même créés, vous devriez vous passer d'un tel framework.


Dessin humoristique Veni Vidi Wiki
Veni Vidi Wiki (dessin de Brad Fitzpatrick)

Entrepreneuriat 2.0 : 7 notions à connaître avant de se lancer

Les fêtes de fin d'année sont l'occasion, en plus de ripailler et de se déguiser en gros bonhomme rouge et blanc, de discuter avec des gens normaux. Des gens pour qui Ajax est une marque de nettoyant WC et buzz un ranger de l'espace : je veux parler des membres de sa famille. Notre vision du monde est biaisée : certains concepts sont tellement assimilés que nous pensons que tous le monde les connaît. Mes récentes discussions familiales m'ont permis de mettre en évidence 7 notions participant, d'une certaine façon, à la définition du web 2.0 que tout entrepreneur 2.0 (entrepreneur numérique) devrait maîtriser avant de se lancer :

  • La courbe de l'esbroufe (Gartner hype cycle). Cette courbe représente, dans un repère dont les axes sont le temps en abscisse et la visibilité d'une technologie en ordonnée, le chemin que parcours toute technologie nouvelle durant sa diffusion. Tout entrepreneur doit être lucide sur les possibilités offertes par la technologie indépendamment des effets de mode (dont le paroxysme est atteint au sommet du pic des attentes exagérées (Peak of Inflated Expectations). De même, ce n'est pas parce que la technologie est en plein phase de désillusions (Trough of Disillusionment) qu'il ne faut pas investir sur elle.
    La courbe de l'esbroufe 2006
    La courbe de l'esbroufe 2006
  • Le buzz. Sans doute la notion la plus polémique parce qu'elle appartient naturellement au domaine des commerciaux et autres communicants 1.0 (voire 0.0) qui sont généralement très loin de la culture fondatrice du web. C'est ainsi que j'ai entendu un responsable marketing s'apprêtant à lancer le buzz en faisant une campagne d'e-mailing massive, c'est à dire un envoi de SPAM. A mon avis, le buzz ne peut se faire qu'à deux conditions :
    • Le produit en vaut la peine (il est utile et utilisable). En effet il ne peut y avoir de buzz, qui est en fait un phénomène accompagnant la constitution d'une communauté que si le produit est susceptible d'emporter l'adhésion de suffisamment de personnes, c'est à dire s'il est utile. Un buzz artificiel (l'esbroufe) ne prendra pas contrairement à un buzz naturel, c'est à dire un buzz qui gonfle uniquement grâce à la qualité intrinsèque du produit.
    • Le buzz utile ne peut se faire que si le fournisseur du produit est honnête. Créer du buzz est un art délicat que Google maîtrise parfaitement (voir le buzz autour de platypus), mais la malhonnêteté de certains résultats sur son moteur de recherche pourrait bien se retourner contre lui, ainsi que l'a déjà expérimenté Sony par exemple avec son faux blog ou Campari.
  • La longue traîne (long tail). Dans un article maintenant célèbre, Chris Anderson explique ce qu'est la longue traîne : une quantité phénoménale de produits que seul un petit nombre de clients souhaitent acquérir, et dont les ventes cumulées produisent un chiffre d'affaire supérieur à celui issu de la seule exploitation des quelques blockbusters que l'on trouve partout. L'exploitation de la longue traîne ne peut cependant pas se faire sans l'exploitation des blockbusters.
  • Les innovations de rupture (disruptives innovations). Clayton Christensen montre, dans son livre The Innovator's Dilemma, comment les sociétés établies se laissent surprendre par des innovations dont elles n'ont pas vu qu'elles allaient phagocyter leur marché. En écoutant leurs clients, ces sociétés, dans un soucis de bonne gestion, améliorent leur produits existant par des innovations soutenantes (sustaining innovation) plutôt que d'investir massivement pour faire des produits basés sur des innovations de rupture dont les performances sont moins bonnes à court terme et dont le futur est encore incertain. Tout entrepreneur doit être conscient que l'inertie le guète et que le produit qu'il lance, s'il est actuellement basé sur une innovation de rupture, évoluera ensuite grâce à des innovations soutenantes.
  • L'utilisateur roi. Avant d'être un client (roi) l'internaute est un utilisateur pour qui votre site n'est qu'à un clic de la concurrence. La prise en compte des besoins des utilisateurs doit être au centre des vos préoccupations pour que votre site soit utile et utilisable donc utilisé. Les technologies web 2.0 (Ajax et manipulation du DOM en JavaScript notamment) améliorent radicalement l'utilisabilité des sites dont l'ergonomie devient incitative voire persuasive jusqu'à transformer le surf en véritable expérience utilisateur.
  • Le web en écriture (user generated content). C'est Richard MacManus qui a popularisé cette notion : les utilisateurs ne sont plus seulement lecteurs et clients, mais aussi acteurs et producteurs de contenus. Ainsi, des critiques sur Amazon aux articles de Wikipédia en passant par les vidéos de dailymotion ou youtube, le web devient une plate forme mise à la disposition des utilisateurs/producteurs.
  • L'ouverture est une notion qui est à la base de l'internet et se décline sur les plans :
    • technologique : standards ouverts, formats ouverts, logiciels à code source ouvert (open source et libre),
    • sociologique : la culture libre (free culture chère à Lawrence Lessig),
    • économique : dans une certaine mesure compatible avec son modèle économique, un service web devrait être conçu comme une plate forme neutre accessible via une API permettant la réalisation de mashups, c'est à dire une utilisation incontrôlée par les utilisateurs. En essayant de contrôler complètement son service, on risque de perdre ses utilisateurs, comme l'a appris à ses dépends le réseau social Friendster après avoir interdit et fermé les faux profils dont les utilisateurs se sont reporté sur MySpace.

Toutes ces notions rendent compte d'une évolution de la société que l'on peut qualifier de révolution des amateurs professionnels, « ces amateurs tellement investis dans leur passion qu'ils finissent par avoir les mêmes compétences que les professionnels ». Mais peut-être en ai-je oublié ?

Le Monde parle de "mon" projet !

Logo du Monde Dans son édition de mardi dernier, Le Monde a publié un article évoquant le projet que je dirige à l'Agence France Presse. J'ai commencé cette mission début novembre et un premier prototype a été présenté au PDG, Pierre Louette, ce même mardi 19 décembre. Je ne sais pas si l'interview a eu lieu avant ou après, mais je sais, qu'il est très satisfait de ce premier résultat.

Ultime innovation : le PDG souhaite lancer l'AFP vers le grand public, au risque d'entrer en concurrence avec ses propres clients. L'agence veut se doter d'un site Internet, hébergeur de blogs, où se retrouveraient journalistes professionnels et journalistes « citoyens », images d'agence et vidéos d'internautes. Ce site, « en anglais, sera testé en Asie et aux Etats-Unis, pas en France... », précise prudemment M. Louette.

Extrait de « L'AFP a gagné 3 millions d'euros en 2006 », Le Monde du 19 décembre 2006.

Même si la description donnée est assez réductrice, et que nous ne faisons pour le moment qu'un prototype, cela fait vraiment plaisir...

Héritage en JavaScript

Comment faire hériter une classe Book d'une classe Item en JavaScript ?

La classe Item possède deux propriétés (id et price), deux méthodes pour lire ces propriétés (getId et getPrice) et une méthode pour obtenir une représentation de l'objet sous forme d'une chaîne de caractères (toString) :

function Item(id, price) { this.id = id; this.price = price; } Item.prototype.getId = function() { return this.id; } Item.prototype.getPrice = function() { return this.price; } Item.prototype.toString = function() { return "Item[id="+this.getId()+",price="+this.getPrice()+"]"; }

Une méthode classique d'héritage en Javascript est dite par prototypage :

Book.prototype = new Item; function Book(id, price, title) { this.super = Item; this.super(id, price); this.title = title; } Book.prototype.getTitle = function() { return this.title; } Book.prototype.toString = function() { return "Book[id="+this.getId()+",price="+this.getPrice()+",title="+this.getTitle()+"]"; }

Ainsi, le code suivant :

var myBook = new Book(1001, 10.5, "The definitive JS Guide"); alert(myBook);

provoquera l'affichage de la chaîne de caractères : Book[id=1001,price=10.5,title=The definitive JS Guide]. Parfait ! Mais l'article de Douglas Crockford intitulé Prototypal Inheritance in JavaScript m'a inspiré une autre méthode pour définir de manière automatique et dynamique la fonction Book. Pour cela on écrit une fonction inherit prenant la classe de base en paramètre et renvoyant la fonction définissant la sous-classe. Cette fonction :

  • Détermine le nombre et le noms des arguments du constructeur de la classe de base (args) par un mécanisme mimant l'introspection,
  • Construit une chaîne de caractère (str) dont l'évaluation définira la fonction faisant appel au constructeur de la classe de base avec les bons paramètres.
  • Copie tous les attributs et toutes les fonctions de la classe de base dans la classe dérivée.
  • Retourne la fonction
function inherit(super) { var introspect = '' + super; introspect = introspect.substring (introspect.indexOf('(')+1); introspect = introspect.substring(0, introspect.indexOf(')')); var args = introspect.explode(','); var str = "new Function("; for(var i = 0; i < args.length ; i++) { str += "\""+args[i]+"\", "; } str += "\"this.super=\"+super+\";this.super("; for(var i = 0; i < args.length; i++) { str += ""+args[i]; if(i < args.length-1) { str += ", "; } } str += ");\");"; F = eval(str); for (property in super) { F[property] = super[property]; } return F; }

Ce code s'appuie sur les extensions trim et explode apportées à l'objet String :

String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g,''); } String.prototype.explode = function(delim) { var exploded = new Array(); var copy = this; var i = copy.indexOf(delim); while(i>0) { extracted = copy.substring(0, i); copy = copy.substring(i+1); exploded.push (extracted.trim()); i = copy.indexOf(delim); } exploded.push(copy.trim()); return exploded; }

Le constructeur étant défini automatiquement, on ne peut pas lui ajouter des paramètres spécifiques à la sous-classe (title par exemple). L'initialisation de l'objet dérivé doit donc se terminer à l'extérieur du constructeur :

Book = inherit(Item); Book.prototype.title = ""; Book.prototype.getTitle = function() { return this.title; } Book.prototype.toString = function() { return "Book[id="+this.getId()+",price="+this.getPrice()+",title="+this.getTitle()+"]"; }

Le code suivant :

var myBook = new Book(1001, 10.5); myBook.title = "The definitive JS Guide"; alert(myBook);

provoquera l'affichage de la chaîne de caractères : Book[id=1001,price=10.5,title=The definitive JS Guide] comme précédemment.

Il serait possible d'étendre ce mécanisme en ajoutant des paramètres à la fonction inherit afin d'avoir un constructeur prenant plus de paramètres que le constructeur de base. Un des paramètres serait un bout de code à exécuter pour finir l'initialisation de l'objet dérivé. Mais cela aurait-il un intérêt ?

Si l'on met de côté le fait que la définition de fonction à l'aide de la fonction Function et l'utilisation de la fonction eval sont fortement déconseillées, cette méthode est amusante, non ?

L'art de créer une communauté

Nous rêvons tous de lancer l'entreprise du siècle, celle qui va assurer notre avenir sous les cocotiers. Nous avons même l'idée géniale et les compétences pour la concrétiser. Bien sûr, nous savons que nôtre rêve repose en grande partie sur des mythes et nous nous abstenons. Pourtant, dans bien des cas, nous pourrions rencontrer le succès si nous parvenions à créer une communauté d'utilisateurs fidèles (voir l'exemple de lafraise.com). Pour nous y aider, Guy Kawasaki nous apprend l'art de créer une communauté en suivant 8 règles :

  • Créez quelque chose qui mérite une communauté. C'est un thème récurrent dans ses écrits : la clé du succès d'une entreprise est un grand produit. Si le produit créé est un grand produit, vous ne pourrez pas empêcher une communauté de se former, même si vous le vouliez. Au contraire, il est très difficile de former une communauté autour d'un produit de merde, quelque soit les efforts que vous fassiez.
  • Identifiez et recrutez vos évangélisateurs – immédiatement ! La plupart des entreprises sont stupides : elles apprennent bien après coup l'existence d'une communauté d'utilisateurs. Si vous avez un grand produit, soyez pro-actif : cherchez, demandez et trouvez vos évangélisateurs pour qu'ils forment une communauté.
  • Confiez à quelqu'un la tâche de constituer une communauté. Bien sûr, beaucoup d'employés aimerait constituer cette communauté, mais qui se réveille chaque jour avec cette tâche en tête de ses priorités ? Une autre façon de voir cela est, « Qui se fera licencier si elle ne constitue pas la communauté ? » Une communauté a besoin d'un champion – un héros identifiable et charismatique – de l'entreprise pour porter l'étendard de la communauté. Pour cela, il suffit d'embaucher un commercial de moins pour financer notre superman.
  • Donnez quelque chose de concret à mâcher. Les utilisateurs ont besoins de s'approprier le produit. Il doit donc être personnalisable, extensible et malléable. Tous les produits ayant une communauté conséquente intègrent un mécanisme de plugin : Photoshop, Eclipse et surtout Firefox.
  • Créez un système ouvert. Vous devez fournir un SDK et une API pour permettre aux utilisateurs de bricoler le produit ou d'en faire un dérivé. C'est ce qui fait le succès de beaucoup de services web 2.0.
  • Accueillez la critique avec bienveillance. La plupart des entreprises sont bienveillante tant que la communauté reste dans le rang, dit des choses gentilles, achète les produits et ne se plaint jamais. Mais, à la minute où la communauté émet un avis négatif, l'entreprise pète les plombs et lui retire son soutien. C'est suicidaire ! Une entreprise ne peut contrôler sa communauté. C'est une relation sur le long terme, et l'entreprise ne peut pas se permettre de demander le divorce au premier signe d'infidélité. Au contraire, plus elle accueille avec bienveillance – et célèbre même – la critique, plus ses liens avec sa communauté se renforcent.
  • Encouragez les échanges. Toute entreprise qui encourage la constitution d'une communauté doit aussi participer aux échanges d'idées et d'opinions. Des espaces d'échanges entre membres de la communauté et employés de l'entreprise doivent exister : blogs, forums, rencontres, etc. Cela ne veut pas dire que la communauté dirige l'entreprise, mais que l'entreprise est à l'écoute de ce que la communauté a à dire.
  • Communiquez sur l'existence de la communauté. Si vous avez franchi tous les obstacles aboutissant à la constitution d'une communauté, ne le cachez pas. La communauté doit être une composante à part entière de votre stratégie de vente et de marketing. Voyez comment Apple ou Harley-Davidson met en avant ses groupes d'utilisateurs.

Avec ces bons conseils du docteur Kawasaki, il ne dervrait plus être difficile de constituer une communauté d'utilisateurs qui dissémineront la bonne parole pour doper vos ventes ! Il ne reste plus qu'à réaliser un grand produit...

Sites web 2.0 : les facteurs de succès

Les sites web 2.0 et les réseaux sociaux comme MySpace en particulier ont le vent en poupe. Les plates-formes se multiplient en même temps que les concepts du web 2.0 se diffusent dans le grand public. Ces plates-formes évoluent rapidement et on assiste à une certaine convergence : Reddit s'associe au Washington Post pour Slate.com avant d'être racheté par Wired par exemple, ou del.icio.us qui prévoit de devenir un réseau social. Sans s'intéresser aux moyens de gagner de l'argent, ce billet présente les principaux facteurs de succès d'un site web 2.0.

Les raisons du succès

Selon moi, les raisons profondes du succès des sites sociaux sont liées à la transformation de la société qui est de plus en plus individualisée et individualiste. De plus en plus isolé, certains de nos besoins fondamentaux ne sont plus satisfaits, et les sites web 2.0 permettent de les combler, au même titre que l'adhésion à une association loi 1901. Selon Abraham Maslow, nous cherchons à satisfaire six besoins fondamentaux dans un ordre bien précis : physiologique, sécurité, amour/appartenance, estime des autres, estime de soi, accomplissement personnel. Les deux premiers sont généralement satisfaits dans nos sociétés occidentales, tandis que les deux suivants (amour/appartenance et estime des autres) ne le sont souvent plus. Or leur satisfaction est indispensable à l'estime de soi et à l'accomplissement personnel auquel chacun aspire. À mon avis, un site web 2.0, en plus de favoriser son appropriation par l'utilisateur, comme tout autre produit, doit aussi combler un besoin d'amour ou d'appartenance et un besoin d'estime des autres.

L'appropriation

Pour que l'utilisateur s'approprie le site, celui-ci doit être utile, maîtrisable et personnalisable. Si l'utilité d'un site ne peut être défini précisément, sa maîtrise par l'utilisateur nécessite qu'il soit adapté à son public : l'utilisateur doit comprendre le vocabulaire employé, et pouvoir naviguer et utiliser les fonctionnalités facilement. L'ergonomie est une dimension essentielle de la conception du site : interface fluide, retour utilisateur immédiat, etc. L'appropriation passe également par des outils adaptés à chacun, ce qui explique que des plates-formes multiplient les outils (blog, wiki, forum, etc.) pour satisfaire le plus grand nombre. On passe alors déjà dans la personnalisation, puisque chacun ne va utiliser qu'une partie des fonctionnalités en fonction de ses besoins et de ses compétences. La personnalisation peut être plus intégrée comme sur Amazon.fr avec son système de suggestions, sur Flickr avec son accueil personnalisé, ou encore sur Spotback.com qui apprend vos goûts en matière de recherche d'information. Mais ce dernier genre de site prend un risque car il ne procure pas un bénéfice immédiat pour l'utilisateur, qui doit attendre que le site ait appris à connaître ses goûts...

Si des ados peuvent passer des heures uniquement sur MySpace, il n'en va pas de même pour tout le monde. Chacun ayant de multiples centres d'intérêt, le nombre de sites utilisés peut vite grimper et il devient difficile de tous les gérer. C'est ce problème que les pages de démarrage (Netvibes.com par exemple) veulent résoudre en permettant de regrouper en un endroit unique toutes ces sources d'information. D'où la nécessité d'offrir des widgets intégrables dans les services externes et des flux RSS dont l'avènement grand public est prévu pour 2007.

Le sentiment d'appartenance

Le sentiment d'appartenance naît de l'appropriation et de l'implication dans la communauté. Pour un site grand public, l'implication ne peut se faire que progressivement, par des actions non engageantes dans un premier temps (voter pour un article d'un simple clique anonyme) puis de plus en plus (voter, tagger, commenter, discuter, etc.) L'ergonomie incitative joue ici un rôle essentiel pour facilité les premiers pas : simplicité et retour sur investissement immédiat (l'utilisateur doit constater tout de suite l'effet de son vote par exemple).

L'estime des autres

L'estime des autres naît du sentiment d'appartenance et de la reconnaissance qu'ont les autres de notre participation à la communauté. Le facteur clé est ici la notion de partage de sa production personnelle sur laquelle les autres vont pouvoir réagir (alors que jusqu'ici l'utilisateur réagissait aux productions des autres). Comme précédemment l'implication dans la production personnelle doit se faire progressivement par des actions de plus en plus engageantes : sélection d'articles par un simple clique pour alimenter un flux RSS original, tenu d'un blog personnel, participation à un blog collectif, participation aux discussions publiques, etc. L'auteur doit ensuite pouvoir mesurer simplement la reconnaissance qu'ont les autres de sa production. La plate-forme doit donc permettre aux autres utilisateurs de trouver sa production pour qu'ils puissent réagir voire la noter. Par exemple, un utilisateur ayant soumis un article à digg se sent estimé des autres, lorsque son article arrive en page d'accueil. Mais une mesure peut également être fournie par le nombre de personnes ayant lu l'article ou le nombre d'abonnés à un flux RSS.

La plate-forme a intérêt à faire réagir les personnes ayant les mêmes centres d'intérêts que l'auteur, voire même, pour les premières productions de l'auteur au moins, les mêmes idées (grâce à un algorithme de rapprochement de profils) afin de maximiser son sentiment d'être estimé des autres.

Quelques pièges à éviter

  • L'anarchie. Les possibilités de personnalisation et la liberté d'action des utilisateurs ne doivent pas conduire à l'anarchie. Le site doit rester simple et cohérent et ne pas ressembler à un patchwork d'outils mis bout à bout. Les panneaux de configuration ne doivent pas être des machines à gaz permettant uniquement aux geeks les plus talentueux de maîtriser l'outil. Le contenu doit rester structuré afin que chacun s'y retrouve, ce qui implique de limiter la liberté des utilisateurs. Le wiki, par exemple pose un très gros problème de structuration de l'information s'il n'y a pas un ou plusieurs responsables afin de le structurer selon une ligne éditoriale donnée. C'est ce qui explique l'échec des wiki en général, excepté pour Wikipédia où la structure encyclopédique se prête parfaitement à cette forme. Il faut donc trouver le bon compromis entre simplicité d'utilisation et possibilités de personnalisation d'une part et entre liberté d'action des utilisateurs et cohérence de l'information d'autre part.
  • Les barrières. Chaque action de l'utilisateur doit nécessite le moins de manipulation et de pré requis possible (ne pas nécessiter de s'enregistrer pour voter par exemple) pour faciliter l'appropriation et l'implication. Mais cela va parfois à l'encontre des besoins des utilisateurs plus impliqués : par exemple, d'un coté l'auteur d'un flux souhaite savoir combien il y a d'abonnés et si possible qui ils sont (d'où le succès de Mybloglog.com chez les auteurs de blog), de l'autre, les utilisateurs ne doivent pas être obligés de s'enregistrer pour s'abonner à un flux.
  • L'emprisonnement. Au fur et à mesure que l'utilisateur s'implique, il ne doit jamais se sentir prisonnier. Il doit toujours pouvoir récupérer simplement ses données (via une procédure d'export) et les supprimer.
  • L'uniformité. Sauf sur un marché de niche, les utilisateurs sont très différents les uns des autres. Chacun ayant ses propres centres d'intérêts et ses propres préférences, il ne faut pas gérer la communauté comme un tout uniforme, comme l'explique très bien le billet Personnalisation des sites d'information, le mirage communautaire.
  • L'isolement. Comme le fait remarquer Ebrahim Ezzy dans Social Networking: Time For A Silver Bullet, avec la multiplication des sites et réseaux sociaux, un obstacle supplémentaire apparaît : chaque site nécessite un enregistrement et le remplissage d'un profil. C'est la problématique de la gestion des identités et au delà de la réputation sur internet. Dans tout les cas, l'enregistrement doit être le moins engageant et le moins contraignant possible. le profil doit pouvoir être remplit progressivement par étape. Il suffit d'inciter l'utilisateur à le faire via une barre de progression correspondant au taux de remplissage du profil, toujours visible sur sa page. Il faut être conscient, que chaque réseau social ne concerne qu'un aspect de l'identité de l'utilisateur (un profil). Il a donc recours à plusieurs réseaux pour chacun des aspects. La plate-forme doit donc tenir compte du fait qu'elle n'est pas le centre des préoccupations de ses utilisateurs.
  • La fraude. Quelque soit l'algorithme de classement des informations celui-ci est susceptible d'être contourné comme le montre l'exemple de digg et Netscape par Calacanis

Conclusion

Allons-nous vers des communautés 3.0, comme se le demande Fred Cavazza ? Rien n'est sûr, mais la tendance est aux réseaux sociaux verticaux légers et fédérés via une page de démarrage ou via une interconnexion à la PeopleAggregator.com.

- page 2 de 3 -