Archives de catégorie : Software

San Dimas Project : premiers retours !

Je viens de recevoir le mail avec les codes d’accès pour l’application San Dimas (j’en avais parlé ici).

Vous pourrez trouver d’autres billets sur Apollo ici.

D’ailleur, il faudrait que je me mette à jour, on ne parle plus d’Apollo mais de AIR : Adobe Integrated Runtime.

Comme d’habitude, tout a commencé par une courte phase d’installation :

Installation de l'application San Dimas

Il faudra qu’ils fassent des progrès à l’avenir, pour avoir des applications signées, et donc sans les warnings du bas de l’écran.

Je suis ensuite arrivé sur l’écran de login :

Ecran d'accueil de login de l'application San Dimas

Puis, enfin, sur la page d’accueil :

Ecran d'accueil de l'application San Dimas

Les imagettes représentent en fait des catégories. Elles changent dynamiquement avec des effets de fondus.

En cliquant sur une imagette, on arrive sur la liste des articles en vente, dans la catégorie sélectionnée :

Liste des produits dans l'application San Dimas

Puis, en cliquant un produit, on arrive sur la page produit proprement dite :

Page produit de l'application San Dimas

Je ne suis pas allé plus loin pour l’instant, je vais tester plus a fond et je vous en reparlerai bientôt.

Tout cela est très prometteur ! 

Vers un OS universel ?

Vous le savez, je suis passé du monde du PC au monde du Mac (ici et ).

En y réfléchissant, je pense que la facilité du passage de l’un à l’autre n’est pas un détail.

Tout d’abord, c’est possible principalement parce que, techniquement, les deux plates-formes sont en fait pratiquement les mêmes : mêmes processeurs, mêmes interfaces (USB, …), mêmes cartes graphiques, …

La meilleure preuve, c’est la floraison de solutions permettant de faire tourner des applications Windows sous Mac (Parallel, Bootcamp, CodeWeaver….) : c’est possible avec de bonnes performances car le hard est le même.

L’autre raison est la « normalisation » de notre environnement de travail : une souris, un bureau, des suites bureautiques universelles (mail, calendrier, …).

A mon sens, cette convergence à plusieurs conséquences :

  • Une opportunité pour Apple, pour regagner des parts de marché. La simplicité d’utilisation du Mac est flagrante comparée aux PC, et les Mac sont beaux !
  • Une banalisation de l’OS, et donc un logiciel de plus en plus difficile à vendre cher.
  • Un risque de perte de valeur sur le Hard pour Apple. Le choix de Steve Jobs, d’intégrer les composants du PC – y compris le processeur – était un très bon choix : la taille du marché des PC ne permettait plus de luter. Mais la conséquence, c’est que le Mac est de plus en plus un PC « bien habillé ». Même si les concurrents n’arrivent pas à égaler Apple, ils y arriveront un jours : je pense en particulier aux Coréens comme LG ou Samsung, qui avancent très vite…

Mais surtout, la conséquence, c’est que la principale différentiation va se faire sur les couches au dessus de l’OS, et en particulier au niveau des RDA.

Neolane : la rolls de la communication multicanale ?

Logo NeolaneJe suis allé à une présentation de la solution Neolane, avec comme témoignage client Meetic (agenda ici).

Neolane est un éditeur de logiciel français, qui vend une solution de gestion de la relation client multi-canal.

Concrètement, la solution Neolane permet de gérer l’ensemble des échanges, entre une entreprise et ses clients :

  • Web ;
  • Mails ;
  • Mobile (SMS / MMS) ;
  • Courriers ;
  • Appels téléphoniques.

L’une des grande idée de Neolane, c’est qu’il faut une gestion centralisée de ces échanges, de manière à en contrôler la cohérence.
On a tous été un jour énervé de recevoir des messages incohérents d’une entreprise (exemple : être démarché par une entreprise, alors qu’on est en cours de « bataille » avec le SAV, …).

La limite de cette approche, c’est que la gestion cohérente des échanges, ce n’est pas qu’un problème d’outils, c’est avant tout un problème d’organisation au sein de l’entreprise.
Et ce problème peut exister même pour des toutes petites structures.

Prenons l’exemple d’un site marchand, avec une équipe marketing pour booster les ventes, qui dépend logiquement de la branche commerciale, et une équipe « SAV » chargée de gérer les retours, réclamations, …, qui dépend de la branche opérations.
Dans cette entreprise, les branches opérations et marketing ont chacune leur relation client, et rien ne permet de garantir la cohérence des messages entre ces deux branches. Mauvais pour l’image de l’entreprise !

J’ai trouvé particulièrement intéressant de voir le retour d’expérience de Meetic, parce que pour eux, la relation avec les clients, c’est 100% de leur business.

Logo Meetic

Meetic, vous connaissez tous, c’est la « place de marché de la rencontre ».

C’est aujourd’hui une très belle boite :

  • Près de 80 M€ de CA en 2006 (près de *2 en 1 an !) ;
  • Présent dans 17 pays, dont la Chine, avec 15 langues différentes ;
  • Propose son offre via environ 100 partenaires (exemple : « brandé » Orange quand on accède au service Meetic via le portail Orange) ;
  • Envoie 7 millions de mails par jours, en combinant les mails marketing et les mails d’alertes ;

Avant la mise en place de Neolane, Meetic avait deux systèmes séparés : un pour les alertes, et un pour le marketing. Difficile de gérer la cohérence dans ce contexte, surtout avec l’explosion combinatoire (pays * partenaire * profil du client…).

Aujourd’hui, Neolane est en place et leur permet de gérer l’ensemble de la communication vers les clients.

Meetic à l’air très content :

  • Très faible taux de rejet des mails (98%) ;
  • Bonne résistance à la montée en charge ;
  • Des outils de paramètrage des campagnes graphiques et « intuitifs » ;
  • Une vision « consolidée » de la communication client…

Mais tout cela à un prix : Neolane coûte très très cher. Si j’ai bien compris, il faut payer une licence mensuelle assez chère. De plus, pour faire fonctionner un tel système, il faut au moins une personne dédiée.

On comprend que pour une boite comme Meetic, ce soit jouable. Cela ne l’est certainement pas pour la plupart des sites marchands. Dommage…

La revenche du software

Pour me détendre le soir, je me fais un petit épisode de l’entretien entre Steve et Bill.

Dans cette vidéo, Steve dit que le coeur des produits (iPod, Mac, iTV…), c’est le logiciel.

Revenons un peu en arrière :

Au tout début d’Apple, Steve Jobs ne jurait que par le Hardware. C’est un passionné de beaux objets, tant à l’extérieur qu’à l’intérieur. Tout ceux qui ont ouvert un Mac comprennent de quoi il s’agit.

Les équipes Software s’en plaignaient, et bien souvent les meilleurs finissaient par partir (comme Bill Atkinson à l’origine de Mac Paint sur les premiers Mac).

Ensuite, Steve a été viré d’Apple, et a créé NeXT. La seule chose qui a rapporté, dans cette aventure, c’est l’OS, basé sur Unix. C’est cet OS qui est à la base des nouveaux OS des Mac. C’est d’ailleurs comme ça que Steve est revenu aux commandes d’Apple : lors du rachat par Apple de NeXT.

Bien sûr, il y a du génie dans le hardware d’Apple…

Alors, tout au long de ces aventures, quand Steve a-t-il compris que le logiciel était un élément complètement fondamental ?

D’ailleur, comme je le disais ici, il avait déjà dit qu’à son avis, le génie de Bill, c’est d’avoir construit une entreprise 100% focalisée sur du logiciel. Y aurait-il un petit peu de rancoeur, d’avoir compris 20 ans après Bill que le logiciel est stratégique ?

En même temps, quelle intelligence : de comprendre ses erreurs et de changer !

Bjarne Stroustrup : « la qualité moyenne des programmes est à pleurer »

Un ami, qui connait ma passion pour le génie logiciel, m’a envoyé un lien vers cet article : La qualité des programmes informatique.Portrait de Bjarne Stroustrup

Je vous conseille vraiment la lecture de ce billet : c’est court, bien écrit, et très instructif !

Le billet parle de la qualité des programmes informatiques, et cite largement Bjarne Stroustrup, le papa du langage de programmation C++.

Voici quelques morceaux choisis :

« Il existe donc d’excellents logiciels. Cependant la qualité moyenne des programmes est à pleurer. Leur structure est affreuse et il saute aux yeux que les programmeurs n’ont pas été attentifs à la cohérence, aux algorithmes, aux structures de données ni à la maintenabilité. Les utilisateurs ne peuvent pas s’en rendre compte parce qu’ils ne lisent pas le code : ils voient seulement les programmes se planter. »

« Comme les programmeurs travaillent sous la pression de l’urgence, ils tentent d’accomplir des miracles en procédant par essais et erreurs, en utilisant la force pure et en faisant beaucoup de tests. Ils sont devenus experts dans l’art de construire, en intégrant des blocs non fiables, un système qui marchera à peu près. »

« Il est dangereux de considérer la programmation comme une tâche banale que pourraient remplir des programmeurs formés en quelques mois. Nous n’admettrions pas cela pour des plombiers, des comptables, des architectes, ni pour ceux qui conçoivent les ponts et les trains. Aujourd’hui trop de programmeurs n’ont pas été assez formés et manquent d’expérience. »

« En théorie, la solution réside dans la formation des programmeurs et l’utilisation de méthodes qui organiseraient la conception des produits en vue de leur utilisation à long terme et de leur maintenabilité. »

Mais en fait on récompense les programmeurs qui produisent à la va-vite des programmes bogués et peu coûteux.

Ces généralités, sur la programmation sont particulièrement vraies pour le web et encore plus pour le e-commerce.

Dans beaucoup de cas, les sites marchands sont développés « à la va-vite », de manière à avoir le plus rapidement possible un prototype qui tourne.

Bien souvent, le prototype restera la base du site marchand, et sera enrichi au fil de l’eau, l’ensemble constituant un édifice de plus en plus bancal.

Bien entendu, j’ai parfaitement conscience qu’il faut faire en fonction de ses moyens !

Quelles sont les conséquences et les risques de fonctionner avec une solution de mauvaise qualité ?

Avoir un site marchand basé sur une application informatique inadaptée :

  1. C’est prendre énormément de risques ;
  2. Cela revient finalement plus cher ;
  3. C’est perdre du business.

1) C’est prendre énormément de risques

C’est un peu comme si le marchand laissait la caisse ouverte en plein milieu de la rue. Mais comme il n’a pas forcément la culture technique, et qu’il ne s’est pas forcément entouré des bonnes personnes, il ne s’en rend pas compte.

La réalité, c’est que fait à la va-vite, la moindre modification du site peut avoir des conséquences insoupçonnées (achat au mauvais prix, processus commande bloqué, …).

2) Cela revient plus cher

Avec une application bancale, il faut régulièrement développer des « patch », pour résoudre à la va-vite les problèmes qui surviennent. L’urgence est traitée, mais l’édifice est de plus en plus fragile, et ces interventions ‘d’urgence’ consomment de plus en plus de ressources. Ces ressources ne peuvent pas travailler sur l’ajout de nouvelles fonctions.

3) Perdre du business

Parce que la solution est inadaptée, elle ne pourra pas s’adapter aux nouveaux besoins : commerciaux, techniques et marketing. Cela impacte donc directement le chiffre d’affaires.

Quelle est la solution alors ?

Si on démarre avec peu de moyens financiers, il me semble tout à fait normal de faire une première version rapide et pas chère.

Il faut juste avoir conscience que c’est une première version, qui devra très probablement être entièrement refaite au bout de quelques mois.

Plus le site marchand évolue, plus il faut avoir une solution technique en adéquation avec les ambitions et à la hauteur des enjeux.

C’est finalement une gestion classique de risque et d’investissement. Il faut juste garder du recul pour faire les bons choix au bon moment.

Pourquoi les retours d’usages des clients sont biaisés ?

C’est une méthode commerciale bien connue et très efficace : on fait parler un ou plusieurs clients lors de conférences.

Dans le monde du logiciel, c’est une pratique très souvent utilisée.

Des utilisateurs parlent de leur « joyeuse expérience » avec un produit logiciel et hop, ça convainc tout le monde. La force de conviction est en effet très forte, parce que l’utilisateur qui parle, on se dit qu’il est à priori neutre : il a choisi librement le produit, et s’il vient en parler, c’est qu’il est content.

En fait, les choses ne sont pas si simples que ça.

En fait, le gars, une fois qu’il a choisi un produit, il s’est engagé, par rapport à sa société, par rapport à ses collègues : il a engagé des frais et des moyens humains. Le système informatique de l’entreprise a du s’adapter au nouveau logiciel, avec des conséquences plus ou moins complexes…

Peut- il dire : « ok, je me suis trompé ? »

Très délicat pour lui. En fait, plus le logiciel a couté cher, et plus il est lié au produit, et même plus la société qui a acheté le produit est liée.

Exemple extrème, une boite qui vend des ERP très très cher (je vous laisse deviner…) ne peut avoir que des retours positifs : acheter un produit jusqu’à plusieurs millions d’euros, c’est forcément une décision où la direction générale s’est engagée. Vous imaginez qu’à un tel niveau, le gars puisse dire : « bad luck, mauvais choix ! ». Non, forcément, il dira, en interne et à l’extérieur : « nous avons fait le bon choix ».

Cela veut il dire que les retours client, ça ne vaut rien ?

Non, d’abord parce que ça fait des présentations en général plus intéressantes, plus concrêtes.

Ensuite, il faut apprendre à lire entre les lignes. On arrive bien souvent à faire la différence entre un client vraiment content et un client « moyennement » satisfait.

Mais si c’est possible, le mieux, c’est d’aller discuter en face à face avec les utilisateurs. Hors des micros, les langues se délient.

Enfin, si on veut vraiment avoir un retour client qualifié, l’idéal est d’aller voir sur le terrain, avec les « non gradés » qui utilisent vraiment le service, ou qui le mettent en oeuvre. Là, on aura un vrai retour !

La beauté du modèle MVC

L’architecture, la conception du logiciel du site marchand, c’est l’affaire de la technique…  Mais tout est imbriqué.  Il me semble important que chacun ait un minimum de culture logicielle. C’est, il me semble, la meilleure solution pour faire les bons choix, et mieux dialoguer entre les uns et les autres : marketing, technique, …

MVC, ça veut dire : Modèle – Vue – Contrôleur.

Concrètement, c’est une façon d’organiser un logiciel pour qu’il soit plus robuste, plus fiable, plus facile à faire évoluer.

L’idée est de séparer le code en trois modules: les données, les traitements et les interfaces.

Le module de données a la responsabilité de gérer l’accès aux données, donc en général, ça veut dire l’accès aux bases de données.

Le module des interfaces a la responsabilité de gérer … les interfaces (trop puissant comme phrase). Donc, pour ce qui nous concerne, soit un site marchand, c’est dans ce module que doit être géré toute l’interface du site marchand, qu’elle soit en Flash, en Ajax ou en HTML plus classique.

Le module Modèle contient les traitements, les logiques applicatives du logiciel.  Par exemple, pour un site marchand, c’est dans ce module que sera géré les sessions des clients, les processus d’achat, …

On peut imaginer en fait deux schémas :

Modèle MVC vertical

Dans ce schéma « vertical », le module Interface ne peut dialoguer qu’avec le module Modèle, qui lui même accède au modèle Données. Donc, concrètement, ça veut dire que le module Interface ne peut pas (n’a pas le droit) d’accéder au module Données… Je ne vois pas bien l’intérêt (ça me semble plus un dogme qu’autre chose…). D’où ce schéma :

Modèle MVC non vertical

Dans ce schéma, le module Interface peut directement interroger le module Données. Si par exemple on est sur l’affichage de la liste des produits, pourquoi passer par le module Modèle : ce qu’on veut, c’est récupérer des données. Pas la peine d’alourdir les choses donc.

La plupart des logiciels pour sites marchands disent avoir une telle architecture. Mais ce qui est très important, c’est d’avoir ce modèle en tête quand on réalise le site marchand lui-même. Chaque développeur devra adhérer à ce modèle de conception, et respecter les règles. Concéquence : même si on est en retard, on n’a pas le droit de mettre du code d’accès aux bases de données partout.

Le seul module qui contient le code SQL d’accès aux bases de données, vous l’avez compris, c’est le module Données !

Sqoops : nouvelles interfaces et Intershop

Pour développer sur site marchand, on peut choisir un environnement de type Intershop Enfinity (je vous en avais déjà parlé dans ce billet) et vouloir une interface innovante.

C’est ce qu’à fait le site de jeux allemand sqoops :

Page d'accueil de sqoops, en flash + html

Le résultat me semble intéressant.

La structure de l’interface d’accueil est réalisé avec la partie haute en Flash et le bas en HTML. C’est je crois l’une des meilleure solution pour faire une interface un peu innovante tout en ayant un bon niveau de réléfencement naturel.

La partie Flash permet de voir très rapidement les produits, en fonctions de critères sélectionnés graphiquement : Console, âge, type de jeux, …

Quand on clique sur un produit, la fiche produit est toujours avec la structure Flash + HTML.

Quand on clique sur « Acheter », on bascule dans une interface plus classique, 100% HTML.

La recherche dans le site marchand avec Fredhopper

La fonction recherche est tout à fait fondamentale dans un site marchand !

En fait, il faut parler de deux fonctions de recherche :

  • Il y a celle à l’extérieur du site marchand : Google quoi !
  • Il y a la recherche quand on est dans le site lui même.

La recherche « Google » est fondamentale pour un e-marchand, mais ce n’est pas l’objet de ce billet.

On parle donc ici de la recherche intra-site et c’est donc une fonction super importante, parce que c’est un moyen clé pour augmenter le taux de transformation.

Les Internautes ont maintenant à peu près tous le « réflexe google » : « ne triez pas, cherchez ! ». Donc, quand on arrive sur un site, si on sait ce qu’on veut acheter, bien souvent, on va taper le nom du produit dans le champs « recherche » du site… Et puis… Et puis ça dépend. ça dépend du site, et de l’effort qui a été fait lors de la mise en place de cette fonction.

C’est là que des spécialistes peuvent intevenir.

Logo de fredhopper Fredhopper (En anglais) est un éditeur de logiciel, 100% focalisé sur ce métier : fournir la brique de recherche pour les sites marchands.

Ce que permet cette solution, c’est de pas mal travailler sur des règles, pour définir ce qui se passe suite à une recherche : quels sont les produits qui apparaissent, dans quel ordre. Il y a également la possibilité de « pousser » des produits qui semblent correspondre, et qui sont par exemple en promotion, ou qui sont particulièrement populaires, sur un bandeau latéral.

Je n’ai pas eu le droit de faire de captures d’écrans de leur produit (dommage !) mais on peut voir le résultat, simplement en allant voir certaines références, dont Conrad France (dont j’avais déjà parlé ici) :

Résultat d'une recherche sur le site de Conrad France, avec Fredhopper

Voici une copie d’écran, après avoir taper « bateau ». Ce qui est intéressant, c’est qu’à gauche, on peut affiner la recherche, en sélectionnant une catégorie, une game de prix, une marque, …

Les règles, qui se configurent directement depuis une interface web, permettent d’agir sur de nombreux facteurs (faut il afficher les produits en rupture de stock, …). Le moteur permet également de trouver des produits, même si les mots contiennent des fautes de frappe.

Maintenant, « la douloureuse » : c’est un produit cher : il faut compter au moins 30 000 € pour installer cette solution. On peut également avoir une location mensuelle, autour de 1500 € par mois…

SlitGames : réalisé avec Symfony

J’en parlais ici, Symfony, c’est un environnement pour développer très rapidement une application Web. Avec Symfony, on peut réaliser un prototype, mais on peut aller plus loin et développer un vrai service, opérationnel.

La preuve : SplitGames, développé avec Symfony, par Clever Age

Fred était de la parti, il en parle dans ce billet.