Archives de catégorie : Software

Architecture (macro) d’un service Web

(re)Passons aux choses sérieuses !

Donc la question, c’est quelle est la façon d’organiser un service web… comme un site marchand par exemple.

En particulier, comment traiter le coeur du service, c’est à dire les bases de données ?

Habituellement, on sépare le service web en « deux parties » :

  • Le front-office : c’est la partie visible par les clients du service. Pour un service e-commerce, c’est le site marchand lui-même.
  • Le back office : c’est donc tout le reste. En fait, le back office regroupe beaucoup de modules (suivant la taille des projets) : CRM, emailing, outils de tracking (business intelligence), lien vers le système logistique, …

Chaque partie à besoin de bases de données pour travailler.

Comment faire ?

  • Faire une seule base, et brancher tous les modules sur cette base centrale ?
  • Mettre une base par module, et développer des logiciels de synchronisation, pour que les données des différents modules soient cohérentes ?

En fait, il n’y a pas de réponse systématique, et il faut prendre en compte beaucoup de paramètres :

  • En règle général, il vaut mieux que le front office ai sa propre base de données, que cette base de données soit exclusive pour le front donc. L’idée, c’est que rien ne doit impacter le front office, qui est le moteur business.
  • On développe rarement les modules « à partir de rien » : on utilise un « framework » pour le front, un module type Sugar CRM pour le CRM, … Or, ces modules ont leurs propres bases de données.
  • Un autre paramètre est le nombre d’Internautes utilisant le Front. A partir d’un certain volume, on n’a plus le choix, il faut une base spécifique pour le Front.
  • Le prix bien sûr, prix des licences logicielles et prix des développements.
  • En particulier, si on a plusieurs bases de données, la synchronisation entre ces bases devient le point clé. Il faut développer des modules de synchronisation, avec des stratégies (quand doit on synchroniser, sur quels évènements). Il faut également penser aux évolutions : les bases de données sont faites pour évoluer. Il faut des modules de synchro pour gérer les versions des bases.

Dans tous les cas, il faut penser cette architecture des bases de données avec soin, c’est l’épine dorsale de tout le système.

Prédictions pour 2008

C’est le moment pour se lancer (mon billet précédent était plutôt une vision moyen / long terme sur l’avenir).

Donc, qu’est-ce qui nous attend pour 2008 ?

Contexte matériel et logiciel…

Explosion des interfaces multi-touch

Je suis convaincu qu’on est au tout début de cette révolution dans les interfaces.

L’iPhone ouvre le bal, la table « Surface » de Microsoft ouvre une autre voie…

Je pense (comme beaucoup d’autres d’ailleur) qu’Apple va poursuivre sa « croisade » en sortant rapidement un ordinateur portable, utilisant les technologies de l’iPhone… ça devrait faire un carton !

Vrai lancement des disques durs SSD

Tout est là pour que les disques durs sans disque dur (à mémoire flash quoi) se développent vraiment. C’est important car ça va changer la performance de nos ordinateurs (le disque dur est la partie la plus lente), leur poid et leur autonomie.

Sortie d’un ordinateur utilisant l’interface type DS

C’est une idée que j’avais en tête depuis longtemps (la métaphore du livre qu’on ouvre, avec un écran à gauche et à droite). Nintendo l’a fait avec sa DS, mais je pense que cette idée pourrait être reprise pour un ordinateur portable… Allo, Steve ?

Rachat (très cher) de Facebook par un grand (Google ? Microsoft ? Yahoo ?)

FaceBook ne peut pas laisser indiférent les grands acteurs Internet. La valeur du service est très élevée : savoir qui est en relation avec qui, ça vaut de l’or… Mon favoris serait bien Google, mais l’investissement de Microsoft peut changer la donne…

Bataille sur le terrain des interfaces riches : avantage Adobe

Rude bataille sur le terrain des interfaces riches, avec la monté en puissance de Microsoft avec Silverlight pour essayer de contrer Adobe sur le terrain Flash / Flex / Air. Mon pronostic : avantage Adobe en 2008, mais Microsoft nous a montré par le passé qu’ils savent tenir la distance, et qu’ils deviennent dangereux vers la version 4… Cela met la pression à Adobe, et c’est tant mieux pour nous !

Et pour le e-commerce…

Les grands acteurs multiplient les expériences « rich commerce »

Le Rich commerce : le e-commerce utilisant les interfaces riches pour vendre plus, vendre mieux, vendre différemment… Un vrai sujet, dont je vous reparlerais bien vite…

Comme je l’ai souvent dit, la solution est de choisir « le beurre et l’argent du beurre ». C’est à dire, poursuivre le développement du site « traditionnel », et de développer en parallèle d’autres sites, utilisant des interfaces plus innovantes. Ce n’est pas un hazard si c’est la stratégie d’Amazon…

L’autre axe, c’est d’enrichir le coeur du service, en ajoutant, aux bons endroits, des contenus « riches ». Je suis ainsi convaincu que la vidéo va poursuivre son développement en 2008.

Pour la 3D, je pense qu’il y a des expériences intéressantes, mais que le vrai développement de la 3D pour le e-commerce attendra encore un peu…

Développement de la poche de valeur, entre les marchands et les clients

C’est l’un de mes sujets favori !

Je ne prends pas beaucoup de risque sur un tel pronostic… Cette valeur est déjà bien réelle, avec des acteurs comme Kelkoo, Shopping.com…

Mais ce marché doit évoluer, se restructurer. Cette valeur est aujourd’hui bien peu cultivée !

Je prédit donc la sortie de nombreux nouveaux services sur ce secteur. Pour les utilisateurs, la difficulté sera de choisir parmi la multitude de services, qui se ressemblent un peu tous… Jusqu’à ce que certains trouvent la recette miracle, comme Facebook ans un autre domaine. Je pense que la concentration dans ce domaine se fera, mais plus tard (faut bien que j’en garde pour 2009 😉 ).

Vrai démarrage du m-commerce

Là je prend un risque. Je suis sûr que ce jour viendra, mais quand ? C’est une question compliqué, lié pour beaucoup aux grands opérateurs. Ils s’accrochent à leurs « vaches à lait » mais les brèches s’ouvrent, avec comme signe marquant le deal signé par Apple avec Orange (partage des revenus, entre Apple et Orange sur les services, services gérés par Apple et non par l’opérateur…).

Le monde SAAS selon Amazon

Pour tout le monde, Amazon, c’est un boutique de vente en ligne.

Mais Amazon a également une offre SAAS qui s’enrichie de mois en mois.

Le SAAS, c’est l’idée, à mon avis promise à un très grand avenir, que les systèmes d’informations vont évoluer, et que ces systèmes seront de plus en plus répartis, et géré non pas par les entreprises directement, mais par des tiers.

Le leader du domaine, c’est bien entendu salesforce.com qui propose une solution CRM en mode SAAS donc.

C’est donc une approche « métier », c’est à dire proposer un service, qui cible directement un besoin de l’entreprise (le suivi des contacts commerciaux en l’occurence).

Logo d'Amazon Web ServicesAmazon propose une approche opposée, qui « part du bas ».

Ils ont commencé par S3 (Simple Storage Service), qui consiste à proposer du stockage en mode « service » : un client peut ainsi louer en ligne un espace de stockage.

Le prix est à l’usage, 100% dépendant des volumes :

  • 0,18$ par GB et par mois ;
  • 0,10$ par GB envoyé vers l’espace de stockage ;
  • 0,18$ par GB sortant de l’espace de stockage ;
  • 0,012$ par requête.

On paye donc tout, mais 100% au volume et sans limite basse. Un petit service va donc payer quelques $ par mois. On est à fond sur l’idée des petits ruisseaux qui font les grands fleuves.

Amazon a étendu son offre avec la mise en ligne d’une base de données, sur le même principe : Amazon Simple DB.

Le prix est calqué sur le modèle de S3, on paye au stockage, et aux requêtes.

Enfin, Amazon propose une offre de paiement en ligne, également en mode SAAS.

L’idée est clair : proposer des briques de bases, qui permettent de construire des applications en ligne, le plus simplement possible, et avec un prix complètement dépendant de l’usage : pas cher au début, plus cher ensuite, mais si il y a du trafic, on peut imaginer qu’il y a des revenus (quoi que 😉 ).

Je ne sais pas ce que cette expérience d’Amazon va devenir, mais je suis convaincu par l’approche, que ce soit mis en oeuvre par Amazon ou par d’autres.

Petites réflexions sur le business model du logiciel

Le logiciel est un domaine ou les prix sont bizares : Un même programme peut être vendu sur une échelle de prix pratiquement infinie, de la gratuité à plusieurs millions d’euros.

Qu’est-ce qui permet de fixer un prix ? Est-ce le coût de fabrication, plus le coût de maintenance, plus une marge raisonnable ?

Pas du tout, pour le logiciel, comme pour tratiquement tout en fait, le prix n’est fixé que par un seul critère : le prix que les acheteurs sont prêts à mettre.

Cette réflexion est vrai dans d’autres domaines.

Ainsi, on peut trouver une montre pour 100 €, 1 000 €, 10 000 €, 100 000 € …

Toutes ces montres donnent l’heure ! Bien sur, on pourra dire que les matières premières ne sont pas les mêmes. Mais pour une montre à 10 000 €, les matières premières représentent quelle part réelle du prix de vente ? 20% ? Le reste, c’est la part du rêve…

Comme le logiciel est par définition « sans matière première », l’élasticité du prix est totale.

Logiciel et bâtiment

C’est une analogie intéressante, que je vous propose de creuser (c’est le cas de le dire).

Comme je l’ai souvent dit, le e-commerce est mis en œuvre via du logiciel : Front office, back office, suivi des commandes, emailing, … Tous ces composants sont mis en musique via des lignes de code…

Le logiciel est un artisanat neuf, et c’est sain de chercher des repères par rapport à des industries plus anciennes.

Donc le bâtiment.

Pour construire une maison, il faut faire d’abord un plan.

En fait, avant de faire le plan, il vaut mieux creuser le besoin : nombre d’enfants, souhaits (avoir le soleil le matin, …), budget, délais, …

Ensuite, un architecte va faire le plan donc, et il va y avoir plusieurs aller-retours entre l’architecte et le client.

Après, il faut de la patience, tout le monde le sait : on rentre dans la partie réalisation. Un architecte ou un maître d’œuvre va diriger les opérations, et coordonner les activités de plusieurs corps de métier : terrassier, maçon, platrier, électricien, plombier, menuisier…. Pendant cette phase là, on ne peut plus tout changer, et plus le projet avance, et moins on peut changer de choses.

La réussite du projet final tient sur plusieurs critères :

  • L’intelligence de l’architecte, pour réellement comprendre les besoins et envies des clients, qu’ils n’expriment parfois pas clairement ;
  • Le savoir faire de l’architecte, pour trouver les artisans bien adaptés au projet, et les faire travailler au bon moment ;
  • Le savoir faire individuel de chaque artisan : même si le maçon fait un très bon boulot, si le peintre « salope tout », le résultat final sera décevant ;

Par contre, plus les « couches basses » font du bon boulot, et plus on peut rattraper les erreurs : si c’est le maçon qui fait du mauvais boulot, il n’y a pas grand chose à faire…

On peut dire tout ça pour le logiciel :

  • Comme pour le bâtiment, un logiciel doit être conçu, il faut faire des plans ;
  • Il faut faire ces plans en discutant avec le « client » (équipe e-commerce de la grosse entreprise, patron pour la petite entreprise, …) ;
  • Il faut avoir un bon architecte (vous avez mes coordonnées 😉 ) ;
  • Il faut ensuite être très patient, parce que pour monter tout ça, ça prend du temps ;
  • Enfin, le résultat final est dépendant de la qualité des artisans, individuellement.

Mais voilà, le logiciel, ça s’appelle également du soft : on croit que c’est mou.

De plus, le marketing de certains acteurs du logiciel nous laissent croire qu’on peut tout faire, tout demander, n’importe quand, et que le logiciel s’adaptera.

On le sait tous : le nombre de projets ne respectant aucun de ces « fondamentaux » est effarant : on démarre sans plan, on change de plan tout au long du développement, on recrute les équipes sans vraiment « challenger » les compétences par rapport aux objectifs, le tout se faisant sans architecte !

On rentre ensuite dans une spirale infernale, qui creuse l’écart entre les équipes marketing ou management et les équipes techniques. Pour les « marketeurs », la technique coûte cher, ne produit rien de bon, avec des délais incroyables ;
Pour les tecky, les marketeurs changent d’avis tous les jours, imposent des délais irréalistes, et ne reconnaissent pas la valeur du travail fait.

Il y a du pain sur la planche !

Images pour sites marchands avec Scene7

On ne le répètera jamais assez, les photos sont tout à fait fondamentales pour vendre les produits.

Il faut des photos de qualité, montrant le produit sous plusieurs angles.

Il faut des photos d’ensemble, et des photos qui mettent en valeur des détails.

Si on vend dix produits, ce n’est pas un gros problème.

Mais si on vend des milliers, voir des dizaines de milliers, c’est une autre histoire.

Et si ces produits se déclinent, avec des tissus, des options, … Alors, on est en face d’un vrai problème.

C’est là que peut intervenir Scene7, dont j’avais déjà parlé ici (avant leur rachat par Adobe).

Scene7 offre en fait de nombreuses fonctions, permettant de simplifier la gestion des photos et des images.

Une photo = autant d’images que l’on veut

La même photo est utilisée dans différentes pages, et est publiée sous différents formats.

Exemple : un format ‘imagette’ pour une liste, format ‘grande imagette’ pour un affichage sur la page catégorie, format ‘moyen’ pour la page produit, et plusieurs zoom sur certains détails.

Scene7 permet de faire tout ça à partir d’une seule photo. Elle est stockée en grand format, et la bonne image est générée, en fonction de la requête.

Exemple :

Imagette http://s7ondemand1.scene7.com/is/image/DemoCo/Jacket?wid=50

Image myennehttp://s7ondemand1.scene7.com/is/image/DemoCo/Jacket?wid=100

Grande imagehttp://s7ondemand1.scene7.com/is/image/DemoCo/Jacket?wid=300

Vous remarquerez que l’url est la même, seul le paramètre « wid » change, permettant de fixer la taille de l’image désirée.

Autres fonctions

Scene7 permet de décliner une seule photo, en plusieurs couleurs, avec un rendu très proche de la réalité ;

La solution permet également de faire des zooms sur des zones pré-déterminées.

Il est également possible de « poser un tissu » ou un motif sur une photo, en simulant la 3D. On peut par exemple décliner un canapé avec plusieurs tissus ou revêtements cuir.

Texture 1Texture 2

Prix de la solution

La solution est proposée en mode SAAS.

Le ticket d’entrée : 7300 € par an, pour 0,2 Mb de trafic mensuel, cela doit correspondre, d’après Scene7, à un site faisant 50 000 visiteurs mensuels.

Scene7 propose également des prestations de service pour la mise en oeuvre de la solution.

Pub SAAS – SalesForce

Une pub bien « punchy » sur la techno SAAS et l’offre SalesForce :

Vous le savez, je suis complètement convaincu que l’avenir de l’informatique d’entreprise, c’est le SAAS : les entreprises de demain n’auront plus qu’à interconnecter des services, achetés chez différents fournisseurs.
Plus de problème de matériel, de gestion des versions, d’intégration « interminable », …
Cette révolution est écrite ! C’est une certitude !

(Trouvé chez Jérémy)

Quel avenir pour la programmation ?

Depuis que je m’intéresse à l’informatique, j’entends parler de « la fin de la programmation ».

Plusieurs mythes se cachent derrière « ce fantasme » :

  • « La programmation est une tâche répétitive, finalement sans grande valeur ajoutée, et donc facile à automatiser » ;
  • « L’informatique fait des progrès, et on va arriver à une situation ou il suffira de décrire le problème, l’ordinateur se chargera de le résoudre » ;
  • « On va remplacer la programmation par des outils graphiques : plus besoin de programmer, on assemble des composants, et hop, le problème est résolu ».

Mes réponses :

  • Si la programmation est parfois répétitive, c’est une activité à haute valeur ajoutée : c’est bien la qualité d’un programme qui fera la qualité du service. Aujourd’hui, rien ne remplace la qualité d’un bon programmeur ;
  • Aucun ordinateur n’est aujourd’hui capable de résoudre automatiquement un problème, et rien de permet de dire qu’on pourra faire ça dans les prochaines années ;
  • La programmation graphique est un leurre : cela donne l’impression que c’est plus facile, mais il n’en est rien. Ce qui est important, c’est la concision de la programmation : un programme court, bien écrit, est facile à lire, aussi facile à lire qu’un graphique.

Bien sûr, les outils informatiques font de vrais progrès, qui permettent de gagner en productivité. Ainsi, par exemple, dans la plupart des langages modernes, le programmeur ne gère pas directement la mémoire (libération automatique des objets inutilisés).

Quelques facteurs permettant de gagner en productivité :

  • L’environnement de développement : certains environnement sont de pures merveilles pour programmer vite et bien (je pense à Visual Studio par exemple : Jérémy sera content ce coup ci 😉 ).
  • Les librairies : plus personne ne programme « à partir de zero ». Pour n’importe quel problème, on trouve des composants, permettant de gagner du temps : soit dans du code « open source », soit en achetant des bibliothèques. Les communautés de programmeurs sont très bien organisées, et Internet est une place d’échange très vivante.

Comment cela peut évoluer ?

A mon sens, beaucoup de choses peuvent évoluer…

Ainsi, la séparation entre la logique applicative et la présentation n’est pas encore parfaite. C’est pourtant une séparation tout à fait fondamentale.
Autre exemple, on parle beaucoup de services Web 2.0 : et bien la programmation de tels services, avec une intelligence applicative répartie, entre le client et le serveur, est très délicate, avec des outils très manuels. Je suis convaincu que des outils beaucoup plus puissants vont émerger, permettant une programmation « Web 2.0 » plus propre et plus facile.

Mais un autre axe, a mon sens fondamental, c’est la sortie de la programmation « stateless » (difficile à expliquer simplement !) : un programme stateless est un programme qui s’arrête à chaque page web envoyée. Le serveur gère des centaines ou des milliers d’utilisateurs simultannés. Pour ne pas surcharger ce serveur, le programme s’arrête après avoir renvoyé une page. Avantage : le serveur peut gérer beaucoup plus d’utilisateurs simultannés, car il ne s’occupe que de ceux qui font une requête (un utilisateur qui regarde sa page ne consomme donc plus aucune ressource sur le serveur). Mais cela rend les programmes difficile à lire, car découpés, écran par écran. A mon sens, cette programmation est de trop bas niveau, ce découpage devrait être automatisé.

Autres billets sur ce thème :

Pour un « Small Business Act » européen ?

On dit souvent que c’est plus facile de développer une boite (logiciel ou Internet) aux US qu’en Europe.

Plusieurs raisons sont souvent évoquées :

  • La culture, surtout dans la Silicon Valley, très orienté « logicielle »  et innovation ;
  • La taille du marché américain.

Il est clair que pouvoir vendre son produit sur un marché aussi grand que le marché américain, c’est un atout clé.

Mais il y a autre chose, il y a le « small business act ».

Concrètement, c’est une loi, qui oblige les administrations (et peut être les grands groupes ? à vérfier) à travailler, pour une petite part, avec des petites boites, des startups.

L’idée, c’est que, sans contrainte de ce type, les grosses boites ne travaillent pas naturellement avec les toutes petites, parce qu’une toute petite boite, c’est un choix toujours plus risqué.

Ce mécanisme est un moteur très puissant pour aider le développement de nouvelles boites.

Ma question est simple : pourquoi ne pas importer ce mécanisme en europe en général, et en France en particulier ?