Chamagne Bastien
Développeur indépendant à Pau

Pourquoi embaucher un freelance plutôt qu'une ESN ?

Freelance

Dans cet article, je vais donner mon opinion entre passer par un freelance VS passer par une Entreprise de Services Numériques (ESN) pour un projet de petite taille (nécessitant 1 à 2 devs). Je prêche évidemment pour ma paroisse. C’est donc à prendre avec du recul mais je pense qu’après l’avoir lu, vous devriez plutôt pencher en faveur des freelancers.

Votre projet n’a rien de spécial

La plupart des projets que l’on rencontre n’ont rien de particulier. Voilà une vérité que des commerciaux ne vous diront pas. En tant que développeur, on voit et revoit tout le temps les mêmes projets, les mêmes patterns. Combien de fois ai-je développé un système d’acquisition de données temps réel ? un système d’alertes ? de notifications ? un dashboard ? un chat ? une gestion d’utilisateurs avec différents rôles ? Rares sont les fois où l’on rencontre des choses nouvelles.

Ce n’est pas parce que vous faites un SaaS qu’il faut immédiatement développer un scaling digne d’une licorne. Il faut seulement l’anticiper.

Mon point ici, c’est de montrer qu’il n’est peut-être pas nécessaire d’avoir une équipe entière travaillant dessus. Souvent une personne suffira (voir The Mythical Man-Month). Deux quand il y a certaines parties nécessitant du pair review. Vous seriez impressionné de voir ce que peut accomplir un développeur sénior seul qui maîtrise son stack. J’ai pas mal d’anecdotes là dessus.

Moins il y a de développeurs, mieux c’est

Les développeurs étant uniques, leurs façons de travailler le sont aussi. Un projet peut vite être incohérent. Par exemple dans un même projet j’ai vu un SDK qui retournait des fois des streams, des fois des promesses, des fois des tableaux d’objets, des fois un csv… Ces incohérences sont des grains de sable qui impacteront la maintenance du projet. Si les développeurs travaillant sur un même projet ne suivent pas rigoureusement des conventions mises en place, le legacy du projet augmentera très vite.

Cet argument s’applique avec des développeurs ayant un peu de bouteille.

D’après mon expérience, la chose la plus dure dans toutes les entreprises où j’ai travaillé c’est la communication entre les gens et départements. Donc, moins il y a de gens, plus facile est le travail.

Le véritable coût d’un logiciel est dans la maintenance

Ce que j’appelle maintenance n’est pas que le maintien du logiciel. Pour moi, la maintenance c’est tout le cycle de vie après la première recette.

Quand une ESN fait un devis, elle met en avant le coût du développement. Pour la maintenance, un retainer de quelques centaines d’euros afin de maintenir le logiciel en fonctionnement. Rien n’est prévu pour ajouter des fonctionnalités donc, dès qu’il y a le moindre petit développement à faire, l’ESN se cachera derrière un cahier des charges qui ne précisait pas celui-ci. Ce qui intéresse l’ESN est de faire un maximum de développement initial et un minimum de maintenance. Du coup, les factures pour du développement hors cahier des charges sont souvent salées.

Poussons le vice : Quand on y réfléchit, si on n’a pas prévu de faire des évolutions, ne peut-on pas juste sacrifier toute la maintenance au profit de la vitesse du développement ? Après tout, ce ne sera pas nous qui aurons à corriger les problèmes plus tard.

Il est donc extrêmement important de se renseigner sur le coût des évolutions, quitte à inclure une clause dans le contrat initial.

Plus sur le sujet :

Faire passer des débutants comme des experts

Un développeur junior sortant de l’université et qui est embauché dans une ESN sera payé environ 30 000 €. D’après le site Kamatz.com, cela correspondrait à un TJM de 213 €. Quand l’ESN le placera en tant que Lead Developer React, combien pensez-vous qu’elle le “vendra” ? Probablement 2 à 3 fois plus.

Une belle marge

Les ESN rajouteront une belle marge de 20 à 50 % (source). Le marketing coûte très cher après tout. Marge souvent inexistante côté freelancer car déjà incluse dans le TJM : les freelancers facturent souvent en régie plutôt qu’au forfait.

L’importance d’avoir un interlocuteur unique

Un freelance remplit tous les rôles : commercial, marketing, chef de produit, développeur, Q&A etc. Quand vous parlez avec lui, vous parlez à quelqu’un qui saura tout de votre projet et qui a les compétences techniques et fonctionnelles pour conseiller et diriger celui-ci. Pas de téléphone arabe ici.

Un parallèle avec les artisans du bâtiment. Un jour, j’ai fait venir une entreprise pour ajouter une baie vitrée chez moi. Le patron m’a fait un devis ; c’était un gars du coin, très sympathique et on voyait qu’il connaissait bien son métier. Je lui ai fait confiance et quand les ouvriers sont arrivés chez moi, ils ne parlaient pas français et travaillaient salement pour rester poli.

Fait : Un commercial est là pour vendre, pas pour satisfaire le client. L’écart qu’il y a entre un discours de commercial et la recette finale peut être immense.

Des contrats simples

Un freelance ne s’arme pas d’avocats et de juristes pour faire ses contrats. Il prend un contrat-type et remplit les trous. Il n’y a pas d’ambiguïté. Une liste à puces pour les fonctionnalités à implémenter et basta.

Parallélisation

Une ESN aura potentiellement des dizaines de projets développés en parallèle. Ses développeurs sont donc soumis à des pressions pour atteindre rapidement les deadlines et passer au projet suivant. On est proche du Fordisme.

Un freelance ne peut pas trop prendre plusieurs projets en parallèle sans que son travail en soit impacté. On se met rarement freelance pour bosser 60h/semaine (surtout qu’on gagne plutôt bien notre vie).

Les priorités peuvent changer

Il n’est pas rare qu’un nouveau projet bouscule les priorités des autres existants. Un projet peut prendre deux fois plus de temps que prévu parce que les développeurs ne travaillent plus autant dessus mais sur un autre plus lucratif avec un client plus illustre.

J’avoue qu’il est possible que ce cas se produise aussi en passant par un freelance mais c’est bien plus rare. Un freelance a beau être multi-casquettes, il est difficile de faire du développement et du commercial en même temps.

Mythe : Allocation de personnes supplémentaires

Un argument qu’on entend souvent en faveur des ESNs est qu’elles peuvent facilement attribuer plus de personnes au projet si besoin. Cet argument est à nuancer. Évidemment, elles ont les “ressources” de le faire, mais ces “ressources” sont probablement déjà placées sur d’autres projets. Sortir des développeurs d’un projet se doit donc d’être plus lucratif que de les y laisser.

Quand on passe par un freelance, on bénéficie aussi de son réseau. Il connaît forcément d’autres freelances souvent dans le même milieu. Il est donc aussi facile pour lui/elle d’attribuer des personnes supplémentaires si besoin.

Mythe : Le projet ne part pas en vacances

Un argument en défaveur des freelancers est que comme ils sont souvent seuls sur un projet, quand le développeur part en vacances, le projet est mis en pause. C’est vrai, rien à redire là-dessus.

Dans une ESN, le développeur qui part en vacances est remplacé par un autre. Cela demande une certaine logistique de trouver un autre développeur libre juste pour ces quelques semaines mais admettons. De plus, dans le monde réel un développeur n’est pas immédiatement interchangeable. Changer de développeur en cours de projet a un coût qui ne peut être absorbé en si peu de temps.

En réalité donc, les projets sont aussi mis en pause dans les ESNs. Ceux qui ne le font pas, profitent un peu de leurs clients…

Estimation et emploi du temps

Dans une ESN, c’est le chef de projet qui fera les estimations après consultation des développeurs, chefs de produits, commerciaux, architectes, etc.

Le freelance connaît son niveau dans les différents domaines qui impliquent le projet. Il connaît son emploi du temps. Il est donc la meilleure personne pour faire des estimations.

Un expert en apprentissage permanent qui doit satisfaire son client

Cet argument est celui de la sécurité de l’emploi. Un employé est au chaud dans une entreprise, il est difficile en France de licencier les gens. Ceux-ci peuvent donc se contenter du minimum syndical (et encore).

Un freelance, lui, n’a pas le choix. Soit il travaille bien et il a des clients, soit il travaille mal et il perd ses clients. C’est aussi simple que ça. Il se doit d’être en perpétuel apprentissage et d’être un expert dans son domaine.

Cet argument, je trouve, est probablement le plus radical de tous.