Lean startup 4 – Nouveau projet

Ceux qui suivent de plus ou moins loin mon blog savent que j’ai ete conquis par l’approche Lean Startup pour mes projets personnels. L’un des effets perverses de lean est qu’on peut tellement suivre l’evolution qu’on en oublie qu’il reste important de garder les bases, comme avoir un business model qui tient la route. C’est un peu ce qui m’est arrive avec TradingDoors malheureusement. J’ai teste beaucoup trop tard la monetisation du site et comme je n’ai pas trouve, j’ai fini par mettre en pause tout developpement et reflechir a une idee que je pourrais facilement monetiser (avec un bon business model quoi). Si vous voulez faire du freemium, mon conseil au vue de mon experience est de commencer par la partie premium et de considerer la partie free comme un aspect  marketing (pour attirer les gens).

D’un autre cote, j’avais pris pour habitude, jusqu’a il y a peu, de regarder le marche du travail sur Zurich de facon reguliere. Et toujours, je me faisais la meme remarque que les portails actuels etaient vraiment mauvais pour trouver des offres autour de chez soi, puis taper C++ te ramene plus d’offre qui n’ont rien a voir (comme si le ++ passait a la trappe). Bref, peut mieux faire.

C’est alors que j’ai pense a un job board ou on verrait directement sur la carte ou sont les offres d’emploi a pourvoir et ou on n’ait pas besoin de faire de recherche sur texte, en utilisant des tags directement.

Ni une ni deux, je fais un MVP (minimum viable product, produit minimum qui addresse le probleme) et commence a faire circuler l’addresse : http://getjobs.ch. J’obtiens alors un signal fort que les gens aiment cette nouvelle visualisation du marche du travail, ce qui reste encourageant. On sait que trouver des candidats a une vraie valeur pour les employeurs et que payer est naturel pour ce genre de service. Du coup, me voila parti a faire un site de recherche de travail.

Pourtant c’est pas vraiment comme cela que j’aurais du proceder a vrai dire. Le MVP ne devrait vraiment etre que la phase 3 d’un projet. La phase 1 etant de s’assurer qu’il y a un probleme a resoudre (en posant quelques questions a plusieurs personnes qu’on pense avoir ce probleme afin d’avoir une bonne comprehension des problematiques, sans toutefois parler de solution) et la phase 2 qui consiste a verifier que la solution pour resoudre ce probleme est bonne (parler avec ceux qui ont ce probleme et voir si cela resoud le probleme pour eux). Ensuite, et ensuite seulement, on peut faire le MVP base sur la solution discutee. Tout ceux qui comme moi ont commence par le MVP devront de toute facon valider un jour ou l’autre que la phase 1 et 2 soient positives pour que la sauce prenne, alors autant le faire avant, comme ca on gache moins si le projet ne genere pas de signal forts.

Bref, quelles conclusions peut-on tirer de mon nouveau MVP ? Tout d’abord que les gens trouvent l’idee de la carte sympa, la curiosite est bien la mais les gens ne semblent pas en tirer beaucoup de valeur et certains voudraient aussi avoir une liste classique. En revenche, j’ai pu verifier que les gens aiment bien les tags car cela leur permet de filtrer plus facilement et rapidement ce qu’ils veulent trouver (bonjour phase 1 et 2 que j’ai skippe), du coup il est possible que j’axe le developement plus sur la faciliation de la recherche tout en utilisant la carte comme atout marketing. Tout cela reste encore a confirmer car il est un peu trop tot.

Puis, j’ai lu une etude universitaire (toujours a prendre avec des pincettes) qui concluait que ce genre de marche a 2 cotes (acheter/vendeur, ou le vendeur est celui qui rapporte l’argent), beneficiait plus lorsque l’on diminuait l’asymetrie de l’information (lorsque l’acheter ou vendeur a plus d’information que l’autre partie) et que l’on investi dans le development qui profite au consommateur : celui qui ne paye pas. Je compte verifier tout cela tres bientot.

Je viens tout juste de faire un test qui permet de comprendre un peu mieux ce que recherche les utilisateurs de mon site. Reponse dans le prochain teste !

Edito 2013

Un peu en retard sur cet edito, l’exercice fut plus dur que les annees passees bizarrement. Peut etre parce que 2012 fut une annee charniere plus qu’une annee d’accomplissement. Une annee a chercher le type de business que j’aimerais faire et comment le faire. J’ai passe beaucoup de temps a travailler sur mes competences business et meme s’il me reste encore beaucoup de chemin a faire, j’ai l’impression d’avoir avance dans ma reflexion.

Niveau entreprise, au printemps dernier, mon partenaire et moi avions organise une competition de trading a l’universite de Zurich (ETH). Ce fut vraiment bien sympa comme evenement, j’en garde de bons souvenirs. Nous cherchions alors comment rendre l’entreprise profitable avec un model economique qui marche. En ete, j’ai commence a laisser de cote le B2B (vendre a des entreprises) dans lesquel je n’etais visiblement pas tres doue pour s’essayer du B2C (vendre a l’utilisateur). J’ai ainsi developpe une nouvelle interface de trading en Flex (flash) accessible via navigateur web et signe un contrat pour recevoir le prix des stocks en temps reels. Le reste de l’histoire peut etre lu sur mes posts a propos de Lean Startup, car c’est a ce moment la que j’ai decouvert Lean Startup.  Ca a tout de suite raisonne avec toute mon experience passee. Grace a cette approche, je peux desormais voir clairement la situation actuelle d’un projet et les progres accomplis. En automne, mon partenaire a decide de tenter autrechose et j’ai fait la connaissance d’un ami entrepreneur (ofri.ch) utilisant aussi Lean Startup et qui m’a beaucoup appris sur le SEO.

2013 s’annonce comme une bonne annee ou je vais recolter les fruits de mes efforts de l’annee passee. Je sens que cote travail ca va probablement changer, on verra bien, ca reste la grosse inconnue du moment.

Meme si le but de l’an dernier n’a pas ete atteint, le fait d’avoir teste plusieurs model economiques pour mon entreprise m’a permis de prendre conscience des pros et cons de ses approches en mode bootstrapper et finallement en trouver une qui me convienne parfaitement.

Cette annee, mon but est de maitriser les dernieres technologies internet (HTML5, Ruby, CSS & Javascript) et continuer a developer mon expertise sur Lean startup et de les appliquer sur mes sites.

Je vous souhaite une excelente annee 2013, un peu en retard.

Lean startup 3 – Conversion et visibilite

Recemment je me suis fais la remarque sur mon compte twitter que le taux d’enregistrement sur mon site etait relativement eleve au regard de mon tres faible traffic. Du genre de 10% (1 nouvel utilisateur tous les 10 nouveaux visiteurs).

Histoire de voir si ce taux etait toujours correct avec mes changements recents, je me decidais a envoyer comme ca un link sur reddit. Je m’attendais a ce que 100 personnes voient le site tout au plus et que 10 s’enregistrent dans le meilleur des cas. Aussi je fut un peu pris au depourvue de voir 850 nouveaux visiteurs et 135 nouveaux inscrits en l’espace de ~4 heures (soit un taux frolant les 16% de conversion). Clairement, je ne m’attendais pas a une reponse aussi positive vue le modeste titre de mon reddit (genre: jeu de bourse sympa) et mon site tres “minimaliste”. Cerise sur le gateau, j’ai eu un article dans un magazine de jeu video online sans rien demander.

Biensur, je prends le taux avec des pincettes car c’est du traffic cible (ca plait aux joueurs). C’est peut etre ca mon marche après tout: faire jouer la bourse par des joueurs. Et c’est plutot une bonne nouvelle, venant moi meme des jeux videos. Je continue dans le jeu tout en continuant dans le trading (meme si on est a la fois loin d’un Medal of Honor ou d’un soft de haute frequence de trading).

Du coup re-pivot, mais commercial celui la, je vais cibler les joueurs de jeux videos. J’ai quelques contacts dans le domaine, faudrait que je pense a les reactiver un de ces quatres.
Au niveau lean, ma validation client est la avec mes 16%/18% de conversion en moyenne. La question qui se pose maintenant pour savoir si mon moteur de croissance est functionnel est de savoir si les gens restent engages sur mon site ou pas. Pour que mon moteur marche, il me faut plus de personnes qui joignent que de personnes qui partent, un peu comme un taux de natalite eleve ne suffit pas a agrandir la population si le taux de mortalite est plus eleve. Premiere etape donc, determiner combien de jours un utilisateur continue d’utiliser mon site.

Pour ce faire, il m’a fallut definir ce que signifie la mortalite pour un utilisateur de mon site. Ce qui n’est vraiment pas facile car une persone peut trader un jour et revenir dans un mois. Pour contourner ca, j’ai commence par verifier le taux de personne ayant moins passé un ordre d’achat, car après tout c’est tout de meme un site de trading.

Et la, je fut assez choque du resultat: 50% des inscrits n’execute pas un seul trade. Je ne sais pas trop pourquoi encore, mais clairement y’a du travail a faire de ce cote la. Mon but etant de monter ce nombre a au moins 80% et pour ca, j’ai plusieurs pistes que je veux tester.
Or pour tester, il me faut des outils un peu plus elabores que du simple AB testing. Comme par example gerer des acces differents selont les utilisateurs. A la creation d’un compte, un utilisateur est place dans un des 2 groupes (un avec acces ou un sans acces a une fonction specifique). Ensuite, il me suffit de voir quel groupe a un meilleur taux de trading initial que l’autre. Ca a l’air assez simple comme ca, mais pour etre sur de ne rien casser en revenche ca le sera moins pour moi.
Cote SEO, ca se passe bien, j’ai trouve quelques mots clefs sur lesquels je veux etre le premier. Et d’ailleurs, je suis de tres pret le resultat de mes efforts via un outil absolument genial pour ca: Advanced Web Ranking. Je peux voir tres clairement ma progression au fur et a mesure du temps et de mes changements.

C’est un peu grace a mon ami d’ofri.ch en fait que j’ai commence a m’attaquer vraiment a mon traffic organique (celle qui vient de la recherche de mot clef). Puis pour le coup, avoir de la concurrence c’est bien car ca permet de copier ce qui marche et les batter sur leur proper terrain. J’ai eu quelques idees de mot clefs a utiliser sur google en etudiant mes concurrants. Puis merci the way back machine pour montrer comment un site avait l’air avant.

Prochain chapitre l’an prochain, bonne fetes de fin d’annee a tous.

Project: http://tradingdoors.com

Lean startup 2 – de pivot en pivot

Cela fait deux mois depuis mon dernier post lean et pourtant j’ai l’impression que cela fait beaucoup plus vue tout ce que j’ai appris et fait dans ce laps de temps.

Avec mon pivot de B2B (business a business) a B2C (business a client), voir mon post precedent, je m’etais positionne dans le secteur du day trading (ou on trade a haute frequence). J’avais tout bien mis en place, meme si ma strategie de communication s’arretait a LinkedIn et Twitter. Le day trading est toutefois un domaine assez pointu et excitant du trading, propice a la competition mais pas vraiment accessible a tous.

Mon hypothese de croissance s’est averree assez (tres) irrealiste dans mon contexte de lancement et mes frais de fonctionnement (notamment avec le flux des prix de la bourse en temps real et streaming) de 500 euros par mois clairement pas une bonne idee.

J’expliquais mon probleme de croissance a mon ami qui a demarre son business il y a 3 ans et qui en vit maintenant apres l’avoir monte petit a petit (son site s’occupe de mettre en relation des boites d’artisants et des clients: ofri.ch) lorsqu’il me lache en gros : ecoute Jeremy, c’est comme si tu étais en 5eme vitesse dans un voiture sans elan, appuyer a fond sur l’accelerateur te ferra pas avancer plus vite, retrograde en deuxieme et accelere a partir de la.

J’ai donc annule mon contrat de 500 Euros par mois et pivoter vers un truc plus simple, plus accessible et plus facile a jouer tout en m’inscrivant dans la duree. Ca semble tout con avec le recule, mais il est facile de s’exciter sur son idee avant qu’elle ait eu le temps de prendre.

Concertant les quelques hypotheses de mon premier poste sur lean, la page de prix n’eu pas d’effet sur les inscrits (pareil pour la demo gratuite), ou legerement negativement. J’ai eu la reponse de pourquoi les gens hesitaient a s’inscrire toutefois en regardant un utilisateur naviguer sur mon site pour la premiere fois.

Lorsque vous presentez votre projet a des personnes, vous avez deux possibilites:

1. S’assurer que la personne ait une bonne experience en les aidant a naviguer et prendre les bonnes decisions (genre “clique sur créer un compte ici…”)

2. Ne rien dire, regarder et apprendre comment les gens utilisent ou aimeraient utiliser votre produit.

Je suis un fervent avocat du 2 car techniquement, je ne peux pas etre derriere tous les nouveaux inscrits de mon site mais c’est pas toujours simple a faire car c’est souvent inconfortable, il faut mettre les gens a l’aise en leur disant des trucs genre ils ne peuvent rien faire de faux et c’est le meilleur moyen de vous aider.

Bref, j’observais un nouveau utilisateur et je lui demande de créer un compte. Il me demande alors s’il doit cliquer sur le boutton “play”. Je reponds rien et je me fais la remarque interieure que c’est peut etre pas si bien nomme comme boutton pour un nouvel utilisateur decouvrant le site. Il appuie dessus et est face a une page ou il faut entrer un email et un mot de passe. Ce que vous devez savoir, c’est que j’ai un super système de creation de compte ou on rentre juste un email et un pass pour se logger ou créer un compte. Si le compte n’existe pas, j’envoie une confirmation par email. Bref, la personne reste sur cet ecran et me demande alors: j’utilise quoi comme login/pass, je vois pas ou créer un compte? Boom. Inutile de dire que j’ai compris ma lesson et cree un boutton “sign up” et un autre “login”, va falloir que je redesign un peu ca pour etre un peu plus standard.

Conclusion: toujours regarder ses utilisateurs sans rien dire, meme si c’est inconfortable. Vous pouvez donner des objectifs (genre : essaye d’imprimer le document) mais pas comment faire et vous apprendrez beaucoup.

Le week-end dernier, je suis alle a un start up week-end a Strasbourg en France organize pas des amis super (le 2eme d’ailleurs) et j’ai bosse sur le cote business du projet cette fois au lieu de la technologie, notamment en etudiant la competition existante et voir si le projet est viable (car ouais on veut pouvoir en vivre). Oh boy, ca m’a fait du bien.

PS: Le projet etait un framework pour blogueur de cuisine voulant se concentrer sur leur photos/recette plutot que l’aspect technique. On peut voir des articles (avec des morceaux de moi dedans) ici ou la, trop cool, je suis celebre :)

La courbe de croissance d’un produit base sur une communaute est plus facile a tester qu’il n’y parait en fait. Une fois qu’on a determine dans quel marche on est (en s’assurant qu’il y a une demande), il est possible de voir l’evolution de la communaute des concurrents. Pour cela on peut utiliser des outils du net comme TheWayBackMachine qui permet de voir les pages d’un site web avant qu’il ne devienne aussi connu. Mais on peut aussi simplement essayer de trouver des informations comme leur nombre d’utilisateur (parfois accessible) et nombre d’annee en service (regarder le whois du site par exemple).

Toujours est-il que de retour a la maison (apres avoir dormis pour rattraper les heures de sommeil), j’ai fait la meme chose avec mon projet de trading.

Premiere chose constatee, les concurrents que je pensais ne sont pas forcement ceux qui reussissent le mieux. On peut utiliser un outil de classement google selon keyword ou simplement faire la recherche soit-meme (deconnectez vous de google pour un resultat non biase) et voir le traffic des site et leur nombre d’inscrits.

Par exemple, un de mes concurrents a un systeme d’enregistrement autour d’un forum. On peut ainsi voir le nombre d’utilisateur total, mais en plus, si on surfe sur la page des membres, on voit combien se sont inscrit au fur et a mesure que le temps passe car ils peuvent etre affiche par order de date d’inscription. Et on est loin, tres loin du myth de la croissance explosive.

Car creer un communaute, sauf de rares exception (dont on entend bien parler), ca prend du temps. Un simple whois sur le site nous permet de voir que le site est generallement plus vieux que l’on croit (generallement ~7-10 ans pour les sites connus).

D’ailleurs, au start up week-end de Strasbourg, Alexandre Roos l’a bien dit, aucune de ses boites n’a eu de croissance explosive (meme pas caramail) sauf peut etre Lycos. Ca lui a pris en gros 3 ans avant d’avoir une vrai communaute.

Bref, etudier la competition, c’est tres instructif :)

J’ai encore faillit oublier l’url de mon projet lean: http://tradingdoors.com

Lean startup

Debut juillet que j’ai change de direction (pivoter) avec mon entreprise. A l’origine, je desirais fournir du B2B (business to business), mais y’avait assez peu de tractions et trouver des clients potentiels s’est averre etre plus difficile que prevu, alors je suis passe en B2C (business to client) puisque de toute facon c’est ce qui marchait lorsqu’on organizait des competitions de trading comme on l’a fait avec ETH (haute ecole de Zurich).

Le mois dernier a peu pret, je choppais “The Lean Startup” et commencait a lire pile poil ce que j’avais commence comme approche, a savoir, de faire des progres dans l’apprentissage de ce qui marche et ce qui marche pas (validation learning). Depuis je progresse et j’applique les bons conseils, ce qui accelere mon apprentissage en meme temps. S’il n’y a toujours pas grand traffic sur mon site, j’apprends enormement du peu qu’il y a.

Lorsque j’ai discute de passer en B2C avec mon partenaire, on s’est dit que plutot que de creer une autre base d’utilisateurs, on allait se brancher sur un reseau existant. On a choisit LinkedIn car on voulait notre platforme comme une platforme serieuse de competition de trading, pour que les vrais trader puissent se lancer des challenges dessus.

Afin d’avoir l’offre rapidement on-line, le site n’avait qu’une page pour tout. Un bon gros fichier php quoi.

Apres 2 semaines, malgre le fait que les visiteurs venaient de mon partenaire ou moi-même, presque personne ne creait un compte (et encore moins achetait le produit). Il aurait ete facile de se decourager et de laisser tomber le projet, d’autant plus qu’on avait un niveau de bounce eleve (personne qui quittent sur la premiere page), mais d’abord j’ai voulu verifier quelques suppositions sur pouquoi cela ne marchait pas.

Ma premiere hypothes fut que les gens ne voulaient pas se connecter avec leur compte LinkedIn car c’est un reseau professionnel serieux et que les gens ne savaient pas trop ce qu’ils partageaient de LinkedIn (soit dit en passant LinkedIn devrait clairement afficher ce qui est partage s’ils veulent accroitre le nombre de personnes utilisant leur system de connection facile). Ca allait dans le sens de ce que 2-3 personnes m,avaient dis car J’avais en plus remarque que pour certains il y avait des securites a passer et message d’alerte lorsqu’ils utilisaient LinkedIn.

Du coup, j’ai programme un system basic ou la personne peut s’enregistrer avec un email et un mot de passe. Depuis, bien plus de personnes s’inscrivent en comparaison.

L’aspect interessant etait que puisqu’on offre desormais les deux systems, les gens ont plus confiance dans l’usage de LinkedIn pour se connecter (car la question que les gens se pose n’est plus: est-il bon d’utiliser LinkedIn ou pas, ca devient utiliser email ou LinkedIn, et psychologiquement c’est vraiment pas pareil). Reste encore a ajoutter FaceBook et Twitter dans le future pour verifier si ca facilite encore l’inscription, en assumant que les gens utilisent ca plus facilement ca pour se connecter ou si trop de choix tue le choix.

Ensuite j’ai voulu verifier que les gens se retrouvaient bien dans l’idee de trading competitif. Apres tout, j’avais tout faux sur le login, alors autant verifier le reste. Pour se faire, j’ai cree 3 pages (jouer competitif, jouer pour apprendre et jouer pour s’amuser) et mis les liens sur la home page du site sous forme de choix.

C’est a ce moment, j’ai contacte un trader qui fait tourner et un blog (amsterdamtrader) et il a accepte de faire un petit post mentionnant mon jeu. Celui-ci fut peu elogieux mais a genere un pique de visiteurs qui a permit de tester les nouvelles pages de navigation sur le site.

Premiere conclusion cote bounce, l’ajout des 3 pages a clairement ameliore le fait que les gens restent pour plus d’une page sur notre site, ce qui permet de trier les gens qui veulent en savoir plus (et du coup le chiffre est encourageant ~15-20% bounce rate). Une chose interessante dans le comportement est que les gens choisissent une page, reviennent en arriere et choisissent une autre pour voir ce qui est aussi ecrit dans l’autre (merci Google Analytics et leur flow).

La grosse surprise pour moi toutefois etait les pages choisit. A 45%, les gens choisissent jouer pour avoir du fun, 33% pour apprendre et 21% pour gagner. Et meme lorsqu’on regarde ce que les gens choisissent en deuxieme page, c’est apprendre qui prend le dessus sur gagner.

Alors naturellement, j’ai verifie au pres des gens qui ont déjà paye, ce qui les a attire dans le jeu. Et invariablement c’etait pour avoir du fun et/ou avoir une experience de trading.

Du coup, hop, bon pour un autre pivot, desormais je me concentre sur les aspect qui rendent le jeu fun a jouer (ca je sais faire venant des jeux videos). Et un des aspect super fun du jeu est le fait de voir en live les autres participant placer des trades.

De retour au site, je m’apercois que encore beaucoup de personne ne s’enregistrent pas apres avoir regarde les pages. Ils arrivent sur la page de creation de compte mais restent hesitants. Je dois encore verifier si les gens n’ont pas assez d’information pour aller directement a la page inscription. Celle qui cree un compte elle ne reviennent plus.

Une des hypothese que j’ai est que le manque d’information relative au prix est detrimentale. Je viens donc d’ajoutter une page de pricing, meme si l’offre reste difficile a expliquer pour l’instant, on verra le resultat dans 1-2 semaines.

L’autre hypothese est que les gens n’achetent pas tant qu’ils n’ont pas teste, du coup j’ai mis en place une session de trading gratuite avec les prix differes, avec l’idee de si ca plait aux gens, ils iront sur la plateforme payante.

J’aimerais aussi experimenter avec une video (ce qui me plairait mieux que la solution de trading gratuit en differe, mais ca prend du temps d’en faire une bonne.

Prochain post pour les conclusions.

Ho et biensur, l’URL si vous voulez tester : http://TradingDoors.com

Dans ta face

Je viens de lire une news qui ne m’a pas vraiment fait plaisir: apple et facebook ont signe un accord vers une plus grande integration de leurs plateformes (soit disant pour contrer google… car il faut bien le dire, google+ a porte un coup fatal et ses app stores vont tout bouffer…).

Deja qu’au debut je n’aimais pas vraiment facebook, la, ca devient problematique. Mettons a part le fait que j’ai enfin efface mon compte facebook et achete des puts (speculer que l’action en bourse se casse la gueule), facebook devient une plateform malsaine pour la generation future.

Mon principal reproche vint du fait de forcer les participants a utiliser leur identite reelle. Bien que je trouve que cela soit une force sur des reseaux tels que LinkedIn, je trouve ca inapproprie et dangereux sur une plateforme telle que facebook. Je me rappelle le temps ou je trainais sur des forums / IRC etant plus jeune et taper des tonnes de stupidites sous mes pseudos. Je suis bien content de pouvoir tourner la page et reecrire mon image en partant d’une page blanche. Tous les jeunes disent et/ou font des betises, ca fait parti de la vie, mais cela devient un poid et un desavantage au fur et a mesure que l’on devient adulte si on doit trainer une trace indelebile sur la toile. Jusqu’a quant les jeunes de maintenant vont ils garder leur compte facebook sur lequel ils ont recrit des choses qui ne sont plus en equation avec maintenat? Il y a une integration de plus en plus grande entre vie privee et vie sur la toile pour le meilleur mais aussi pour le pire. Twitter se debrouille mieux dans ce domaine car il nous permet d’endosser plusieurs identites.

Puceau ou pas puceau?

Lorsqu’on a travaille pour autant de boites que moi, il y a des choses qui deviennent evidentes et d’autres avec lesquelles on a un peu plus de mal a porter un jugement definitif dessus.

Parmis ces dernieres il y a embaucher des jeunes ou des gens avec beaucoup d’experience. Aucun doute que la reponse depend de ce pouquoi on a besoin de nouveaux employes, mais meme dans ce cas y’a beaucoup de pour et de contre a peser. Aussi peut etre que la reponse se cache elle dans la balance entre les deux.

Ce qu’il y a de bien avez les jeunes c’est leur energie/passion (qu’il faut parfois canaliser) et leur curiosite (parfois en exces). Ils apportent souvent une certaine fraicheur aux equipes (autre idees/point de vue) car il sont en mode decouverte. Ils rechignent naturellement moins a faire un travail ingrat/long/repetitif (ce qui donne lieu a des abus) et contredisent peu voir pas du tout car il n’ont pas les connaissances et l’experience necessaire pour ca (meme si cela ne genent pas certain qui se plaignent de tout). Avec tout ca, rares sont ceux restant dans leur premier travail (a tort ou a raison d’ailleurs).

Utiliser des jeunes est a double tranchant et l’entreprise prend un risque concret. Ceux qui les utilisent comme main d’oeuvre peu chere aurait mieux fait de soustraiter en Chine (ou pays de l’est). Meme si le salaire reflete generalement le manque de productivite (et encore), cela ne doit pas etre la raison de l’embauche car cela ne fait pas de sens economiquement sur le court, moyen ou long terme.

Les jeunes n’ont pas ou peu de relations avec le monde du travail a part leurs idees recues, ce qui pour moi est le plus gros risque avec les jeunes car on ne sait pas comment ils vont reagir a ce nouvel environement et le boulversement de leur idees. Un jeune joignant une emtreprise tres bien peut etre amene a la quitter car il ne la trouve pas assez bien pour au final se rendre compte qu’il n’est pas pret d’en retrouver une aussi bien. Ce qui nous amene a l’encadrement qui ne peut se faire que via des personnes d’experience (et non des papiers explicant des regles de conduites).

Les vieux routards eux peuvent faire gagner un temps fou car ils savent comment faire les choses au mieux (le challenge est rarement la technologie) mais ils ont souvent du mal a croire dans l’entreprise car ils en ont entendu des histoires qui ne se concretisent pas. De plus ils viennent avec un bagage culturel et n’ont pas forcement envie de s’adapter ou d’experimenter, ce qui les rend peu prone a prendre des risques parfois necessaire pour trouver de meilleures facon de faire. Le pire etant ceux qui versent dans le sarcasm (le cancer des entreprises).

Et vous, c’est quoi votre experience sur ce sujet?

One From Many

One from many” de Dee Hock (pas de traduction francaise de ce que je vois) est un livre qui m’a ete prete par Stephane Becker lors de mon petit sejour touristique linguistique a Strasbourg a l’occasion du StartUp Week-End. Merci vieux!

One From Many” est un livre qui frappe tout d’abord par l’immense humilite de la personne qui l’a ecrit bien qu’ayant ete le pere fondateur et CEO de VISA (oui, la fameuse carte de payment) et par la sagesse qui transpire de ses reflections.

L’anti-confirmiste de l’auteur, malgre son accession au pouvoir et son aspiration profonde pour une societe meilleur, se retrouve tout au long du livre offrant un point de vue assez rachraichissant par rapport a beaucoup de livre qui font plutot dans l’auto-congratulation genre “Straight From the Guts” de Jack Welch (CEO de General Electricity).

C’est assez rare de lire de la part de quelqu’un qui a vecu presque toute sa vie professionelle dans la finance et a la tete d’une des plus grosses entreprises financieres que la societe creuse des inegalites lorsque les entreprises socialisent les couts et capitalisent les gains.

Un autre theme que j’ai adore c’est comment il traite le leadership et partage sa pietre estime pour le management de l’ere industrielle qui semble perdurer malgre son inadequation avec le monde de maintenant. Pour lui, le management doit etre comme une pyramide inversee ou la premiere responsabilite est de se manager soit meme, puis ceux au dessus hierarchiquement, puis ceux annexes et enfin les subordonnees. Si on proteste qu’on a plus le temps pour manager les subordonnees, c’est normal et si tout le monde faisait ca, il n’y aurait plus besoin de micromanager personne!

J’aprecie egalement l’honetete et l’humanite dont fait preuve l’auteur sur ses echecs (professionnels) dans sa quete de visa. Et pour faire un parallele assez saisissant sur le success en comparant avec le super mediatise Jack Welch dont la carriere a couter deux mariages (a l’epoque de son livre), Dee Hock est reste avec son premier amour. Bref, c’est assez peu conventionel comme livre!

Lorsqu’il s’agit de faire quelquechose de nouveau, ce n’est qu’en testant que l’on saura si ca marche ou pas (pas etonnant pour quelqu’un boulversant les idees recues). Genre il ouvre le “board meeting” aux femmes des directeurs (lol). Je retriens egalement cette phrase pour cesser d’argumenter avec les naysayers (ceux qui disent toujours non a tout): ”If you think you can’t, why think”.

Ce qui est aussi frappant dans cette histoire au fond, c’est que rien ne le predestinait a etre a la base puis a la tete d’une si grosse entreprise. Aujours’hui VISA est cote en bourse et a surement bien change par rapport a ses ideaux.

Je termine sur une autre phrase que j’ai adoree (pour les dinausores du management): ”Only fools worship their tools”. Tellement vrai.

Bref, je recommende chaudement a tous les mordu de litterature business :)

Edito 2012

Voila que les lumieres de 2011 s’eteignent une a une dans la nuit alors que 2012 s’installe doucement.

Tant d’annees se sont passees depuis mon premier edito. Ma vie n’est pas vraiment celle que j’avais imagine a l’epoque sans pour autant etre pire ou mieux. J’ai vecu des experiences formidables et d’autres moins charitables. Chaque annee a apporte son lot de joies et de tristesses, la vie suit son cours imperturbable.

Dans tout les cas, 2011 fut plutot une bonne annee, un peu comme une annee sabatique, genre calme avant (et apres) la tempete. Mon retour en Suisse fut l’occasion de passer bien plus de temps avec ma famille et de me ressourcer. Ce fut une annee tournee vers la detente et les experiences nouvelles. J’ai ainsi visite pas mal de tres bons restaurants sur Zurich et pris un plaisir immense a decouvrir la moto (on oubliera vite mon premier concert de hard rock qui m’a laisse plutot froid).

Cote travaille, j’ai continue avec Credit Suisse (banque d’investissement) en tant que consultant en C#. Si le travail m’a appris pleins de trucs d’un point de vue produits financiers (je travaille avec des traders pour produits structures), le challenge n’est pas vraiment au rendez vous pour mes competences. Aussi j’ai reduit mon temps de travail et cree une entreprise, HCG Partners GmbH (SARL), avec un partenaire cet ete. Apres plusieurs mois de paperasserie, on a pu obtenir une license de cabinet en recrutement informatique pour notre activite secondaire. L’activite princinpale de la boite restant du software financier. On organise d’ailleurs des competitions de trading dont la premiere se deroulera fin janvier 2012.

Niveau projet, si 2011 n’a pas permit d’obtenir 1K CHF/an de revenue passif, il n’en reste pas moins que c’etait un un bon objectif. Avec ma femme par exemple, on a investi 250 EURO dans des Filofax et revendu le tout pour un benefice total de 350 CHF.

Prochaine etape en 2012: generer assez d’argent avec ma boite pour pouvoir m’y consacrer a plein temps d’ici la fin de l’annee. Reponse dans le prochain edito.

Je vous souhaite a tous une excellente annee 2012

Joe la star

Tiens, recemment, j’ai remarque qu’un article pourtant tres prise de mon ancien site (Joe la star) etait passe a la trappe lors de ma migration de domaine.

Ni une, ni deux, je cherche dans mes archives et apres deux trois petites modifications histoire de le remettre au gout du jour (ca datait de janvier 2004 tout de meme!), le voici:

Faire son jeu:

Voici ce que je pense sur la création d’un jeu vidéo dans le monde amateur

Le temps de développement:

Une chose dont les personnes ne se rendent pas bien compte au début, c’est qu’un jeu est très long à faire! Ca semble relativement simple lorsqu’on y joue, mais derrière ça demande souvent une équipe de 50 personnes qui bossent a plein temps pendant deux, trois ans (pour vous offrir un jeu que vous allez jouer 5 minutes (max) avant de commencer a cracher dessus).

Alors c’est clair que lorsqu’on est seul, ou 3-4 amateurs ça prend du temps. Ce n’est pas impossible non plus, seulement ça demande une perseverance en beton. Ca vous dit de passer 3-5 années à développer le même jeu? J’en vois des réticents au fond de la classe. Ca veut bien dire 3-5 ans avec la même vision du jeu, sinon ça rallonge encore la “sortie”. Bien sur que c’est long et c’est pour ça que des jeux amateurs terminés… bah ça court pas les rues.

Une alternative recente et bienvenue pour les equipes amateures reste le “casual gaming” qui se concentrent sur une mecanique de jeu simple et juste ca. Ca reste tres bon pour se faire la main mais ca demande tout de meme plusieurs mois de developement intensif, faut pas se leurrer.

Les idées:

Une autre chose dont les personnes ne se rendent pas compte c’est que les idées pour faire un jeu courent les rues et ne valent pas cher. Combien de fois on a entendu: “J’ai pleins idées!”
Le truc avec les idees, c’est que tout le monde en a. C’est les realiser qui vaut quelque chose. Les idees innovantes ne le sont souvent pas et/ou sont irrealisables dans leur immense majorité (ou simplement mauvaises). Si personne ne l’a fait avant vous dans les milliers de jeux déjà sortis c’est qu’il y a probablement une raison (et que personne n’y ait pense revient a croire qu’on a les bons numeros du loto: c’est possible mais les chances sont tres minces). Alors les phrases type “le premier jeu qui…”, ou “jamais fait auparavant…” font un peu penser aux pubs de regime miracle. D’un autre coté, qui veut faire un clone? Bah personne, c’est pas intéressant non plus. Pas simple hein?

Sinon y’a ceux qui ont des idées pour faire un jeu mieux que X ou Y. C’est courant également. Il faut savoir que ce n’est pas que ceux qui ont fait le jeu n’y ont pas pensé, mais bien souvent parce que l’industrie sait qu’il est préférable de sortir un jeu dans les temps que de constamment rajouter des idées. Un moment faut savoir dire stop et terminer le jeu. Si les amateurs arrivaient à faire ça aussi, ils auraient franchis un bon pas car c’est tres tres dur à savoir faire: s’arrêter :)

Chaque idée coûte du temps, généralement beaucoup de temps. Pesez bien son intérêt et vérifiez que le jeu ne peut pas exister sans, que ça justifie pourquoi on ne peut toujours pas jouer à votre jeu.

Faire un jeu?

Tout le monde dit vouloir faire un jeu, mais paradoxalement tout le monde fait des moteurs de jeu.

Imaginons un moment que vous désiriez faire un Quake like mais que ça se passe dans le désert post apocalyptique ou je ne sais quoi.

Dans ce cas pourquoi ne pas faire un mod pour Quake ou Unreal ou Half-Life ou …? Tous les outils sont la. C’est un jeu de rôle avec une super histoire? Pourquoi ne pas faire un mod pour Morrowind/Skyrim ou pour Dungeon Siege…?

Ce n’est pas forcement histoire de dire qu’il faut faire des mods, mais juste pour savoir si vous savez vous concentrer sur le principale: le jeu et non le moteur.

Si vous savez quoi faire et commencez à bosser avec le mod, ok no problemo, c’est bien sur le jeu que vous travaillez (quitte a laisser une partie de l’équipe comme les designers jouer avec le mod tandis que l’autre termine le moteur). Si au contraire, tout d’un coup vous ne savez plus quoi faire c’est mauvais signe car ça veut dire que vous ne saurez plus quoi faire une fois votre moteur terminé. Pensez-y.

La charge de boulot:

Elle est colossale, ne vous le cachez pas, elle l’est. Choppez autant que que vous le pouvez des composants/modules de programmation existants qui font ce dont vous avez besoin. Le mieux c’est avec des sources et qui aient prouvé que ça marche dans un jeu déjà sorti (ca evite a avoir a les debugger si ca marche pas chez votre copain), cela vous ferra économiser un temps monstre de travail.

Laissez les artistes bosser avec des outils existants, aucun interest a forcer un artiste a utiliser votre outil 3D au lieu de Maya/3DS Max/… Y’a pleins de librairies qui exportent dans un format standard maintenant.. Vous voulez faire un jeu et pas un moteur, oui ou non? Il en va de meme pour la 3D/physique/particules/musique….

La motivation:

Expérience, motivation et compétences sont dans cet ordre les choses les plus importantes pour un projet. Lorsque vous débutez, l’expérience y’en a peu, les compétences aussi. Alors tachez de garder la motivation.

La motivation est toujours au top au début d’un projet “ouais, on va faire notre jeu”, et vous allez voir qu’elle en prend un coup a chaque problème que vous allez rencontrer. Si le problème est trop gros par rapport à votre motivation, c’est l’abandon. Mais il est également vrai qu’elle va remontez des que vous aurez accompli quelque chose de tangible.

Ainsi, si votre projet est trop gros ou ambitieux au regard de vos compétences et votre expérience, vous allez vite rencontrer des tonnes de problèmes qui ruineront votre motivation et vous feront abandonner. Faites tout pour monter votre motivation, même pour un professionnel c’est important. Créez une communauté, montrez votre jeux a des personnes positives. En gros on est plus productif lorsqu’on est motivé.

Fixez vous de petites milestones (buts) a atteindre et lorsque vous les aurez atteint ça sera une petite victoire. Veillez a ce qu’ils soient réalisables car c’est a double tranchant sinon.
N’oubliez pas que le truc le plus important dans le développement d’un jeu c’est de le finir, mais c’est aussi la partie la plus dur. Lorsque le jeu est termine toutefois il n’y a pas plus grande joie, malheureusement peu de projets amateurs l’expérimente car ils ont visé trop haut et se sont au final démoralisé tout seul.

Allez on recommence:

L’erreur classique du débutant (en programmation), c’est de recommencer ce qui a deja ete fait.
“C’est trop crade…”, “Ca va permettre plus de choses…”, “Ca sera plus propre…”, blabla… Y’a toujours soit disant une bonne excuse.
Vous allez rencontrer plein de raisons au long de votre projet qui vous pousseront a recommencer ci ou ça. C’est d’autant plus vrai que le projet est gros et long.

C’est pas génial. Dans l’industrie du jeu, c’est bien souvent ce qui sépare un amateur d’un professionnel. Le professionnel sait que le but c’est de terminer le jeu et que ce qui compte c’est le resultat du point de vue du joueur, pas la beaute/perfection du code. Le professionel travaillera donc avec ce qu’il a et essayera d’améliorer comme il peut. Un amateur jettera tout à la poubelle et recommencera (et abandonnera).
Vous ferrez mieux au prochain jeu c’est pas grave, alors essayez de terminer avec ce que vous avez (GTA 1 et 2 n’ont pas eu le success du 3 mais l’ont prepare). Si le projet est gigantesque, c’est pas gagne car ca demande beaucoup d’experience pour pas se planter de route et devoir rebrousser chemin pour recommencer telle ou telle partie. Faites vous la main sur des petits jeux qui vous font travailler sur certains aspects et que vous pourrez ensuite intégrer dans votre gros jeu (ex: un petit jeu réseau pour préparer votre module réseau).

Ne perdez pas de vue l’objectif (c’est si simple de l’oublier), il faut terminer votre jeu. Si cela veut dire qu’on peut pas avoir de “monstres bulles” ou de “pieuvres élastiques” et ben tant pis! C’est pas la mort, vous les aurez dans la version 2 (et l’experience d’avoir fini la version 1)!

Essayez de finir votre jeu toutes les idées cool seront pour la deuxième version, si vous essayez de tout mettre dans la première vous ne finirez jamais. Terminer un jeu est ce qu’il y a de plus jouissif, bien plus que d’avoir rajoute votre monstre bulle, croyez en mon experience.

Les méthodes de travail:

Faite de l’open source. Ecoutez, c’est pas méchant mais vous êtes des amateurs, personnes ne vous volera vos sources, ça vaut pas grand chose et vous allez tout refaire après trois mois car vous aurez trouvé un moyen de faire en mieux. Pourquoi ne pas faire dans l’open source directement alors?


Inscrivez votre projet avec SourceForge.net ou autre, ainsi vous aurez deux gros avantages:

Le premier c’est d’avoir une copie de sauvegarde. C’est tout bête mais vos sources sont sur un serveur et c’est mieux que uniquement sur votre dur. Combien de personnes que je connais (moi inclue :/) ont perdu pas mal de travail dans un crash de disque dur!

Ensuite, cela vous permettra de pouvoir travailler facilement avec d’autres personnes, sourceforge offre un serveur CVS pour travailler, donc chaque membre du projet choppe les sources et zou tout le monde peut travailler ensemble. Un nouveau membre veut joindre? Aucun soucis, demandez lui de compiler et comprendre le code d’abord. Une âme charitable pourra même vous aider sur des bouts de code si vous buttez… bref, y’a pas besoin de garder vos sources dans un coffre lorsqu’on est amateur.


Vous avez honte de vos sources? Bah c’est normal mince vous débutez. Pas mal ont honte de montrer leur source, mais la honte ça sert a rien dans ces cas la, sérieux. Si quelqu’un vous fait des reproches sur votre programmation, vous apprendrez peut etre quelquechose et demandez lui de corriger lui même. S’il le fait, cool vous avez peut être gagne un autre membre, génial.

C’est pour faire du online et vous avez peur des tricheurs? Mais non, y’a pleins de méthode pour empêcher de tricher et aucune qui marche de toute façon. Puis rien ne vous oblige à mettre toutes vos sources online non plus. Bref, c’est pas une bonne excuse pour ne pas faire de l’open source.

Puis soyez futé, utilisez pas cette daube de GNU comme licence, y’en a des bien plus cool comme MIT, zip, BSD… qui ne vous obligeront pas dans le future a faire du gratuit et opensource.

Oui mais je veux quand même faire mon jeu:

Bien, soit, et vous avez raison! Go, il faut. Je vous encourage vivement a vous lancer dans votre projet, oui, allez y. Même s’il est voué à l’échec, go go go. Gardez juste ces petits conseils à l’esprit:

- Passez le teste du mod. Si vous savez pas quoi faire avec le moteur, vous ne voulez pas faire un jeu mais apprendre a programmer ou comment ca marche.

- Faites vous la main sur plusieurs petits jeux au début qui vous aideront à comprendre les problèmes que vous allez rencontrer dans un plus grand projet (merci les casual games).

- Rejoignez un projet déjà existant pour vous faire la main, si vous en trouvez un qui vous plait. Pourquoi pas après tout?

- Essayez de chopper le plus possible ce qui existe déjà, ça vous ferra économiser beaucoup de temps.

- Entretenez votre motivation (petite milestone, communauté, demos, …)

- Ecoutez les conseils des vieux, ils sont déjà passe par la ;)

Sur ce, bon courage!

Derriere le rideau

On attribute a Louis XI la citation: “Qui ne sait dissimuler ne sait pas régner”. J’avais lu ca pendant mes longues heures a jouer a “Jeanne d’Arc” sur Amiga lorsque j’etais ado. Ayant ete eleve dans l’esprit d’etre franc et fier de la force de mes convictions, la disimulation pour moi etait plutot synonyme de lachete que de leadership (un peu comme le paladin loyal bon du coin qui en plus a une grande gueule). Depuis les annees ont passees et j’ai appris a mettre de l’eau dans mon vin sur mon militantisme de dire haut et fort tout ce que je pense en blessant au passage les gens que j’aime sans jamais vraiment souhaiter ce resultat.

20 ans plus tard, j’ai pu voir de mes yeux que la maxime est appliquee avec grand soin dans les entreprises et grace a la democratisation de l’information, on peut aussi se rendre compte que les milieux politiques restent eux aussi fidels aux idees moyen ageuses. Si les annees ne m’ont pas fait oublie la citation de Louis XI, il n’en reste pas moins que la question demeurre ouverte: Doit-on dissimuler pour pouvoir regner? ou plutot: peut-on reigner sans dissimuler? Mes convictions m’ont toujours pousse a croire que c’etait possible, mais la realite n’est pas si tranchee sur ce sujet.

Ma lecture de “One From Many” (de Dee Hock, le CEO de VISA) a recemment ranime mon interet pour la question (especialement le passage ou le board meeting est devenue ouvert aux femmes des employes et qu’ils etaient transmis dans leur integralite aux employees). On voit bien que Dee Hock a des idees similaires d’ouverture mais il semble garder un gout amene de son aventure en general et qu’au fur et a mesure que l’entreprise grandissait il fut de plus en plus dur de ne pas se conformer (aujourd’hui VISA est cote en bourse par exemple). Faut dire qu’il n’a pas choisit l’industrie la plus clemente (la finance) pour ses idees de partage et trasnparence de l’information, mais bon.

La premiere fois ou j’ai vraiment pu voir derriere une partie du rideau fut dans mon travail precedent et c’est arrive car j’ai pose mes yeux sur un document confidentiel a l’entreprise. L’histoire anecdotique est la suivante:

Un jour, on apprend via email qu’une personne ayant travaille pour les finances de la boite depuis plus de 10 ans decide de changer d’air. Qu’il s’ennuie un peu a faire la meme chose tout le temps et voudrait rejoindre une autre start-up pour retrouver l’enthousiasme de faire quelquechose de nouveau. La boite organize et paye une fete de depart car il a contribue au succes de la boite depuis tellement longtemps. A cote de cela un bon developpeur, avec beaucoup de connaissance du produit et bien aime de tout les autres developeurs, ayant egalement contribue au succes de la boite (mais n’ayant que 3 ans d’anciennete) demissionne dans la plus grande indifference de la part du management. Jusque la rien d’exceptionnel, c’est meme plutot banal, “Business as usual” comme on dit. La realite est quelque peu differente. La premiere personne a en fait recu une lettre officielle (dont j’ai ete temoin) de la part d’un directeur lui disant que sa performance n’etait pas a la hauteur et sa contribution nulle puisque le directeur devait tout a faire lui meme. Le directeur ajoutte qu’il pourrait lui apprendre (genre j’ai considerer des alternatives, ca c’est le cote legal), mais que clairement il a pas le temps pour ca et qu’au final, cela couterait plus cher a l’entreprise que d’engager une personne fraiche de l’ecole qui peut deja faire ca. En gros, merci, t’as suffisammenet profite, maintenant la porte est par la. Pour la deuxieme personne, son salaire etait trop bas et personne n’a voulu le revoir a la hausse malgre ses demandes (et croyex moi j’ai vue ce que tous les developpeurs gagnaient et meme les nouvelles recrues fraiches n’ayant pas d’experience du produit, ni du domaine touchaient plus que lui, genre 50% de plus). Ce que ca montre c’est un disfonctionnement fondammental mais la question est: pourquoi ce besoin d’avoir un rideau sur ces histoires? Si on comprend a moyen titre que l’entreprise ne veut pas communiquer le salaire de ses employes dans le deuxieme cas (ce que je trouve discutable), pourquoi en revanche cacher que: ne pas etre performant est synonime de licensiement meme dans le management superieur (car pour un developeur on se cache moins de le dire et ca s’est dit).

Toujours dans la meme boite, je faisais alors des aller-retours reguliers entre Londres et Zug l’an dernier lorsqu’un nouveau CEO fut nomme a la tete de la boite. Il est arrive en grandes pompes, soit disant d’un background marketing/sales (ce dont la boite avait besoin a ce moment la, du moins d’apres le board). Il a ete rapide a annuler/denigrer tous les efforts recents pour changer la boite en remettant a leur place ceux ayant ammene la boite la ou elle etait (dans la merde) et la consequence logiques furent que la boite replongea dedans la tete la premiere. De mon cote, j’avais tourne la page et j’etais retourne en Suisse, lorsqu’une source de confiance bien placee dans la boite m’indique que le board a decide de virer le CEO. Peu de temps apres, une autre source (development cette fois-ci) me dit que le CEO a decide de demissionner dans 3 mois a cause de problemes cardiaques. Le jour meme ou le CEO quittait la boite (officiellement a cause de probleme de coeur), son profile LinkedIn etait mis a jour devenant ainsi le CEO d’une autre boite. Alors, soit son probleme cardiaque a ete corrige la nuit de sa transition de poste, soit on a trouve une excuse grosse comme une maison pour les employes. La question que je me pose encore dans ce cas encore la est: pourquoi est-il necessaire de cacher la realite sur cette histoire?

L’idee sous jascente est que l’effets sur les employes de savoir la verite est nefaste. Si c’est pour permettre au sortant de garder la face, au detriment de la confiance des employees, n’est-ce pas une mauvaise affaire? Apres tout, on vire les personnes qui sont detrimentales au bien etre de l’entreprise et il n’y a pas de mal a ce que cela se sache (puisqu’on agitte regulierement le baton). Il y a bien eu des licenciements lies a la performance dans le developpeur, quel meilleur message que: le CEO n’a pas ete aussi performant que prevue, on va en trouver un meilleur. Signe-t-on une clause dans un contrat de travail en tant que CEO qui dit qu’en cas de licensiement, on doit garder la face? (ou pour garder la face de ceux qui l’ont engage en premier lieu?: le board). L’entreprise benefice t-elle de ce mensonge/vision biaisee? Difficile a croire d’apres mon experiemce si le but est de baisser le septisisme et renforcer la confiance dans les dirigeants.

20 ans apres, la citation de Louis XI n’a pas fini de me faire reflechir sur sa validite.

C’est quoi un bon programmeur?

Hier soir, alors que je discutais avec un collegue trader, le sujet s’invita dans la conversation. Les traders avec qui je travaille m’ont en haute estime, ce qui est un contraste assez saisissant avec comment ils considerent les autres developpeurs. Ils ont confiances en mes capacites de developpeur, mais au fond, qu’est-ce qui fait qu’on est un bon ou un mauvais programmeur?

Sachant le sujet plutot prone a argumentation de tout bord, je suis alle voir sur le net ce que les autres en disait. J’ai rapidement trouve tout et n’importe quoi, genre maitrise de la technologie/langage, passion de programmer ou fort en maths… puis, apres avoir bien rigole avec des trucs genre “sait ecrire en notation hongroise” ou encore “utilise agile”… il etait evident que chacun a sa propre definition de la chose.

Pour moi, faut pas chercher midi a 14h: Un bon programmeur, c’est “quelqu’un capable d’ajouter de la valeur au client de son application de facon rapide et continue grace a la programmation” et ca couvre globalement tout ce que j’ai pu voir de bon et de mauvais dans mes nombreuses annees de developpement.

Un programmeur est juge sur ses resultats, pas ses outils:

De la meme facon qu’il ne nous viendrait pas a l’idee de definir la qualite d’un peintre en fonction de sa capacite a melanger les couleurs ou la qualite de ses pinceaux a la place du resultat final, il en va de meme pour la programmation. Le truc important a comprendre est que la programmation n’est pas une fin en elle meme, mais plutot un moyen d’atteindre quelque chose d’autre (ce que beaucoup de junior et parfois meme seniors programmeurs perdent de vue facilement au benefice de challenges techniques et intellectuels qui n’ont pas besoin d’etre).

On differencie ainsi quelqu’un qui passera 2 jours a developper un lecteur de page web pour en extraire 10 valeurs clefs meme si le CSS change d’un autre qui dit, “tu entres ces 10 valeurs a la main, ca change qu’une fois tous les 6 mois, on en reparle dans 6 mois si ca marche pas”. Tout n’a pas besoin d’etre automatise via un programme. A la fin, seul le resultat compte, si votre programme est bourre de bugs c’est que vous avez mal fait votre boulot, ceux qui font bien leur boulot sont des bons programmeurs.

Un mauvais programmeur fait des trucs que seules des personnes intelligentes peuvent comprendre:

Dans mon travail de tous les jours, il y a un truc imparable qui me permet de determiner rapidement avec une grande exactitude si un programmeur est bon ou pas, c’est sa capacite a simplifier les problemes qu’on lui presente. N’importe quel programmeur peut compliquer un programme a chaque nouvelle requete, ca demande un vrai talent et savoir-faire de pouvoir simplifier le code au fur et a mesure des requetes.

Un mauvais programmeur se plante dans ses choix de priorites:

Au fil des annees, j’en suis venu a avoir mes propres “regles d’or” que j’utilise assez frequemment lorsque je forme des jeunes (et moins jeunes) programmeurs pour leur inculquer comment apprehender les problemes lies au developpement d’application.

Par exemple, lorsque je design un programme, je me penche surtout sur le role de chaque partie du programme. Un peu comme une palette de couleur, si vous voulez qu’elle soit efficace quel que soit la couleur demande, il vaut mieux ne pas tout melanger tout de suite. Du coup, distinguer le role de chaque partie du programme est vital pour etre reactif a chaque requete qui vient (ca c’est pour l’aspect continue de la valeur d’un programmeur). Savoir clarifier les responsabilites est une competence essentielle. Sans cela, vous ne pourrez pas reussir de facon repetee sur le meme projet (ca devient trop rapidement plus possible a maintenir).

Un mauvais programmeur cherche la perfection:

Tout est histoire de compromis, faut savoir ou mettre ses effort ou vous n’allez faire que re-ecrire votre programme constamment sans produire de valeur au client. Souvent (chez les jeunes surtout), on a du mal a s’arreter a juste ce qui est demande, genre: “et si l’utilisateur a besoin de ci ou ca?”. J’adore ce genre de questions car elles sont simples a repondre: si le design le permet, on fait rien, on saura quoi faire si on nous le demande. Si le design le permet pas, on a un mauvais design et on doit le retravailler ou savoir qu’on a une limitation en dure (pas bon). Du coup ca evite que les personnes fassent quelque chose qui n’est pas utile immediatement tout en ne fermant pas la porte aux futures requetes. Ca marche a tous les coups et les questions sont les bienvenues car elles testent le design avant que l’utilisateur ne le fasse et c’est bien plus rapide dans la tete que de compiler du code.

Un mauvais programmeur n’a pas de recule vie a vie de son code:

Le design justement est comme vos fondations dans le batiment. Si y’en a pas, vous etes mal barre pour toute demande de modification de la structure ou renovation de l’electricite. Ne pas avoir de design (je parle pas d’UML de class mais d’une vue globale de quelle partie du programme fait quoi et communique avec quelle autre) c’est naviguer a la loupe et ecrire du legacy software des le premier jour.

Mon approche est de laisser les jeunes se faire les dents sur l’implementation. Car la plupart du temps je m’en moque. Si elle est mauvaise on la change et rien d’autre n’est affecte a part une perte de temps puisque le design (structure) reste correcte. Savoir ou placer ses efforts pour l’impact maximal est crucial pour savoir delivrer rapidement. Les mauvais programmeurs perdent un temps fou avec des details d’implementation (genre faut utiliser une liste ou un vecteur?).

Un mauvais programmeur suit aveuglement:

Ceux qui n’ont pas eu la chance d’experimenter eux meme ou de travailler avec des bons programmeurs tentent souvent de pallier leur manque de savoir en se raccrochant a des faux dieux (ou gourou dans notre jargon). Genre un mec a ecrit un livre ou cree un langage (meme si c’est pas les meme competences) alors faut faire tout ce qu’il recommande. J’ai rien contre digerer le savoir de livres, bien au contraire, mais qu’on me serve pas ca comme pain benit, il faut savoir garder assez de recul. Experimenter avec un nouveau projet est souvent une tres mauvaise idee sur la duree. [edit: par projet j'entends projet avec but commercial au travail, non pas prototype ou projet personnels, qui eux, sont sains]

Alors moi j’ecris qu’un blog, peut etre qu’il faudrait que j’ecrive aussi un livre un jour pour que mon savoir soit valide par mes peres (y’aurait tant de choses et d’anecdotes a raconter sur le sujet). Toujours est-il qu’a la fin, c’est celui qui sait simplifier et garder cette simplification sur la duree qui gagne la course.

Un mauvais programmeur n’est pas condamne a le rester…

C# est encore loin de pouvoir planner sur les nuages

Recemment j’ai re-ecrit ma simulation de marche en C++. Avec mon partenaire, on avait commence avec une version C# pour developper un prototype rapidement et pouvoir demarcher les clients, mais lorsque les besoins en performance (ainsi que le control de celle-ci) se sont fait sentir, il a bien fallu faire la conversion en C++.

Fort heureusement, mes librairies personnelles m’ont permit de ne pas perdre de temps sur l’aspect technique (je pense notamment a mes librairies reseaux en IOCompletion) et la conversion fut relativement rapide, mais ce qui est interessant dans cette histoire est le resultat des tests avant/apres car j’avais pas mal sous-estime la chose.

Notre simulation de marche tourne actuellement on-demand sur un cloud (RackSpace pour les curieux) . On a pas mal d’instance est dynamique (elles sont pour la plupart temporaire, le temps d’une partie lancee par un joueur), mais aussi des instances dites statiques ou une entreprise loue notre simulation de marche pour y simuler plusieurs actions et mouvement de prix ou participer a nos concours de trading.

Bref, y’a pas mal de choses qui peuvent se passer sur notre cloud et comme on paye en fonction de sa puissance en terme de CPU et de memoire, il fait bon de mesurer ce qui s’y passe et reduire les couts.

On a depuis le debut un test de performance plutot basic, mais qui refete bien les activites principales sur la simulation. D’abord il se connecte, demande la liste des actions et cote l’offre et la demande pour chacune des actions. Lorsque la cote est placee pour chaque action le test s’arrete et affiche le resultat.

Pour 5000 actions cotees a la bourse:

C# a prit 8 secondes et 105 meg de memoire.

C++ prend 140 milliseconds et 4.7 meg de memoire.

Pour 100.000 actions cotees a la bourse:

C# a prit 168.5 secondes et 1.119 gig de memoire.

C++ prend 13.5 seconds et 52 meg de memoire.

Je n’ai malheureusement pas fait de mesure CPU, mais vue le facteur pour la vitesse, les requetes peuvent etre sequentielles en C++ que C# serait toujours plus lent.

Pour la memoire c’est un peu different, je me doutais que C# etait assez mauvais dans ce domaine et oui on me dira que le gc (garbage collector) va se lancer, mais bon 1.1 giga, personne veut ca (surtout pas sur un cloud!) et s’il se lance ca impacte les performances encore plus.

Conclusion: tester, tester, tester :)

Devenir un leader – Chapitre 5

Si vous n’etes pas encore dans un role officiel de leader malgre vos ambitions, ne desesperez pas. Etre dans une position informelle est en fait le meilleur moyen de s’entrainer a un role de leader.

Deuxieme partie: L’interaction sociale

Chapitre 5: Appobation et leadership informel

Lorsque vous etes officiellement dans une position de leader, vous avez de-facto cette stature et vous ne faites pas forcement attention aux signes du leadership. Dans une position informel en revanche, vous vous devez de maitriser les outils d’influence afin de pouvoir leader efficacement. Votre success en role de leader officiel n’en sera alors que plus grand.

Un des lieux les plus simples pour s’entrainer reste de loin les reunions car vous pouvez alors vous concentrer a observer les dynamiques du comportement sans distractions. Dans chacune d’elle, si vous y pretez un peu attention, vous verrez alors que deux communications s’operent simultanement: verbale et non-verbale (voir chapitre 2). Si la verbale reste celle sur laquelle la plupart des personnes se concentrent, la non-verbale est de loin la plus efficiace pour un leader.

D’ailleurs pour vous en convaincre, il vous suffit de regardez un groupe de discussion pour vous rendre compte qu’il ne vous faut pas longtemps pour remarquer qui est le leader sans meme avoir besoin d’entendre ce qu’ils disent. C’est d’ailleurs un jeu auquel je m’adonne systematiquement et vous n’avez besoin de faire attentions qu’a deux parties du corps: les yeux et les pieds.

Pour les yeux, ca peut paraitre evidents (on y reviendra) mais pour les pieds ca l’est peut etre moins. Les pieds pourtant sont de loin la partie la plus honnete du corps car contrairement au visage, on n’apprend pas a les controler. Il y a a fort a parier par exemple que vos parents vous ait deja dit de sourire meme si vous n’etiez pas heureux (pour une photo par exemple), mais pas de pointer vos pieds dans une certaine direction.

En general, les pieds sont le moyen le plus efficace pour determiner dans quelle direction la personne souhaite reelement aller, mais ils permettent egalement de savoir l’affinite q’une personne pour une autre lorsqu’on ne peut pas bouger. Generallement les pieds pointent tout simplement vers le leader informel, celui qu’on approuve sans forcement le dire (si les pieds sont croises, c’est generalement un signe de confort, mais je vous invite a lire le livre conseille dans le chapitre 2 pour bien comprendre).

Ainsi, pour cette raison, je regarde toujours les pieds en premier (lorsque c’est possible), puis j’analyse la dynamique/danse qu’operent les yeux dans la salle au fur et a mesure des echanges.

Les yeux sont la pour approuver valeur d’une personne (pas forcement ses idees, mais son authorite). Depuis tout petit on est fait ca de facon naturelle (“regarde maman” = donne moi de l’attention/importance, ou “papa je peux toucher ca?” = je te regarde pour que tu me dises ok ou pas, je ne regarde pas ce que je veux).

Ce qui entraine deux dynamiques interessantes a etudier dans les reunions:

1. Dans un moment de doute et silence, les gens vont tourner leur regard vers leur leader (officiel ou informel) en attente d’une reponse pour les sauver de l’incertitude.

2. Vous avez le pouvoir de donner ou pas de l’importance a quelqu’un en le regardant.

Si le premier est facile a determiner, le deuxieme l’est bien moins car il demande un effort conscient de votre part.

Celui en position de leader regarde rarement une seule personne, il promene son regard sur *son* groupe a la place et accorde ainsi la meme importance a tout le monde. A l’inverse tout le monde le regarde de facon disproportionnee.

C’est generalement tres instructif et vous permet de voir rapidement ou vous vous situez dans la hierarchie du groupe a moindre frais.

Si vous ne l’avez pas deja fait, observer les echanges des yeux et la position des pieds dans votre prochaine reunion.

Pour etudier le mouvement des yeux, il y a d’autres situations que je trouve tres interessantes:

La premiere est une simple personne en croisant une autre qu’elle ne connait pas dans un couloir. Il suffit de voir qui baisse les yeux/detroune la tete. C’est encore plus vrai lorsqu’il y a un court echange de regard avant de se croiser. Regardez le sol est generalement un signe de soumission (comme lorsqu’on est puni etant petit et qu’on ose pas croiser le regard de son papa ou de sa maman). Ca permet de voir le status d’un leader ou pas rapidement sans meme connaitre la personne au prealable.

Et vous? Lorsque vous croisez une personne, gardez-vous votre regard droit ou regardez vous le sol un moment? ou une direction loin de la personne? Si c’est le cas, essayez de vous entrainer a garder votre regard droit (si ca peut aider regardez a travers la personne et non pas la personne en elle meme car il est plus dur de soutenir un regard).

La deuxieme est un cas extrement bien qu’anodin: le classique de l’ascenseur. Dans mon dernier travail je prends l’ascenseur tous les jours avec des personnes que je ne connais pas et c’est drolement interessant de voir les comportements qui s’operent. C’est une excelente opportunite pour observer comment les gens reagissent dans une situation qui les mets mal a l’aise. Invariablement, il y a ceux qui cherchent a fuir du regard en fixant le chiffre indiquant l’etage afin d’ignorer l’environnement hostile (combien de temps encore?). Puis il y a ceux qui decident de distraire leur cerveau en s’absorbant dans leur telephone portable ou autre gadget. Puis il y a ceux decontractes. Et vous, comment reagissez vous dans un ascenseur? Comment pouvez vous augmenter votre confort?

Ce qui nous amenera au chapitre suivant sur la confiance en soi.

Rework – Réussir autrement

Apres avoir lu ce livre, je me suis senti escroque et insulte intellectuellement par dessus le marche.
Tout d’abord, 1 page sur 2 represente un dessin grotesque du titre du chapitre. Non seulement ca n’apporte rien (en plus d’etre plutot moche), mais puisque la plupart des chapitres ne font a peine qu’une page, on fini par se demander si c’est un livre qu’on lit ou un ebook qu’a fini publie par chance ou par relations. Biensur le prix ne reflete pas du tout ca.

C’est un peu comme acheter un pot de glace top qualite pour se rendre compte que le pot est a moitier plein. Avant meme d’avoir goutte la glace, on sent qu’on s’est fait pigeonner.

Sans oublier que l’auteur nous rabache avec fierte que le livre n’est qu’un produit derive qui n’a pas demande beaucoup de temps ou d’effort pour regrouppe des posts de blog. C’est peut etre vrai, mais c’est tout de meme un serieux manque de respect pour celui qui a achete cette merde. Et pour le coup je me souhaite vraiment avoir downloade le pdf sur le net plutot que leur avoir donne mon argent. Le pire, c’est que le livre ne tient pas vraiment ses promesses non plus.

La plupart des conseils sont plutot evidents pour qui a un peu d’experience dans le milieu et sont exprimes d’une facon si noire et blanche que c’est a se demander si l’auteur a vraiment reflechi sur le sujet et/ou connait meme d’autres facons ou raisons d’etre de certains faits.

J’ai beau essayer de ne pas y penser, ce livre me fait penser a un livre sur les secrets de la minceur, promettant monts et merveilles. Ca peut marcher avec certains, mais faites moi une faveur et n’acheter pas ce livre au prix fort.

Salaires exorbitants?

Une fois n’est pas coutume, je regardais le journal tele francais (toujours aussi lamentable soit dit en passant) lorsque passe un sujet sur la remuneration des grands patrons. Chouette, un sujet qui m’interesse, l’argent etant un de mes sujets favoris (deformation professionelle surement).
L’example choisit concernait le PDG de l’Oreal qui touchait l’equivalent de ~875 SMIC , ce qui evidemment revoltait monsieur et madame tout le monde qui eux n’en touchaient qu’un.
Quelque part je crois que l’on aide pas la socitete avec des sujet traites d’une facon aussi niaise et populiste (mais bon a la fois c’etait le journal tele). Plus je progresse dans le monde financier plus j’ai du mal a croire dans la vision du socialisme et comment ils abordent les problemes financiers car de mon cote, la reflexion que je me suis plutot faite c’etait plutot du genre: “c’est tout?”.
Une personne dans le reportage allait meme jusqu’a dire que les grandes ecoles produisaient chaque annee des centaines de personnes pouvant diriger les entreprises du CAC40. La, laissez moi rire, ca expose une profonde meconnaissance des qualites que faut avoir en tant que leader (l’experience en etant une).

Ce qui n’est que trop rarement aborde malheureusement dans ce genre de sujet, c’est la distinction entre entreupreuneur et salarie. A savoir une personne qui monte sa boite (comme le PDG de Facebook par exemple) et celui qui devient le PDG d’une grande boite sans avoir assume les risques de la creation d’entreprise (comme les grosses entreprises du CAC40).
En ce qui concerne les entreupreneurs, moi j’ai d’autres stats a l’esprit, comme le nombre de patron qui finissent sous le seuille de pauvrete car leur entreprise n’a pas reussit. De l’autre cote, il y a ceux qui touchent des sommes enormes pour juste “etre”, genre les top model/et image publicitaire des acteurs/sportifs. Alors faut m’expliquer, comment on recompense la prise de risque d’un entreupreneur si ce n’est par un gros multiple de SMIC?

En ce qui concerne les grand patrons, l’un des problemes c’est que y’en a pas tant de monde que ca qui a la carrure et etant donne l’impact sur des centaines de personnes que cette personne va produire, faut pas se planter. La ou c’est lamentable, c’est foirer, enfoncer la boite et toucher un max en indemnites de depart.

Et vous, ca vous choque 875 SMIC pour un patron? Moi ca me choque pas plus que ca pourvu que ca soit merite. Pour info, je dois toucher grosso modo 3 SMIC sans etre patron. J’en connais plein autour de moi qui touchent pareil en etant bien loin de le meriter… et ca ca me degoutte bien plus qu’un patron qui en touche 875.

Petite note: aujourd’hui, je viens de signer chez le notaire la creation de mon entreprise.

The game : Les secrets d’un Virtuose de la Drague

Surpenament bien ecrit et tres drole, ce livre a des application concretes qui depassent de loin chopper des filles. Que vous cherchiez a ameliorer vos competences sociales, en apprendre plus sur la psychologie comportementale appliquee a des cas pratiques (notamment celles de Cialdini) ou simplement passe un bon moment a lire l’histoire peu ordinaire d’une personne ordinaire, vous venez de trouver quelquechose a lire :)

Mon verdict? Je conseille.

PS: Comme tous mes liens vers amazon, ce sont des liens affiliates ou je touche une commission si vous achetez. Si cela vous indispose, cherchez le livre directement sur amazon.fr

Edito 2011

Voila enfin, mon edito 2011. Il etait temps et y’a beaucoup de choses a dire cette annee.

Alors 2010, c’etait comment? Bah, c’etait clairement pas une bonne annee.

Tout d’abord, ma prediction de 2010 s’est belle et bien realisee avec un gros changement niveau travail, meme si le changement fut plus extreme que prevu avec deux demenagements internationaux (Zug->Londres et Londres->Zurich) en moins d’un an et un gout tres amer dans la bouche apres le decision commune de quitte mon employeur peu de temps apres l’arrivee du nouveau CEO (qui soit dit en passant a part avoir change le logo a aggrave la situation dans la boite avant de finallement se faire virer par le board of directors… officiellement pour raison de sante).

Avec 3 mois de deplacement a Londres lorsque ma famille etait a Zug et 2 mois de deplacement a Zurich lorsque ma famille etait a Londres, le pire dans tout ca est que je n’ai pas beneficiee autant que voulu de ma petite famille, sans compter que le trajet au boulot lorsque j’habitait a Londres etait bien plus que mes 10 minutes a Zug.

Sans oublie que pendant les vacances de noel, la maison a ete innondee pendant qu’on etait en Suisse a cause d’un tuyau qui a gele dans le toit (oui les anglais ont leur ballon d’eau dans le toit) et du coup la moitier de nos affaires ont ete fouttues.

Quoi qu’il en soit, je suis bien content d’etre de nouveau en Suisse. Ca m’a permis de comprendre clairement que c’est ici que je veux vivre et pas question d’en bouger a present (du moins pas de mon plein gre).

Sinon, qu’en est-il de mon projet 2010 de courir virtuellement de Londres a Zug? He bien avec tous ces bouleversements sur le plan personnel et organizationnel (mon tapis roulant etant a Londres alors que j’etait en Suisse et ici il faisait -10 degree dehors en plein soleil) ce fut plutot rude, mais je suis tout de meme arrive pas loin de Mulhouse. Donc meme si c’est pas atteint, je ne regrette rien et je continue de courrir pour le plaisir.

Cote site web, j’ai mis en place StaffVoice.net, mais ca n’arrive pas a decoller du tout du tout. C’est yourworkplace.biz niveau 2 mais manque les participants. Quel dommage vraiment.

Mais bon, tout n’etait pas negatif non plus, j’ai fait de gros progres en leadership en 2010 et beaucoup de choses ont fait click, j’ai finallement compris bon nombre de techniques et enrichit mes connaissances tout en ayant l’occasion d’experimenter avec le soutient de ma hierarchie. J’ai ainsi commence a lire sur la psychologie comportementale et developpe un grand interet pour les interactions sociales. Cela passe par l’apprentissage d’intelligence emotionnelle, NLP et autres trucs… On peut dire que je commence a rattrapper le temps perdu en apprentissage social apres avoir obtenu mes lettres de noblesses en programmation.

Fort heureusement 2011 augure de bien meilleurs choses.

Pour 2011, j’ai deux projets:

Tout d’abord de developper un revenue passif qui me rapportera 1000 CHF/an. Meme si je n’y arrive pas, le fait d’y reflechir est une bonne chose en soit.

Et deuxiement d’elargir ma zone de comfort. Ainsi, j’ai repris des cours de Karate (Shotokan), je visite les bons restaurant de la region de Zurich (en me basant sur le Gault Millau) au rhytme d’un par mois, et je fais de la moto a present (avec une Suzuki 650 Gladius ABS et soit dit en passant j’adore! J’aurais du faire ca y’a bien longtemps). Au menu reste encore de prendre des cours d’acteur, sauter en parachutte, aller a un concert (et oui jamais fait), assister a un match de sport (la non plus jamais fait), et d’autres trucs que j’aurais clairement pas fait sans me pousser.

D’ailleurs, si vous avez des idees d’activites sociales a me proposer, ca m’interesse beaucoup. Je vous demanderai juste de preciser ce que ca vous a apporte personnellement.

Niveau boulot, je fais du contracting a Credit Suisse en tant que developpeur C#. Mon contrat se termine fin mai et je sais pas encore si je vais renouveller ou pas. On verra bien, mais j’ai un bon sentiment pour cette annee 2011. Croisons les doigts.

C’est donc finallement avec bien du retard que je vous souhaite a tous une excellente annee 2011!

Why Should Anyone Be Led by You?: What It Takes To Be An Authentic Leader

C’est indeniablement un grand livre sur le leadership. A la difference des autres du genre, celui-ci arrive a capturer des concepts clefs, des choses que j’ai cherche plusieurs annee et decouvert que recemment avec l’aide d’un mentor. C’est bien ecrit et facile a lire mais je crains que les aspirants au leadership ne soit decu par la simplicite et a moins d’avoir de l’experience dans le domaine, certains concepts peuvent etre ecartes trop rapidement comme etant triviaux. Ca n’en reste pas moins un outil formidable de plus a ajoutter a votre trousse de leadership.
On peut toutefois regretter que la plupart des exemples donnees ne soit pas aussi bien explore que ceux concernant la BBC.

Malheureusement pas trouve de traduction en francais, donc anglophobes s’abstenir!

PS: Comme tous mes liens vers amazon, ce sont des liens affiliates ou je touche une commission si vous achetez. Si cela vous indispose, cherchez le livre directement sur amazon.fr