Faites coder vos futures recrues (une journée entière, en conditions réelles)

Cela fait quelques fois désormais qu’en discutant recrutement tech deci delà avec d’autres startupers / CTOs je me rends compte que mon process se démarque un peu et dénote parfois avec originalité par “sa journée test”.

Je ne pense pas avoir là trouvé la solution idéale, puisque malgré cela je n’ai pas fait que des recrutements heureux, parce que cela prends du temps et que ce n’est pas adapté à toutes les typologies de boîtes (cela marche pour nous en tout cas en ce moment), mais je pense que cela vaut le coup d’être tenté au moins pour quelques profils clés.

Dans mon process type de recrutement, il y a tout d’abord une phase amont où on apprends mon candidat et moi à se connaître sur le papier, puis ensuite lors d’un premier entretien. Là, je présente de la façon la plus limpide et franche ce que nous faisons, là où nous sommes bons, là où nous sommes mauvais, comment nous fonctionnons, et surtout, ce que j’attends du candidat pour le poste en question : pour pas qu’il n’y ait de zones d’ombres pour le candidat, sur l’environnement de travail et la mission envisagée. Et aussi pour le mettre en confiance en commençant à parler. Là, j’attends ensuite qu’il joue cartes sur table et me montre via des projets (open source, perso, pro, académiques) ce qu’il sait faire, ce qu’il aime faire, ce qu’il aime moins faire, et ce qu’il aimerait faire. Je pense qu’à cet entretien, j’essaye de jauger durant 40% du temps de l’entretien les compétences techniques de mon candidat, et le reste du temps sa personnalité, sa motivation, et le fit potentiel pour l’équipe. Et aussi occasionnellement ses “prétentions salariales” ;)

En général, sur 10 candidats initiaux, deux réellement se démarquent et m’intéressent suite à ce process. C’est à ce moment là que je propose une journée de test en condition réelle dans nos locaux.

L’intérêt de cette journée est double:

  • Pour le candidat : ça lui permet de voir réellement la qualité du code, des développements, de ses futurs collègues et l’ambiance de la startup durant toute une journée. Ce point est très important pour moi, car c’est à mon sens un raison majeure des mauvais recrutements: de fausses / mauvaises promesses (involontaires la plupart du temps) à l’embauche qui vont rapidement démotiver le développeur une fois in situ.
  • Pour moi recruteur, mais aussi pour mes développeurs, c’est le moyen de tester le candidat en live / en pair coding sur des réels problèmes de codes de la solution. Cela ne me sert pas à grand chose à priori un cador dans un domaine si au bout d’une demie journée je ne le vois pas force de propositions ingénieuses (pas forcément correctes hein) sur une réflexion réelle et business appliquée à mon cas réel. Certains candidats performent étonnamment bien sur des entretiens amont et des problèmes “types” d’entretien, et sont relativement “plats” en vrai. Cette journée permet aussi de jauger de la rapidité d’assimilation / réflexion / implémentation / proposition d’idées du candidat, en situation réelle toujours. C’est un point important que j’ai toujours trouvé difficilement quantifiable sans cette journée de test. Enfin, cela me permet de récolter plusieurs points de vue suite à cette journée, ceux de mes développeurs (trouvent-ils qu’il a le niveau ? se voient-ils travailler avec lui ?) et même ceux de mes commerciaux, ou tout autre domaine-related employé de la boite. Une nouvelle recrue dans une équipe, c’est certes un nouveau profil qui doit correspondre à une certaine attente, un certain profil, mais aussi une pièce de puzzle qui doit s’assembler avec les existantes déjà présentes, et cela a parfois autant de poids que la nouvelle pièce en elle-même.

Attention, cette journée est une journée bien huilée et préparée. Sans un minimum de préparation, cela ne servirait pas à grand chose, et serait plus une perte de temps. On ne catapulte pas un nouveau venu n’importe comment dans l’arène ;)

Le programme :

  • Bien souvent, je fais un petit tour du propriétaire avec le candidat, aussi bien au niveau de l’équipe que de l’archi et de certains bouts de code. Cela dure une petite heure.
  • Le candidat va ensuite rejoindre la team qu’il serait amené à compléter, et va cotoyer chaque dev de celle-ci entre 30 minutes et une heure. Ce temps sert pour chaque dev à expliquer son quotidien, et passer un peu de temps en pair coding afin de challenger le candidat et le jauger, chacun un peu à sa sauce (certains sont plus vicieux que d’autres, et bien plus souvent que moi).
  • Tout cela nous porte généralement au déjeuner tardif (14h): là c’est l’occasion pour une grande partie de la team de partager le repas avec le candidat et de se détendre autour d’un ping pong.
  • Suite à cela, il reste 1-2 heures de travail où le candidat est placé seul sur un sujet qu’il aura abordé et auquel il aura été “formé” par un autre dev le matin, afin de le continuer seul et de jauger en fin de journée sa rapidité, sa rigueur, sa technicité.

Cela fait une journée bien remplie, pour le candidat comme pour moi, où je dois trouver le plus de disponibilité au sein de mon équipe et avec un ou deux challenges techniques accessibles pour ce candidat (une matinée pour apprendre et s’immerger en pair coding, une aprèm pour y travailler seul).

Cela doit facilement prendre 4 heures de temps homme à la boite au niveau de la salle dev, 3 heures de “formation”/”culture gé” dispensé au candidat, et 2-3 heures de travail “effectif” réalisé par ce dernier. Il est à noter que cette journée n’est jamais rémunérée (mais dédommagée niveau transport et dejeuner) et que le travail effectué par le candidat est rarement repris (car même si le travail est bon, il ne sera jamais suffisant en l’état pour intégrer la branche principale, sans être lourdement refactorisé, et par conséquent, souvent repris from scratch par un des devs de la team).

Et vous, avez-vous ce genre de journée dans vos process de recrutement ? Avez-vous d’autres “curiosités” notables ?

Le meilleur développeur de France: entre fumisterie et imposture

Après avoir bien bavé sur Twitter et m’être pas mal gaussé en lisant les échanges du compte @MeilleurDev, je pense qu’il est important de s’attarder plus sérieusement sur deux points importants que soulève ce “concours” et qui m’ont laissé un goût amer en bouche en découvrant l’existence de ce dernier.

# Pourquoi ce concours est une grosse opération mercantile

Fort d’un amateurisme total et évident (Logo dégueu, WordPress minimaliste visible dans l’url, vidéo montée à la va-vite, intonation et musique à la Koh Lanta), ce concours est monté par:

  • une école qui veut racoler du jeune développeur et introniser dans ses locaux le nouveau French Dev Killer 2013 qu’elle aura découvert
  • une agence de recrutement qui va exploiter allègrement les coordonnées de tous les candidats inscrits, présents, perdants ou gagnants
  • une société qui veut installer le TOSA comme une norme universelle d’aptitudes au développement, et qui effectue un remarquable coup de com’ et assoit sa crédibilité si son test sert à nous débusquer le meilleur développeur de France

Ajoutez à cela un tarif plus que prohibitif (~90€ pour les étudiants, ~140€ pour les autres) pour 1 400 candidats max, ce qui nous donne un événement qui rapporterait en moyenne 150k€, pour décerner 10k€ à l’unique vainqueur, et quelques mugs/casquettes/autres goodies aux 30 meilleurs je suppose… Dans des locaux fournis par l’école 42, je doute donc que la logistique et les sandwich triangles coûtent plus de 100k€..

# Pourquoi ce concours est une imposture

Franchement, qui va croire qu’un meilleur développeur de France existe ? Ce concept est profondément faux et non pertinent.

Les développeurs ont leurs forces et leurs faiblesses. Les “bons” développeurs à mon sens ont un profil “T-shaped” (dont je parle dans ce précédent billet) et malgré leur culture G seront bien moins bons qu’un autre dans tel ou tel domaine, tout en étant le killer recherché dans son domaine de choix.

[EDIT: merci aux footix qui ont suivi, la phrase qui suit est bien évidemment fausse..] C’est un peu comme au foot, on élit bien un ballon d’or du meilleur buteur chaque année, pas du meilleur footballer. Elle aurait l’air fine l’équipe composée que d’attaquants (les meilleurs) ou que de défenseurs (les meilleurs). C’est pareil en développement. [FIN EDIT]

Et quand bien même il y aurait un développeur ultime le plus skillé sur tous les fronts, remportant ce concours, il ne m’intéresserait pas pour mon équipe de développement car fort certainement trop rockstar/diva/individuel pour les besoins de ce qui compte vraiment: fédérer une équipe complémentaire de gens doués dans leur domaine, pour construire le meilleur produit qu’il soit.

Voila les raisons de la profonde tristesse que m’a inspiré ce concours. Un événement purement mercantile, totalement faux, mal préparé (dans la forme et le buzz en tout cas), qui très certainement rencontrera un succès suffisant pour satisfaire ses organisateurs et suffisamment pour ternir un peu l’image des développeurs en France, parqués dans leurs immenses salles à faire des tests de merde pour quelques € et quelques goodies, au lieu de réellement mettre à profit leurs connaissances ce jour là pour leurs boites, leur projets open-source, leurs projets persos..

Recherche devs spécialistes, et non de couteaux-suisses techniques

Aujourd’hui, petit billet à dominante recrutement, cela faisait bien longtemps tiens :)

Chez Wisembly, nous recherchons en permanence des personnes talentueuses pour rejoindre nos équipes. Souvent en postant des offres bien précises, parfois, au détour d’un chemin, par pur hasard, au grés des rencontres.

Et si je n’ai toujours pas changé d’avis sur l’inutilité d’un CV académique sans projets perso et / ou profile Github (ou Dribble, Pen.io, Stackoverflow..), je me rends compte que trop de candidats à mon goût se présentent à moi comme véritables “couteaux-suisses” techniques sachant tout faire, indispensables pour ma startup.

Dans mon cas, ainsi que celui de nombreuses startups, je pense que c’est totalement faux. Je vais essayer de détailler un peu ici pourquoi.

Tout d’abord, ce qui nous différencie nous startups du reste du monde à mon sens, c’est la capacité à concevoir et délivrer de nouveaux produits ou usages comblant de la façon la plus élégante / efficace qu’il soit un cruel manque business.

Pour ce faire, il ne suffit pas d’aligner superficiellement quelques lignes dans deux trois langages et frameworks différents et pusher le tout sur un serveur. Il faut (et ceci est le rôle du CTO normalement) étudier quel est le meilleur mix techno à adapter pour mener à bien son développement produit, composé normalement de quelques techos “standards / classiques” mais aussi de techos plus méconnues, innovantes et qui évoluent rapidement.

Dans ce contexte là, il faut:

  • être capable de maitriser et pousser dans ses retranchements chaque techno employée, pour en tirer sa quintessence, gagner en performance, efficacité de développement et expérience utilisateur.
  • connaitre sur le bouts des doigts ses technos pour les agencer efficacement et avoir une archi robuste mais souple qui permet de shipper vite, pivoter aisément et iterer agilement sur ses features.
  • savoir placer ses meilleurs ressources sur du front, d’autres sur du back, d’autre sur de l’algo, d’autres sur ceci ou cela

Je pense que pour être le meilleur compétiteur dans son domaine technique / business, il faut être le plus exigeant et le plus perfectionniste tout en restant le plus efficace / performant possible (rien que ça!). Dans le monde de la technique, cela ne peut venir sans expériences et kilométrage au compteur dans le code en général, et dans quelques techno en particulier. Bien que ce billet sonne très vrai, et qu’un excellent codeur dans un langage donné peut être tout aussi bon dans plein d’autres, je suis convaincu qu’une personne faisant à longueur de journée du front, du back, du js et du dev ops sera juste moyen en tout et excellent en rien.

Attention, ne me faites pas dire ce que je n’ai pas écrit. Il est important d’être pluridisciplinaire et de pouvoir mixer les sensibilités / technos: c’est une preuve d’ouverture d’esprit qui ne peut qu’être bénéfique !

Mais lorsque je rencontre un candidat et que l’entretien tourne ainsi:

- “Bonjour, c’est quoi ton kiff dans le code au quotidien, au boulot ou le soir chez toi ?”
- “Alors moi ce que j’aime, c’est faire du Python sous Django et du Symfony2 en PHP, tout en faisant du javascript MVC sous Ember ou Angular, en utilisant HTML boilerplate et Bootstrap en less. Parfois du Saas”
- “Ah, très bien, et tu préfères travailler plus sur quoi? Du gros back, du gros js ou de la UI/UX ?”
- “Ah mais j’aime tout moi !”
- “Bon, et du coup, tu te vois plus travailler dans une team back, js ou front ?”
- “Bah, comme vous voulez, je sais tout faire et j’aime tout faire”
- “Bon… t’as des projets à me montrer ?”
- “Oui, 5 sites, avec des potes à chaque fois, j’ai un peu touché à tout, j’adore ça hihihi”
- “Très bien, on se rappelle !..”

Et bien ça ne va pas être possible mon garçon. Pour moi en tout cas.

Peut-être qu’au sein d’une startup sans CTO ce genre de profil peut faire l’affaire, peut-être qu’au tout début d’une startup en employé dev n°1 ou n°2 cela peut passer. Mais rapidement je pense il faut veiller à former des teams par technos / compétences afin de les pousser à l’excellence, et ce genre de profil “indécis”, non “spécialisé” aura difficilement sa place.

Et vous qu’en pensez-vous ? Quelles sont les teams que vous avez constitué ? Recruteriez-vous ce genre de profil et dans quels cas ?

Venez goûter à l’expérience grisante d’un job dans une chouette startup techno: rejoignezunestartup.com!

Voici un bonne nouvelle dans le monde de la startup, de l’IT et du recrutement! Sous la coupe de Jean-Daniel de @capitainetrain, découvrez le projet de recrutement startup unique en France il me semble que nous avons monté, nous petites startups ambitieuses et généreuses: rejoignezunestartup.com!

Continue reading

Ces Web Agencies qui discréditent vos premiers recrutements en startup

Ce matin, de bonne heure tout de même pour mes vacances, je suis tombé sur ce tweet:

Intrigué, je vais donc faire un tour sur l’annonce pour trouver la raison de ce tweet assassin. Quelle ne fut pas ma surprise à la lecture attentive de cette hypocrisie sans nom, que je vous fais partager ici avant qu’un modérateur éclairé, j’ose l’espérer, la retire de ce job board:

Continue reading

Quelques conseils pour rendre votre startup plus developer-friendly

Comme le montrent les réactions du précédent billet, un bon (voire un excellent) développeur ne rejoindra pas votre startup juste pour vos beaux yeux, trois nèfles, quelques pizzas et quelques bières. C’est sur ce point que nous avons décidé de plancher avec Guilhem cette semaine: comment rendre votre startup plus développeur-friendly ?

Une vraie situation d’équilibriste : comment, avec des moyens financiers limités et plein de batailles onéreuses à mener de front, valoriser le travail de vos développeurs, les gratifier à hauteur de leurs succès, de leur importance pour votre startup et les mettre dans les meilleures conditions possibles pour qu’ils produisent le meilleur d’eux-mêmes tout en « kiffant » réellement leur job? Attention, je ne dis pas ici de ne pas les payer, ni de les sous-payer! C’est un autre débat, si vous n’avez pas de sous, associez-les au projet, au capital, et il ne s’agit plus là d’employés mais de fondateurs qui prennent 100% des risques avec vous sans salaire. Ja parle ici de vos premiers réels employés, que vous payez, mais que vous ne pouvez engraisser honteusement comme peuvent se le permettre nos fameuses SSII, Web Agencies, banques, boites du CAC40 et consorts..

Je vous invite à lire la suite de cette réflexion co-écrite avec Guilhem sur son blog.

7 bonnes raisons pour quitter votre job en SSII ou Web Agency et rejoindre une startup

Aujourd’hui, un petit billet dans la série de co-écriture que nous avons entamé avec Guilhem il y a quelques jours. Ce coup-ci, c’est lui aux manettes pour le gros du billet!
La dernière fois que nous nous sommes croisés, nous avons pas mal discuté recrutement, code et ninjas, vaste sujet, assez critique pour une startup web. Je déplorais la “perte” de bons éléments (stagiaires, collègues, connaissances) en milieu SSII ou WebAgency quand nous est venu cette idée de billet qui fera peut-être grincer des dents certaines boites: 7 bonnes raisons pour tout plaquer et venir travailler dans une chouette startup!

A toi Guilhem!
**********
Bonjour à tous!
Ce n’est pas un secret : en France, on a un problème avec nos ingés et développeurs.
C’est vrai, ils font des écoles, des stages, tous les horizons leur sont ouverts, sont plutôt bons par rapport à leurs homologues étrangers… et patatras, les voilà qui se réfugient à 90% dans des SSII. Forcément, du point de vue de l’entrepreneur que je suis (et apparemment, je ne suis pas le seul), c’est frustrant, surtout lorsque l’on est persuadé que nos chers développeurs seraient bien plus heureux… dans nos startups !

Alors je m’adresse à vous, développeurs et jeunes padawans encore sur les bancs de l’école, en vous proposant quelques arguments pour vous aider à faire le grand saut, et à quitter (ou refuser de rejoindre) le monde affreuxxxxxxxxxx des SSII (beurk) :
  • L’argent ne fait pas tout. C’est sûr que de prime abord, les SSII ont une proposition de valeur assez alléchante : un bon salaire. Alors OK, en sortant des études, c’est sympa d’avoir un chouette niveau de vie, de pouvoir se refaire une garde-robe (ah, ah), et se payer des bières sans compter à la dépense. Pour ceux pour qui l’argent est le seul et unique critère, la SSII semble le bon endroit pour s’épanouir. Pour les autres, vous pouvez continuer la lecture et surtout, demandez-vous si, en-dehors de l’aspect salarial, le compte y est dans votre situation actuelle.

Qu’est ce qu’un Lead Dev (en startup)

Il arrive un temps dans une startup, plus ou moins tôt en fonction du profil des associés, de leur niveau et appétence technique, où il devient nécessaire de recruter un Lead Developeur (comprenez en français, “développeur en chef”. Oui, c’est beurk).

C’est mon cas actuellement. Et avant que de poster une offre, il convient de se poser et de réfléchir aux points suivants, afin d’avoir les idées claires:

  • À quoi correspond ce poste exactement? Quelles sont ses caractéristiques, comment s’insère-t-il par rapport aux postes existants?
  • Une fois ceci défini, de quel profil j’ai besoin au juste? De qui ai-je besoin?

Mon expérience personnelle m’a donné à réfléchir à ces points en deux fois, par une période d’essai d’intervalle..

Continue reading

La traite des stagiaires (dev, en startup)

Ces derniers temps, plusieurs signes fugaces, diffus mais bien présents ne m’ont pas échappé: sur Twitter des “stage développement en startup non rémunéré, excellente ambiance” tandis que sur Linkedin, Remixjobs ou autre job board des “recherche stagiaire(s) expérimenté(s)” ou encore “stagiaire excellente connaissance en [remplacez ici par votre techno]” éclosent deci delà. A ne pas s’y méprendre, la saison 2012 des stages abusés est désormais ouverte!

Continue reading

Développeurs & startup: vos diplômes et vos CV ne servent à rien (ou presque)

Soyons francs: dans le monde de l’entrepreneuriat, les premiers employés recrutés sont à peu de choses près le moteur de votre jeune succès ou la raison de votre échec prématuré.

Il est évident que le ou les fondateurs d’une startup détiennent l’idée, la vison de l’entreprise et en sont les maîtres d’oeuvre de son exécution. Mais dans une startup, le premier employé représente bien souvent plus de 25% du capital humain, les 4 suivants plus de la moitié.. Il est donc très important de “bien recruter”, selon des critères startup.

Bien que nombreux de ces critères se retrouvent aussi bien pour des recrues commerciales que techniques, je m’attarderai dans mon cas uniquement sur ce qui occupe 100% de mon temps de recrutement, la clé de voûte d’une startup web: le recrutement de profils techniques et développeurs.

Ce que je ne regarde pas (ou très peu): Continue reading