Dev, Lead-Dev, CTO

quelles différences pour une startup ?

Posté par sebbrochet le 19 juillet 2015

Introduction

Cela fait maintenent plusieurs années que je m’intéresse au monde des startups. Et ce qui m’a toujours frappé c’est la connaissance, plutôt limitée en général, des fondateurs sur la nature des profils techniques.

Les fondateurs de startup

Très (trop ?) souvent les fondateurs de startups sont issus de formations en Commerce ou en Management. Ils ont travaillé sur une idée, fait un business-plan et vient le moment de trouver la ou les personnes pour passer de l’idée au prototype.

Il y a 2 cas de figures:

  • Pour certains, une 1ère version sera réalisée (ou plutôt bricolée) par un ami qui s’y connait un peu (en PHP en général).
  • Pour d’autres, une version plus ambitieuse sera réalisée via une agence web (mais toujours en PHP).

Dans les 2 cas, pour aller plus loin et mieux coller au(x) Métier(s) de la startup, il faudra employer une personne à plein temps et en interne. Et c’est là que ça se complique et que les différences entre les rôles techniques deviennent floues pour nos fondateurs.

Ainsi, de très jeunes startups se mettent à chercher un “CTO” alors qu’elles ont plutôt besoin d’un Lead-Développeur. Comme nous allons le voir, les 2 termes ne sont pas interchangeables et à la décharge de ces fondateurs de startup, certains accélérateurs entretiennent également la confusion

Une version initiale, ça sert à quoi ?

La version initiale du produit sert à valider le business model. Tant que cet objectif n’est pas atteint, on déconstruira le lendemain ce qu’on a construit la veille. Au bout de plusieurs itérations étalées sur plusieurs pivots, le résultat d’un point de vue technique sera très moyen (euphémisme !). Ce qui n’est pas dramatique en soi car le but de cette version initiale n’est ni de durer ni de pouvoir monter à l’échelle (plus de traffic, ajouts de fonctionnalités, …). Quand le business model sera validé, la version initiale devra progressivement être réécrite pour mieux coller au Métier et respecter des bonnes pratiques pour assurer la pérennité des développements.

Qu’est-ce qu’un Développeur ?

C’est une personne qui passe quasiment tout son temps professionnel à faire du développement logiciel. C’est-à-dire à coder dans un langage informatique une application (web). C’est quelqu’un qui est plutôt en début de carrière, qui ne maitrise que peu de langages ou frameworks différents et qui a réalisé peu de projets en entreprise. Il travaille en général sur des tâches très précises et bien délimitées comme des corrections de bugs ou des évolutions mineures (il y a bien sûr des exceptions mais je parle ici du cas général).

Qu’est-ce qu’un Lead-Développeur ?

C’est notre développeur au bout de quelques années et plusieurs projets professionnels à son actif. Au fil des années, il a acquis de l’expérience et est le référent dans son domaine d’expertise. Il passe la majeure partie de son temps à coder et c’est en priorité à lui que l’on confie les développements les plus complexes. Mais il aide également les développeurs moins experimentés en cas de difficultés et il fait aussi un peu de conception.

Qu’est-ce qu’un CTO ?

CTO est l’acronyme de Chief Technology Officer. En français, on va plutôt parler de Directeur Technique. Son rôle est de superviser tous les aspects techniques en rapport avec le produit qui est développé par la startup. C’est quelqu’un qui a travaillé sur plusieurs projets professionnes, dans des Métiers différents et qui a fait de l’encadrement. Il a été développeur à ses débuts, est devenu Lead-Développeur par la suite. Quand l’opportunité s’est présentée, il a fait le choix de devenir Manager pour continuer à faire progresser sa fiche de paie. Il reste très opérationnel sur les aspects techniques, il est à l’aise avec les technologies et apprend/comprend vite. C’est lui qui conçoit l’ensemble de la solution technique, qui fait les recherches correspondantes pour valider la faisabilité d’une architecture.

Les développeurs sont des sportifs ?

Faire du développement c’est un peu comme pratiquer un sport: pour être bon et conserver son niveau, il faut s’entrainer régulièrement.

  • Un Développeur s’entraine 8H/jour et s’il aime vraiment ce qu’il fait, il fait de la veille pendant son temps libre.
  • Un Lead-Developpeur pratique également plusieurs heures par jour, assez souvent en se spécialisant un temps sur un langage et/ou un framework.
  • Le CTO ne s’entraine plus trop (ou alors pendant le week-end), il délègue le codage aux développeurs de l’équipe qu’il dirige et son expertise précédente s’est un peu émoussée.

Toujours prêt à recruter un CTO ?

Le CTO ne doit pas être le seul profil technique dans une startup, si c’est le cas, il ne jouera pas son role de CTO. Il aura la tête dans le guidon et ne pourra pas prendre le recul nécessaire pour assurer une vision pour la suite. Au moment d’assurer le passage à l’échelle supérieure, on préféra (sous la pression des investisseurs) prendre un “vrai” CTO venant de l’extérieur.

Conclusion

On le voit donc, confier à un CTO le rôle de développer la version initiale d’une application n’est pas le meilleur choix. Un Lead-Développeur, si possible secondé par un développeur, est un meilleur compromis.

Alors pourquoi parler de CTO pour accompagner des startups tout juste naissantes ? Probablement parce que le terme est plus accrocheur:

Iriez-vous à une soirée “AdoptaDev” ou “AdoptaLeadDev” ?