Nokia rachète Symbian : analyse

Vous l’avez surement lu : Nokia rachète Symbian.

Symbian, c’est un OS plutôt orienté pour les mobiles. Pour la petite histoire, Symbian, à l’origine, c’est l’OS des Psion (si je me laisse aller, je vais vous parler de mon Psion 5mx : que c’est énervant que cette boite ait loupé le virage de la convergeance PDA / Mobile…).

Ce que je lis, c’est que Nokia aurait racheté Symbian pour réagir à Android.

Peut être…

Moi, aujourd’hui, celui qui m’impressionne, ce n’est pas Android mais Apple avec son iPhone.

J’entends déjà les objections :

  • Tu es un inconditionnel d’Apple,
  • L’iPhone est un truc de Geek, réservé à une poigné de parisiens branchés,

Sur le premier point, c’est un procès d’intention ( ;) ).

Sur le deuxième point, on verra, on verra… Quand les centaines d’applications vont débarquées sur l’iPhone, ça va faire mal… J’en fait le pari (qui veut jouer ?).

Android ? android n’est pas encore installé dans un mobile… et l’histoire à montré que c’était complètement différent, de faire un OS indépendamment du hard ou de faire un OS spécialisé pour un matériel donné.

C’est là toute la force d’Apple : ils maîtrise la chaîne complète (hard + soft), et peuvent ainsi avoir un OS plus léger et plus performant, parce que l’OS sait sur quoi il tourne : il ne doit pas avoir dix mille configurations…

Voilà, elle est là mon analyse :

Je pense que Nokia a (enfin) compris que pour augmenter la valeur de ses terminaux, il doit investir plus et mieux dans le logiciel.

Dans ce milieu, le logiciel, c’est le maillon faible, et depuis longtemps.

Motorola gère par exemple plusieurs OS (des terminaux linux, Windows Mobile, Symbian, plus, je crois, un système maison, et se disperse.

Les terminaux de Nokia ont une richesse fonctionnelle incroyable, mais la navigation dans les applications est très loin derrière “l’expérience iPhone”.

Maintenant, être capable de faire ce qu’à fait Apple, au niveau de la qualité de l’interface, ça va demander vraiment du temps à Nokia (et aux autres) : très probablement plus d’un an. Si pendant ce temps apple avance bien, ils peuvent vraiment bousculer ce marché.

Et oui, cette maîtrise du logiciel, à ce niveau de complexité, de richesse, c’est pas un travail qui se fait en 5 minutes.

Nokia a compris ? Peut être. D’autres acteurs devraient également se poser des questions et comprendre : l’avenir passe par la maîtrise du logiciel !

La longue traine vue par Dassault System

Tout le monde ne le sait peut être pas : Dassault System est aussi un éditeur de logiciel, dans le domaine du PLM.

3DS, c’est 8000 personnes (quand même !), dont la moitier en R&D.

3DS est leader sur son marché, et propose tout un tas d’outils, permettant de modéliser en 3D des produits. Ces outils sont historiquement utilisés pour les produits industriels (avions, voitures, …) mais aujourd’hui, le cadre d’utilisation de ces outils à bien changé, et sont également utilisés pour l’électronique grand public, ainsi que, par exemple, par les grands magasins, pour visualiser une mise en rayon virtuelle.

Bon, jusque là, on est encore dans un contexte purement B2B.

Mais cela évolue, surtout avec l’acquisition de Virtools (2005).

Donc aujourd’hui, 3DS propose 3DVIA :

3DVIA

La vision, c’est qu’après le texte, l’image, le son et la vidéo, la prochaine grande révolution pour le web sera la 3D.

Ce portail essaie de construire cette vision, avec tout un tas d’outils et de services.

On peut par exemple naviguer dans une bibliothèque de modèles 3D, qu’on peut consulter directement dans le navigateur (avec un plugins à installer). L’idée, c’est de construire le Youtube du 3D :
Copie d'écran de l'espace de partage de modèles 3D

Mais les ambitions de 3DS vont plus loin, avec d’autres idées plus futuristes.

3DS a ainsi signé un deal OEM avec Microsoft, pour enrichir MS Virtual Earth, et permettre à chaque utilisateur d’ajouter des objets 3D sur le monde virtuel de Microsoft. On peut ainsi modéliser sa propre maison sur son emplacement :

3DS propose d’aller encore plus loin, avec plusieurs idées “Web 2.0″.

Ils ont ainsi développés une application FaceBook, permettant d’ajouter et de manipuler des objets 3D directement dans le réseau social.

Mais le plus étonnant est sans doute l’idée de la 3D “long tail” : une application permet de co-créer un modèle 3D sur Internet. On serait donc tous de futures créateurs 3D…

Exemple donné : un constructeur automobile diffuse le modèle 3D de la voiture en préparation, et propose à tout un chacun de modifier ce modèle. On peut ainsi changer la forme d’un tableau de bord qui ne plait pas, déplacer ou ajouter des éléments, …

Partagez vous cette vision ?

Pour ma part, je ne suis pas complètement convaincu.

Je pense bien sûr que la 3D va être de plus en plus utilisée, surtout avec la généralisation des player 3D (Flash ou même nativement dans les navigateurs).

La 3D peut être un bon vecteur pour améliorer la “proximité” avec certains produits, surtout pour les produits complexes.

Mais je ne pense pas que la 3D va prendre une place si importante que ça sur le Web, et je crois encore moins à l’idée qu’on va tous manipuler des modèles 3D (il faut s’entraîner vraiment longtemps avant d’arriver à faire ce qui est montré dans la vidéo ci-dessus).

Club innov-it sur le SAAS

J’étais ce matin à une présentation de sociétés, ayant en commun d’être sur le créneau du SAAS (organisé par innov-it).

Le SAAS, c’est le nouveau nom pour l’ASP. En un mot, c’est utiliser un service en ligne, sans installation chez vous donc.

On est tous des utilisateurs aujourd’hui de solutions SAAS, via gmail par exemple.

J’y suis allé pour plusieurs raisons : pour faire de la veille, et voir s’il n’y avait pas dans le lot quelques belles innovations en préparation pour notre domaine préféré : le e-commerce. L’autre raison, vous le savez, c’est que je suis convaincu qu’à moyen terme, le SAAS va se développer énormément.

J’ai ainsi appris qu’on avait un club en France sur l’ASP : l’ASP Forum. Hum, pas très glamour ce site ;).

J’ai pu voir défiler une vingtaine de boites, venues présenter leur projet, soit pour rechercher des partenaires, soit pour chercher des sous.

J’y ai vu quelques boites intéressantes et liées au e-commerce, dont je vous parlerais bien vite (dont une solution pour automatiser la saisie des formulaires, concurrent de spoonkey donc, ou autres solutions pour réaliser des sites 3D… concurrent de VB2S donc).

Un regret : personne n’a parlé des enjeux à venir pour le SAAS. On n’a pas parlé, par exemple, de la problématique de mashup, pourtant fondamentalement liée au modèle SAAS : comment brancher plusieurs solutions SAAS entre elles ?

Tous les articles de ce blog sur le SAAS.

Livre blanc sur les framework PHP

Quand on doit développer son site marchand, on choisi le langage et l’environnement.

Mais on fait rarement un développement “from scratch” : on utilise soit un framework, soit une solution open-source.

J’en reparlerais, mais je voulais juste signaler le livre blanc, produit par Clever Age, sur les Framework PHP :

Téléchargez le livre blanc, publié par Clevar Age, sur les framework PHP

Ces Framework permettent de gagner pas mal de temps, quand on doit développer un site. Mais il ne sont pas tous équivalents. Ce document compare CakePHP, Symfony, Zend Framework et Code Igniter.

Quel environnement technique pour un site e-commerce ?

Quand on se lance dans un projet e-commerce, on peut se retrouver dans la situation ou l’on doit choisir un langage de programmation, et plus largement, un environnement technique (OS, serveur, langage, base).

La question est importante, parce qu’elle a beaucoup de conséquences, sur les équipes, l’architecture, et les composants, qu’on pourra plus ou moins facilement ajouter.

Quels sont les grands éléments de cet environnement ?

  • Langage de programmation
  • Serveur
  • Base de données
  • Environnement de programmation
  • Système d’exploitation

On peut commencer par parler des langages de programmation.

D’abord, il faut dire que tous les langages ont une couverture fonctionnelle identique : il n’y a pas de langage qui permet de faire quelque chose, qu’on ne peut pas faire avec un autre langage.

Comment choisir alors ?

Voici quelques critères :

  • Compétences des équipes : Si les équipes maîtrisent un langage (Java par exemple), cela prendra du temps de les former à un nouveau langage. Ce n’est pas forcément rédhibitoire, surtout si on a du temps, mais, existe-t-il des projets ou on a du temps ;) ?
  • Budget : Certains langages sont gratuits (Java, PHP, Ruby On Rails), et certains sont payants (.NET).
  • Délais. Certains langages, associés à des librairies, permettent de gagner du temps, de développer les services plus vite.
  • Environnement existant : Vous avez déjà tout un environnement, basé sur une technologie. C’est sans doute une bonne idée de faire un développement cohérent par rapport à cet existant.
  • Contour fonctionnel : avec le langage on choisi “de facto” les librairies sur lesquelles on pourra s’appuyer. Si par exemple on doit intégrer un module de CRM, PHP permet de faire ça assez facilement, avec des modules comme SugarCRM.
  • Robustesse de l’application : il est beaucoup plus facile de faire du code robuste en Java ou .NET qu’en PHP. PHP, pour rester sur cet exemple, est tolérant par rapport aux erreurs. La concéquence est qu’il est beaucoup plus difficile d’écrire une application 100% bug free en PHP qu’en Java. Bon, ce point doit être modéré, parce que la qualité finale dépend de tout un tas de facteurs : librairies utilisées, compétences des équipes, …

Je ne mets pas la performance comme critère, parce qu’on peut faire des services performants avec tous les langages (on peut également faire des systèmes qui rament avec tous les langages, c’est même assez facile ;) ). A chaque fois, il convient “simplement” d’ajuster l’architecture.

Bon, vous me direz peut être que tout ça ne vous guide pas vraiment !

Prenons les trois langages les plus utilisés aujourd’hui : PHP, Java et C#.

PHP

Avantages

  • Gratuit ;
  • Très bien intégré dans la couche LAMP (Linux / Apache / MySQL / PHP) ;
  • Grosse communauté d’utilisateurs, et donc beaucoup de librairies disponibles ;
  • On trouve (relativement) facilement des ressources, soit pour recruter, soit en prestation ;

Inconvénients

  • Trop tolérant aux erreurs (pas de typage, …), et donc cela augmente “mécaniquement” le risque d’avoir un service buggé ;
  • Environnement de développement assez pauvre (pas de débugger encore bien stable).

Java

Avantages

  • Gratuit, mais attention, il faut ajouter un serveur d’application qui n’est pas forcément gratuit. Le serveur d’application est une couche, qui s’intercale entre Apache (le serveur Web) et le langage Java.
  • Très bon environnement de développement, gratuit (Eclipse) ;
  • Grosse communauté, on trouve beaucoup de composants libres ou pas sur le marché ;
  • Langage de très bonne qualité, qui permet, plus facilement qu’en PHP, de faire des programmes robustes et fiables.

Inconvénients

  • On trouve un peu moins de ressources qu’en PHP.
  • Les développements sont souvent un peu plus long qu’avec PHP. C’est la concéquence, le prix à payer ;
  • Comme il y a moins de développeurs Java que PHP, les prix sont un peu plus élevés. La facture est donc un peu plus lourde qu’avec du PHP.

C#

Avantages

  • Au niveau qualité du langage, on est au même niveau qu’avec le Java, mais l’intégration entre le langage et l’environnement de développement (Visual Studio) est plus forte. Au final, le développeur a entre les mains un outils de développement de très grande qualité ;
  • On bénéficie du support d’un grand éditeur ;
  • On peut gagner plus de temps, par rapport au Java, grâce aux nombreuses librairies fournies par Microsoft.

Inconvénients

  • Solution la plus chère, à tous les niveaux : licences, ressources.
  • Ce choix est très structurant, et le choix Microsoft a tendance à “se répandre” : on prend .NET, puis SqlServer, puis IIS, puis Windows Server, puis… On fini rapidement par avoir l’ensemble des logiciels Microsoft, et on revient sur le premier point : attention à la facture !

Au final

Pas simple, pas de réponse universelle.

Autre point important : un projet a une durée de vie limitée, une période d’amortissement. Un site qui vit 3 à 5 ans, c’est bien. Aller au delà n’est pas forcément très raisonnable.

encore un autre point : le choix n’est pas forcément unique : on peut faire le front en PHP, le back en Java, … Avec les Web Services, les différents langages savent dialoguer. Mais : c’est des développements complémentaires et il faut dans ce cas avoir les deux compétences.

N’hésitez pas à commenter ce billet : j’ai essayé d’être synthétique, mais j’ai sans doute oublié des points !

Quel pricing pour les offres SAAS ?

Le SAAS est l’avenir de nos systèmes informatiques, en particulier pour le e-commerce.

Pour que cette mutation se fasse, il faut que les offres matures voient le jour, avec des prix adaptés.

Le modèle Salesforce

La star du SAAS, c’est Salesforce.com (solution qui permet de gérer les données liées à la prospection commerciale et au suivi de la relation avec les clients).

Le prix est principalement basé sur le nombre d’utilisateurs. Le prix d’appel est de 20$ par utilisateur et par mois.

Le modèle de prix est excellent : pour une petite boite, avec par exemple 2 ou 3 comptes, le prix est très bas.

Et puis, les revenus d’une boite sont toujours liés aux nombres de commerciaux. Le prix de la solution s’adapte donc très bien aux petites boites et aux gros groupes.

A l’autre bout de la chaîne, l’exemple d’Amazon

Amazon propose également des solutions SAAS, mais en “partant du bas”.

Amazon propose, avec S3, une solution de stockage et d’hébergement de services en lignes.

Voici la grille de prix proposé par Amazon :

Storage
$0.18 per GB-Month of storage used

Data Transfer
$0.10 per GB - all data transfer in

$0.18 per GB - first 10 TB / month data transfer out
$0.16 per GB - next 40 TB / month data transfer out
$0.13 per GB - data transfer out / month over 50 TB

Requests
$0.012 per 1,000 PUT or LIST requests
$0.012 per 10,000 GET and all other requests*

Comme vous pouvez le voir, le prix est 100% basé sur l’usage. On paye le stockage et les flux, entrants et sortants.

L’avantage de ce modèle est qu’il est lié aux coûts d’Amazon (qui doit acheter des disques pour stocker les données, et acheter de la bande passante).

Ce modèle présente à mon avis deux inconvénients :

  • Il n’est pas forcément évident, pour l’utilisateur, d’anticiper le prix de la solution ;
  • Le prix n’est pas dépendant des revenus. Cette solution sera très avantageuse pour certains, et très cher pour d’autres.

Les exemples liés au e-commerce

Plusieurs éditeurs de logiciels proposent dès aujourd’hui des solutions de type SAAS. Je pense en particulier à des solutions de moteur de recherche, à intégrer dans les sites marchands.

A mon sens, les solutions ne sont pas très matures (en tout cas au niveau du “packaging”, de l’offre. Un signe qui ne trompe pas : impossible d’avoir une grille de prix. On est en fait sur du “sur mesure”.

Autre point : ces solutions visent plutôt les gros acteurs. On comprend la logique : il vaut mieux vendre une solution chère à un petit nombre d’acteurs que diluer son effort commercial, avec des petits revenus pour chaque vente.

C’est vrai, mais :

  • La concurrence est très rude : tout le monde cible les “gros poissons” ;
  • Le principe même du SAAS, c’est qu’on peut cibler tout le monde, y compris les petits acteurs, et qu’on y gagne de l’argent, avec un modèle du type ‘les petits ruisseaux font les gros fleuves”.

Autre élément : ces solutions sont aujourd’hui assez “technique” à mettre en œuvre. On est loin du “plug & play”.

Quel avenir ?

Les solutions doivent donc s’améliorer, avec une mise en œuvre plus rapide, et donc une interface plus simple, mieux travaillée (marrant, ça fait référence, sans que ce soit prémédité, à mon billet précédent).

On doit trouver un prix acceptable pour les petites boites et dans le même temps un prix qui rapporte suffisamment pour permettre à l’éditeur de vivre, en faisant évoluer la solution (investissement R&D).

Prenons l’exemple d’un moteur de gestion de catalogue, en SAAS donc.

Quels peuvent être les éléments de pricing :

  • Eléments “physiques” :
    • Nombre de produits ;
    • Espace physique occupé (un peu comme S3) ;
    • Nombre de visites ;
  • Autres critères :
    • Nombre de produits vendues par mois ;
    • Chiffre d’affaires ;

Le chiffre d’affaire est un critère qui peut sembler intéressant pour l’éditeur, mais il est délicat à faire accepter par les clients en général et par le e-commerçant en particulier.

Les critères physiques ont l’avantage de l’objectivité, mais cela ne me semble pas parfait non plus : un commerçant peut démarrer avec beaucoup de produits, sans pour autant avoir des revenus importants… Un peu comme si Salesforce.com nous faisait payer au nombre de contacts.

Vous le voyez, il reste du travail…

Autres articles sur le sujet :

L’art de l’abstraction

bien programmer est un art, où tout au moins un artisanat, un peu comme un ébéniste.

Par programmation, j’entends l’ensemble des activités, permettant de passer de l’expression d’un besoin à un système informatique. Cela regroupe donc ce qu’on appelle l’analyse, la conception, la programmation, les tests, …

Bien sûr, les grosses boites vous parlent de processus industriels.
Ils ne vont pas vous dire le contraire, quand on allonge une facture de plusieurs centaines de milliers d’euros…
Ce sont les mêmes qui réalisent les systèmes informatiques des grosses banques… Vous me suivez ?

Mais la réalité est aujourd’hui plus simple, toute nue : la qualité de votre système informatique, quel qu’il soit, dépend de la qualité des artisans qui le construisent.

Une des qualités fondamentale pour bien programmer, c’est l’art de l’abstraction.

Pourquoi ? (j’aurais pas du regarder Sarkozy l’autre soir moi, j’ai une rechute)

Quand on doit réaliser une application, la base de la programmation, c’est de découper le problème, dans deux sens : verticalement et horizontalement.

Verticalement : on sépare le problème, fonction par fonction (pour un front office, on parlera par exemple du processus achat, du catalogue produit…)

Horizontalement : on sépare le problème en couche (toujours pour notre front, on pourra faire une couche pour les données, une couche pour les objets métiers et enfin une couche présentation).

Ce découpage à pour but de définir des modules, entité informatique ayant d’une part une complexité maîtrisable et d’autre part une certaine homogénéité.

Pourquoi ?

  1. Un module doit être plus simple à programmer parce que le problème qu’on cherche à régler est une partie du problème global.
  2. Le module est plus homogène parce qu’il ne résoud qu’un type de problème (les données pour le processus achat par exemple).

Le programmeur, notre artisan, doit donc être capable de faire abstraction des autres problèmes (voisins de gauche et de droite et du dessous) pour se concentrer sur son “morceau” du problème.

ça encore, c’est pas le plus dur.

Le plus dur, c’est qu’il doit à son tour donner une interface à son module ayant le bon niveau d’abstraction.

Il doit bien faire la différence entre “sa cuisine interne” et la vue qu’il donne sur son module.

Concevoir l’interface d’un module est réellement une partie passionnante. On se retrouve dans la situation de définir le “panneau de contrôle”, donnant donc une vision la plus simple et la plus abstraite du problème qu’on doit résoudre.

Les couches logicielles

Couches, du hard vers l'applicatif

Donc, à la base, il y a du matériel.

Pour donner vie à ce matériel, on rajoute un système d’exploitation.

Par dessus ce système, on ajoute des applications.

Une application bien particulière est le navigateur Internet.

Ensuite, nos services Internet peuvent prendre vie, soit directement dans le navigateur, soit via une extension, Flash ou Java.

Chaque flèche indique un endroit pour développer une application.

Live from OnAir

Je m’étais inscrit à la journée OnAir de Paris.Le monde est tout petit, c’est l’occasion de croiser Fred, Olivier Ezratty, Christophe Lauer

La présentation était réalisée par toute l’équipe d’évangélistes Adobe : Mike Chambers, Rayan Stewart, …

AIR, c’est la solution d’Adobe, pour “sortir du navigateur” et avoir des applications qui tournent directement sur le bureau de nos ordinateurs, avec une vrai logique multi-cible (PC, Mac, Linux).

Bon, faut le dire, cette journée est “terriblement” technique !

J’en parlais avec Christophe Lauer, évangéliste microsoft sur les technos Sylverlight, c’est marrant comment Microsoft qui a un background technique fait tout pour draguer les designer, en faisant des présentations ou la programmation est plutôt caché, alors qu’Adobe, qui vient plus du monde des designers, fait des présentations super techniques (on a vu des lignes de commandes ;) ).

Autre point vraiment intéressant : les logos des premiers utilisateurs : Salesforce.com, SAP, …

Comme évoqué dans ce billet sur RichCommerce, la logique AIR prend tout son sens pour certains éditeurs, c’est un retour de balancier après une période “full web”.

L’approche AIR est une vrai alternative, pour développer plutôt simplement une application ayant une interface nickel, qui tournera sur toutes les machines, et qui sera assez simple à déployer.

A ce titre, Adobe joue relativement seul sur ce terrain : Java n’est pas aussi simple et Microsoft n’a pas d’alternative (WPF n’est pas multi-OS et Sylverlight ne sort pas du navigateur).

CRM / SugarCRM - Partie 2

Voici donc la suite de mon billet sur le CRM et SugarCRM.

SugarCRM donc.

L’application permet, à la base, de gérer les données suivantes : Contact, Compte (regroupe plusieurs contacte), Affaire (associée à un Compte), Evènement (appel téléphonique, mail)…

Mais le modèle est particulièrement évolutif. Fondamentalement, le système permet de gérer… des données ayant des relations entre elles (on peut difficilement faire plus générique !). C’est pourquoi SugarCRM peut être utilisé pour des applications très variées, bien loin du modèle initial.

Autre sujet intéressant : comment brancher un site marchand sur le système de CRM ?

2 approches : on peut avoir les deux systèmes séparés, chacun ayant sa propre base de données.

Avantage : c’est propre, et les activités “back” ne viennent pas impacter ce qui se passe au niveau du Front.

Le problème est qu’il faut alors synchroniser les bases. Cette synchronisation va nécessiter un développement spécifique, qu’il faudra faire évoluer en permanence, pour des évolutions sur le front ou sur le back.

Autre solution : tout construire sur SugarCRM. Un client d’Ysance l’a fait, et ça marche très bien.

L’avantage est évident : un seul modèle de données, rien à synchroniser.

Problème ? Il faut être attentif à ce que les opérations du back n’impactent pas trop les performances du site. Cela va bien pour un site ayant un trafic “raisonnable”. C’est une bonne solution pour commencer, il sera toujours temps de faire évoluer le modèle.