Archives de l’auteur : François

La courbe d’apprentissage pour coder

Au bout de combien de temps un programmeur est il vraiment au top dans un environnement de programmation donné ?

J’ai discuté de ce sujet avec Thomas.

Sa réponse, c’est que, quand on est un bon, on rentre assez vite dans un nouvel environnement.

Mais ce n’est qu’au bout de 2 ou 3 ans qu’on se sent vraiment au top.

D’après Thomas, la courbe est par paliers :

On est à 20% en 1 jour, 40% en 1 semaine, 60% en 1 mois. 80% en 1 an…

Les derniers 20% sont les plus longs !

Bon, ce que cela montre, c’est que si vous démarrez un projet sur une plate forme donnée, avec des équipes qui ne connaissent pas la technologie, vous allez perdre du temps, et l’équipe risque de faire des mauvais choix, par méconnaissance technique.

Alors, pour vous, c’est quoi la courbe d’apprentissage ?

Faire du logiciel, c’est une histoire de processus et de culture

Bon, je commence par expliquer que faire du logiciel, c’est de l’artisanat.

Et ensuite, je fait un billet ou je parle de processus ?

Oui, et les deux sont parfaitement compatibles !

Dans le billet précédent, j’explique, pour faire simple, que ce qui compte, avant tout, c’est la compétence des équipes. Chaque développeur doit être au top.

Après, il ne s’agit pas simplement de mettre X développeurs et d’attendre que le temps passe.

S’il est complètement fondamental de responsabiliser au maximum chaque développeur, il est également indispensable de mettre en place des méthodes, des processus très précis.

A ce titre, je vous conseille de regarder cette vidéo, qui explique les processus en place chez Facebook :

Facebook a un processus de mise à jour qui permet une mise en production tous les jours (!!!)

Donc, pour reprendre le titre :

La culture, c’est celle du dieu code.

Les processus, ce sont toutes ces méthodes et outils qui permettent d’automatiser au maximum la chaîne de production, tout en gardant le maximum de responsabilité entre les mains des développeurs.

Les méthodes à mettre en place sont bien sûr basées sur les méthodes agiles.

(vidéo) Sarenza monte en puissance et s’équipe pour automatiser la préparation des commandes

Super vidéo, je trouve, sur Sarenza.

Le début est très « TFI » ( 😉 ) mais si vous êtes un peu patient, vous verrez pleins de choses intéressantes, dont l’équipement qu’a choisi Sarenza pour automatiser le picking et augmenter la capacité de traitement des commandes : ils sont passés de 100 commandes heure max à 10 000 commandes par heure :

7ème Bargento… Mais c’est la semaine prochaine !!!

Le bargento, c’est l’évènement de référence, en France, pour se plonger dans la communauté Magento.

Cette année, l’équipe qui organise l’évènement « envoie du lourd », avec des témoignages de folie (Hermès, Zadig & Voltaire, TF1, l’IGN ou bien Smartbox), des experts, des confs, …

Bref, si Magento vous intéresse de près ou de loin, c’est l’évènement à ne pas rater…

Les infos pratiques :

:
CNIT, 2 Place de La Défense, 92053, PARIS La Défense

Quand ?
Mardi 29 mai 2012

Comment s’inscrire ?
Pour s’inscrire, rendez-vous sur le site du Bargento !

Heu, pour ma part, je vais le rater d’ailleurs, parce que je donne une formation ce jour là 😉

Particulièrement dommage, car j’avais vraiment des trucs à voir…

fab, une référence pour le f-commerce ?

Fab est un site e-commerce :

Quelles sont les spécificités de ce site ?

Déjà, il faut donner son mail pour entrer :

Hum, ce n’est pas très habituel, ni très conseillé. C’est une bonne idée pour des sites très particuliers, qui ne comptent pas sur le référencement naturel.

Fab est un site qui vend des produits design.

Le site fonctionne un peu sur le principe de vente privée :

Les produits sont en vente sur une plage de temps donnée :

Une fois sur une fiche produit, c’est presque comme sur n’importe quel site e-commerce :

On a un gros discount sur le prix, et un bouton d’ajout au panier bien visible.

Ce qu’on remarque, c’est au dessus, le « Add to Favorites » . Sur la plupart des sites, ce type de fonction est discret. Ici, c’est le deuxième élément mis en avant, juste après le bouton d’ajout au panier (quand même 😉 ).

Remarquez en haut, toutes les options de partage : Twitter, Facebook, le bouton like de Facebook, et enfin, le bouton de Pinterest !

On sent bien que pour Fab, le partage, c’est pas de la rigolade !

Si je clique sur le coeur, ce message s’affiche :

Deux choses intéressantes :

  • On est sur une fonction bien plus évoluée que le « like » de base de Facebook
  • Regardez le message en bas de la fenêtre : si cette invitation me dérange, je peux la désactiver.

Poursuivons. Je clique sur le lien proposé, pour montrer ce produit à mes amis sur Facebook  :

Cela ouvre une fenêtre, qui me demande si je veux ajouter l’application Fab à Facebook :

Bon, cette étape est un peu anxiogène, on me dit que cette application va publier en mon nom des informations sur les produits. …

Je ne connais pas le taux de transformation à cette étape un peu sensible… ça serait intéressant d’avoir plus d’infos là dessus.

Ce qui est sûr, c’est que c’est bien mieux, de mon point de vue, d’avoir une application de la marque du magasin.

Bon, allé, tant pis pour mes amis Facebook, je dis ok :

Le résultat : je reçois un mail :

Le bouton, on ne peut plus incitatif, envoie sur la page Live Feed du site :

Au survol d’une vignette, l’ensemble des boutons de partage sont affichés

Je peux certe acheter ce produit, mais le partager, en parler autour de moi, à mes amis, c’est presque plus important !

Une autre chose m’a marqué : le site bouge en permanence. En haut de la page, un bouton affiche le nombre de nouveaux éléments :

Un clic sur ce bouton et la page se met à jour, en ajax.

Bon, vous ne pouvez pas ne pas avoir vu le bouton d’à côté : Invite. Oui, partager, inviter…. on est clairement dans le social à fond !

Un clic sur Invite m’amène sur une page qui affiche la liste de mes amis, et me propose de choisir les amis avec qui je veux faire du shopping ;).

La fonction d’ajout un commentaire est branchée sur Facebook également :

Résultat : ce commentaire apparait sur le site Fab.com, mais également sur ma page Facebook, et est donc vu par mes amis :

Au final, c’est la première boutique que je vois ou les fonctions sociales sont autant mises en avant.

Ce site a eu l’intelligence de complètement concevoir son fontionnement par rapport à ce que proposent les réseaux sociaux, ce qui est bien plus efficace que d’essayer de « vendre sur Facebook ».

Pour finir, je vous propose une interview du fondateur de ce site, qui parle du lien entre son site et Facebook :

Le scroll infini, ou la fin des footer ?

C’est un nouveau paradigme des interfaces web.

Qui a fait ça le premier ? Facebook,  Twitter ou Google ?

Je ne sais plus.

Toujours est il que ces différents sites proposent un scroll infini : au fur et à mesure qu’on descend dans la page, de nouveaux éléments sont chargés.

Vous pouvez essayer, par exemple, sur la page de résultat de recherche d’images de Google.

L’avantage de cette fonction, c’est de rendre la navigation plus simple : on scroll, jusqu’à avoir trouvé ce que l’on cherche.

C’est donc un avantage pour l’utilisateur.

Cela fonctionne parce que le chargement de la page est progressif, en ajax : on charge les éléments au fur et à mesure du scroll.

Cela pose plusieurs problèmes :

  • Il faut s’assurer que ce mode de navigation est bien « SEO friendly »
  • Cela fait des pages sans footer

Ce n’est pas très grave de ne pas avoir de footer, c’est juste qu’il faut y penser, et adapter le site à ce nouveau mode de navigation.

A voir :

  • Google image limite cette fonction, ce qui fait qu’on fini quand même par voir le footer.
  • On peut ajouter un « sticky footer », un footer affiché en permanence donc, et collé au bas de la page. A utiliser avec précaution parce que ce sont de précieux pixels occupés en permanence : il faut vraiment que ce sticky footer contienne des informations clés

 

 

Les cookies indigestes ?

La blague est facile, la réalité plus contrariante.

Les cookies, ce sont des petits fichiers, stockés par le navigateur sur le disque dur de chaque internaute.

Ces fichiers permettent de « créer du lien » d’une page à l’autre.

Ces cookies sont nécessaires, parce que le web, à l’origine, c’était uniquement des contenus textes et images, pas des applications en ligne.

Sans cookie, 99% des sites ne fonctionnent plus.

Tout cela marche plutôt bien, sauf que les cookies sont utilisés en fait pour des usages très variés :

C’est utilisé, par exemple, pour faire fonctionner un site e-commerce (reconnaitre l’utilisateur, garder son panier, garder l’historique des produits consultés, …).

C’est également utilisé par des acteurs du emarketing, qui « suivent » les internautes, sans leur consentement, de sites en sites.

C’est perçu, par certains, comme un risque pour la vie privée : « on me suit à la trace, à mon insu, sans que j’ai donné mon accord ».

C’est pour cela que la commission européenne a créé une directive : EU’s Privacy and Electronic Communications Directive.

Cette directive dit que chaque pays européen doit créer une loi, qui obligerait les sites à demander l’autorisation à l’utilisateur, avant d’enregistrer un cookie.

D’après ce que j’ai compris, la France n’est pas concerné pour l’instant, mais l’Angleterre, oui.

Cette loi est super nulle : un site qui utilise des dizaines de services tiers (en mode SAAS) devrait demander l’avis pour chacun de ces services ?

L’internaute ne sait pas ce qu’est un cookie. C’est un artefact technique, pas autre chose.

Et l’utilisation de services tiers est juste une façon normale de construire un site.

Regardez ces vidéos, vous comprendrez mieux ce que je veux dire :

Quelqu’un sait il si cette loi doit venir en France, et si oui quand ?

(via GetElastic)

Hybris cartonne en ce moment

C’est la solution montante en ce moment : Darty, Galleries Lafayettes, le groupe Beaumanoir, …

Plus d’autres références que je connais mais qui ne sont pas publiques ;).

Hybris marche donc très bien ces temps ci.

Quel est la raison de ce succès ?

Plusieurs facteurs de mon point de vue :

  • La qualité de la solution : l’approche, basée sur un PIM (Product Information Management) est très bien, très structurante comme on dit, dans le bon sens des choses ;
  • La qualité du travail de l’équipe commerciale : Eric a été a bonne école chez SAP. Il fait donc du bon boulot, en mettant en place une prospection plutôt efficace, et en travaillant en parallèle sur le développement d’un réseaux de partenaires, élément tout à fait fondamentale pour la réussite des projets ;
  • Le vide, laissé par les autres solutions : que ce soit juste ou pas, les autres solutions sont en perte de vitesse : IBM Websphere Commerce Server, Oracle ATG, … Ces solutions, adaptées à de gros ou très gros sites e-commerce sont en perte de vitesse. Encore une fois, ce n’est pas forcément justifié. Ces solutions payent par exemple les erreurs commises sur des projets passés et plantés. Il faut dire que plus le projet est gros, et plus c’est facile de se planter, et plus le plantage est violant (ça fait plus de bruit de planter un projet à 10 M€ qu’un projet à 10 000 €). Et puis, à mon humble avis, ces solutions n’ont pas su développer un réseau de partenaire à la hauteur des enjeux. Parce qu’au bout du compte, ce qui comptera, c’est la qualité des développeurs qui vont coder par dessus ces plate formes. Et là, je vous engage à lire ce billet ;).

De mon point de vue, toutes ces solutions répondent à un besoin, non couvert par les solutions open source PHP.

So far so good comme on dit 😉

Tests AB

Cet article a été rédigé par Florent

Aujourd’hui, on ressort les calculettes et nos formulaires de statistiques!

Beaucoup d’entre vous ont entendu parler de tests A/B, voire les pratiquent déjà. Mais êtes-vous sûr de bien interpréter les résultats?
Les tests A/B sont une technique statistique où on présente aléatoirement deux versions d’un même élément: par exemple, une page d’accueil avec une photo ou une page d’accueil avec des vidéos.
Ces tests sont pratiqués depuis le début des années 2000, le premier test de grand ampleur connu a été réalisé par Google pour déterminer le nombre optimal de résultats par page (la réponse fut 10!).
Le plus souvent, on présent ces tests avec ce que l’on appelle un intervalle de confiance, sous cette forme: « Nous sommes à 95% certains que A est plus performant que B »
Pour arriver à cette conclusion, il faut valider un certain nombre de choses auxquelles nous ne pensons pas toujours:
  • Sommes-nous certains que A et B sont strictement indépendants?
  • Sommes-nous certains que les populations exposées à A et B sont réellement semblables (par exemple, envoyer tous les clients espagnols vers la version A et tous les clients belges vers la version B: qui dit que les espagnols régissent de la même façon à une video que les belges?)
  • Quand faut-il arrêter le test?
C’est bien souvent sur cette dernière question que les tests AB pêchent. En effet, pour assurer la validité statistique, il faut en théorie au préalable définir le nombre de tests. Deux problèmes à cela: sur des éléments à faible trafic, il est parfois long d’atteindre le nombre correspondant au seuil de confiance fixé (95 ou 99% généralement). L’autre problème est qu’on expose parfois 50% de ses visiteurs à un élément qui convertit extrêmement mal! Perdre deux points de taux d’engagement sur 50% de son trafic pendant 1 jour, 1 semaine ou 1 mois, cela peut donner lieu à des pertes financières très importantes!
Plusieurs solutions sont possibles mais leur démonstration sort du cadre de cet article.
L’une est d’utiliser un dérivé du test du khi-2 (le G-Test) sur les variables (qui permettra de vérifier que l’on n’est pas dans un cas indécidable), l’autre est de prendre une approche dite bayésienne (qui permettra de stopper l’expérience dès que la réussite de A est supérieure à celle de B d’un certain seuil)
Enfin, et c’est là le plus important, vos tests doivent être solides, de manière à se défaire d’un défaut malheureusement très courant dans les processus de décision: l’avis du plus haut salaire est considéré comme le meilleur: « Highest-Paid Person Opinion », ou HiPPO.
Cet article récent de Wired en est la parfaite illustration: les dirigeants d’Amazon ne croyaient pas aux recommendations pour l’achat d’impulsion, les données leur ont montré qu’ils avaient tort!
Si le sujet des statistiques appliquées au marketing vous intéresse, un prochain article suivra sur le Multi Variable Testing, ses contraintes et ses applications.

Faire du logiciel, du développement, c’est de l’artisanat

Je déjeunais ce midi avec un ami de longue date.

On échange souvent sur le développement logiciel (entre autre sujets, je vous rassure 😉 )

Notre conviction commune, c’est que faire du logiciel, du développement, c’est un processus artisanal et pas industriel.

Je me suis déjà exprimé là dessus.

Dans la pratique, dans mon (mes ?) métier(s), quand je dis ça, je sens bien que c’est « contre productif » :

  • Les boites qui vendent du « processus industriel » à tour de plaquettes commerciales se sentent agressées, et se défendent en m’agressant à leur tour ;
  • Les clients qui connaissent mal tout ça (et c’est bien normal, ce n’est pas leur métier) se disent que l’artisanat, ça fait moins pro que « processus industriel ».

D’un point de vue rationnel, pourtant, c’est assez basique :

Un processus industriel, cela consiste à fabriquer un produit, avec un processus bien défini, qui permet d’accélérer la production, et de multiplier le nombre de produits fabriqués, en garantissant que tous les produits sont bien conforme au cahier des charges, tout cela avec un coût maîtrisé.

Cela passe par une séparation très forte, entre différents métiers.

L’ingénieur, qui conçoit le processus, décompose la chaîne de fabrication, et conçoit des machines, qui permettront de reproduire les mêmes actions, rapidement et sans faute.

De l’autre côté de la chaîne (c’est le cas de le dire), l’ouvrier derrière la machine a un travail répétitif, travail qui est d’ailleurs de plus en plus souvent remplacé par des machines, des robots.

Dans le monde du logiciel, cela n’existe pas, et, pire, quand on tente d’appliquer de telles méthodes, on arrive à des catastrophes.

Au final, ce qui marche, au contraire, c’est le recrutement des meilleurs développeurs, et de leur confier des missions ou ils pourront avoir le maximum d’autonomie.

On est donc bien dans un processus artisanal, ou ce qui compte, c’est la qualité de l’artisan.

Un exemple parmi des centaines :

Apple a eu besoin de 60 personnes pour créer iOS.

Motorola, qui essayait de faire la même chose, avait mis sur les rang 1500 personnes.

Qui a réussi ?

On est donc dans une industrie ou ce qui compte, c’est la grande qualité de quelques personnes clés. Et je ne parle pas des managers, mais bien des développeurs !

Quand tu veux Yves, pour poursuivre ce passionnant sujet 😉