3 ans de CTO, déjà !

Le 18 juin 2010, en milieu d’après midi, étaient déposés les status de la jeune startup Wisembly (originellement Balloon).

Voila 3 ans désormais (déjà ?), qu’@Andrei, @Romain et moi-même poursuivons la même vision : aider les gens à réfléchir et à mieux travailler ensemble lorsqu’ils se réunissent. Les réunions sont des moments clés dans la vie d’une entreprise, c’est là que les projets de demain sont présentées, que chacun a l’opportunité de changer son entreprise et que les plus grandes décisions sont prises. Notre mission est de mettre à disposition des solutions accessibles par tous, simples et efficaces pour libérer la parole, organiser le débat et connecter les intelligences.

3 jeunes fraichement diplômés en 2010, nous voici désormais une quinzaine de (plus ou moins ;)) jeunes fous avec plus de 250 entreprises clientes sur 5 continents. Quel changement !

Petit bilan de ces trois ans, au niveau du produit et de la team techno :

# Equipe

18 personnes se sont penchées de près ou de loin, il y a trois ans ou encore maintenant, sur le produit, sur la solution techno : 8 stagiaires, 2 apprentis et 8 CDI (pas mal le ratio CDI / stagiaire non ?).

# Technos

Bootstrappé en PHP4 procédural, avec un peu de jQuery et d’ajax à l’époque, la solution implique désormais plus de 10 technos et frameworks: PHP sous Symfony2, one page Backbone.js app, push server socket.io sur node.js, MySQL et Redis pour le storage, Python Bash et Java pour d’obscures moulinettes serveurs..

# Tests

D’une recette Excel faite à la main régulièrement par mes vaillants stagiaires, nous nous efforçons désormais de développer en TDD, avec phpunit, Behat et Mocha.js/sinon.js, en intégration continue sous Travis. Plus de 1000 tests nous aident désormais au quotidien à développer plus efficacement et à ne pas régresser toutes les deux lignes de code.

Cela fait pas mal de choses en 3 ans déjà ! Le futur nous réserve encore plus de surprises, maintenant que nous avons trois team bien établies (Back API, Front APP JS et Front UI/UX), des tests et des process, les développements et déploiements se voient raccourcis, plus fiables, et laissent entrevoir de belles améliorations produit nous rapprochant un peu plus de la vision que nous avons.

Merci à tous ceux qui nous ont aidé et fait confiance !

Un merci spécial à: Nico.P, @dator, “Gégé”, “Ptit Boudha”, Aymeric, Lucas, Jules, Ludo, Nico.C, Yo “Le brésilien”, Charles “La madeleine”, Maël, Rémy, Gab, Baptiste, Tristan et Mathieu :)

7 conseils pour plomber techniquement votre startup web

C’est l’été, il fait beau, les oiseaux chantent, ça sent bon la fin du mois de mai !

Oui, cela fait aussi peut-être un an que je n’ai rien posté ici, j’ai décidé (pour combien de temps ?) de reprendre les choses en main. Aujourd’hui, je vous propose une petite réflexion et 7 conseils tirés de mon expérience personnelle pour bien plomber votre startup niveau techno. Allons-y gaiement:

1 – N’utilisez pas de framework

Je pense que ce point est de loin le plus essentiel. Les frameworks, c’est bien trop hype et sur-évalué. Cela ne sert strictement à rien d’embarquer des milliers de lignes de code dans son projet, et encore plus des milliers de lignes de codes d’inconnus ! De plus, ces frameworks vont vous faire perdre votre précieux temps à coder propre et bien, alors qu’en deux trois coups de cuillère à pot, quelques variables globales et boucles imbriqués bien placés, vous pouvez sortir la vue web qui va bien ! D’ailleurs, c’est sûr que vous coderez mieux avec vos petits doigts boudinés ce que des inconnus ont érigé en plusieurs mois.

2 – N’utilisez pas git (et à fortiori, Github)

Quelle perte de temps que de devoir apprendre des commandes obscures dans votre terminal (heu, c’est quoi un terminal d’abord ?), brancher, forker, rebaser à tout va, plutôt que de vous concentrer à ce qui compte vraiment, votre code, au sein de votre IDE ! De toutes façons, vous êtes en startup, à deux ou trois, débrouillards, vous pouvez bien vous envoyer les fichiers modifiés par email, c’est bien plus pratique ! En plus, en se débrouillant bien, vous n’aurez même pas à travailler en même temps sur les mêmes fichiers. Github, c’est vraiment pour les bobos hipsters du code qui veulent se faire mousser ! FTP FTW sur mon serveur !

3 – Ne perdez pas de temps à écrire des tests

Vous aussi vous avez entendu parler de ces gens qui passent bien 20-25% de leur temps à écrire des tests ?! Parfois même avant d’entamer leur code ? Dingue, non ? Il y en a qui n’ont vraiment que ça à faire. Autant aller travailler dans une SSII s’ils ont autant de temps à perdre ! Allez, zou, un peu de code, une bonne feuille Excel avec quelques tests fonctionnels à refiler à ses stagiaires, et c’est parti, ça marche super bien !

4 – Ne vous souciez pas de la sécurité

La sécurité, c’est pour Facebook ou la NASA. En startup, on en a pas besoin. Qui irait se soucier de nous et nous chercher des noises ? Il est important de ne pas se soucier de la sécurité pour avancer en codant vite. J’ai vu ce tweet circuler hier, qui parlait d’injections SQL en PHP. C’est un mythe ça, ça n’arrive jamais “en vrai”. Imaginez tous ces gens (qui d’ailleurs sont tombés dans le panneau du conseil n°2), s’ils devaient (suivez mon conseil n°1) coder leur ORM ou préparer / sanitizer leurs requêtes. Ils n’avanceraient jamais !

5 – N’utilisez pas de scripts de déploiement

Pour les mauvais élèves du conseil n°2, faites directement un git fetch en prod. Et à la rigueur exécutez quelques scripts / commandes sur la PROD. Mais je ne vous félicite pas ! La vraie solution miracle, c’est le FTP. FTP FTW sur mon serveur. Tellement plus facile de filer les accès à toute votre startup pour aller éditer en live et rapidement ce qui ne va pas sur votre serveur. C’est aussi facile d’envoyer que quelques fichiers remplacer les existants pour fixer vos bugs ou améliorer vos features. En plus, ça marche sur tous les serveurs le FTP, même les hébergements mutualisés ! :)

6 – Ne mettez pas de cache, alignez plutôt des serveurs / instances

Comme pour n°4, le caching, c’est pour Facebook ou Twitter. Franchement, pourquoi s’embêter et se casser la tête à réfléchir à de complexes stratégies de cache alors que ça coute presque plus rien les serveurs ? Commencez avec un petit Kimsufi (2Go de RAM), et si ça ne passe plus, prenez plus gros. Toujours plus gros. En plus, si vous avez bien suivi le conseil n°5, d’un coup de FTP, le tour est joué pour passer sur le nouveau serveur !

7 – Ne travaillez qu’avec des stagiaires ou des agences

Enfin, si vous arrivez à respecter tous les conseils précédents, faites vous ce cadeau: ne prenez que des stagiaires ou des agences à la rigueur. Mais ne perdez pas de l’argent à payer cher des développeurs qui se prennent pour des rockstars du code, qui ne comprennent rien au business, et qui vont vous faire perdre du temps à configurer des environnements de travail, retoucher des alignements et fixer des virgules ! Hop hop hop, ni une, ni deux, un cahier des charges, un feuille de recette (conseil n°3), un accès FTP à votre serveur de dev (ou prod?) (conseil n°5), et roulez jeunesse !

Voila, c’est tout. Je crois qu’avec ça, vous allez être parés désormais pour bien bien looser dans votre startup, et pouvoir dormir sur vos deux oreilles ou boire des coups avec vos associés en shippant rapidement du garbage tout en contentant vos clients ou utilisateurs à court (voire très court) terme.

Disclamer: ce billet n’est pas une fiction. Je suis moi-même passé par une bonne partie de ces points, et pu constater les autres au sein de startups de connaissances. Malgré le ton léger, ce billet est bien entendu à comprendre à l’envers (sinon, je vais avoir toute la profession et les associations sur le dos), et je vous encourage à partager vos expériences à ce sujet dans les commentaires.

Enfin, ceci doit probablement être mon premier billet depuis de longs mois (années ?) d’inactivité, veuillez m’excuser pour cette absence. Et si par ailleurs, vous avez des idées de sujets à traiter que je pourrais éventuellement couvrir, n’hésitez pas à m’en faire part dans les commentaires ou par email. Merci ! :)