Suite à mes réflexions, j'explique dans cet article à quoi ressemblerait un productized-service dans le domaine du développement d'applications.
Le week-end dernier, j'ai passé un bon moment à réfléchir à une solution par rapport à une idée qu'Adonis Simo avait partagée avec moi : créer un productized service mais dans le domaine du développement.
L'idée de productized service est très répendue dans l'univers du design: des gars comme Design Joy s'en sortiraient apparemment très bien avec ce business model. Le principe est simple: il s'agit tout simplement de proposer un service à un prix fixe durant une période bien définie. Celà fonctionne comme un SAAS sur abonnement, par exemple 10 dollars chaque mois pour regarder Netflix. C'est ainsi qu'un gars comme Design Joy propose à ses clients des designs infinis à 4995 dollars par mois : ça a l'air surréaliste n'est ce pas ?
Personnellement, j'ai découvert le principe de productized service en 2018 sur Indie Hackers: il s'agissait d'une personne qui proposait la maintenance des sites Wordpress à des tarifs fixes: le client pouvait souscrire à un plan dans lequel l'expert en question se charge de maintenir son site web et d'améliorer le SEO chaque mois.
Ce principe de productized service m'intéressais déjà à l'époque et j'avoue qu'en tant que développeur, je ne voyais pas comment l'implémenter. D'ailleurs je tiens à préciser que je n'ai pas encore testé ce buisness model. Dans cet article, je partage tout juste mes réflexions sur la base de mon expérience en tant qu'employé qui a travaillé sur plusieurs projets dans différentes entreprises et qui voit comment ces projets étaient gérés.
Alors, quand Adonis m'a interpellé à ce sujet il y'a quelques temps, on s'était séparé sur le fait qu'il serait difficile de l'appliquer en développement, contrairement au DevOps ou au design, à cause de la complexité qui varie d'un projet à l'autre. Plus tard j'y ai beaucoup réfléchis et j'ai creusé un peu plus pour voir comment rendre ce buisness modèle viable, surtout dans un domaine où les besoins varient énormément d'un client à l'autre : développer une application à un prix fixe pour un client A ne prend pas le même effort que pour un client B.
Durant mes réflexions que j'ai d'ailleurs partagé avec Adonis, j'ai trouvé que malgré les contraintes, celà pourrait être possible et voici comment.
Tout part de la niche ou de la spécialisation
Pour réussir à créer un productized service dans le domaine du développement d'application, je pense que la clé réside dans la spécialisation. En gros, il faut être en mesure de transformer votre expertise en un service hautement valorisé.
Imaginez que vous êtes un développeur Django freelance comme plusieurs autres sur Peef. Vous pourriez vous positionner comme étant un expert en migrations de données, en vous concentrant uniquement sur les API et les services web :
- Vous pourriez ainsi être en mesure de migrer des données d'un système Django vers Shopify ou Magento.
- Améliorer l'API d'une application en prod pour qu'elle soit plus performante
- Faire la migration d'une application desktop utilisant MSSQL vers une application Django.
Une expertise pareille vous oblige à avoir une démarche qui s'appuie sur un produit bien adapté qui réponde aux besoins très spécifiques de votre clientèle cible.
Concernant la migration, Adonis explique ici comment ils ont fait une migration de Joomla vers Django.
Si vous avez envie de savoir comment installer MSSQL Server via Docker, lisez juste cet article.
Les caractéristique de votre service-produit
Dans cette approche de productized service, vous transformez des services traditionnelles en services Premium réplicables d'un client à l'autre. Pour ce faire, votre service-produit doit avoir les caractéristiques suivantes:
- Il doit être défini comme un produit et faire une seule chose: Django API Migration ne ferait que de la migration et l'implémentation d'API.
- Le service-produit que vous offrez doit être livré suivant un proces bien établis et répétable d'un client à l'autre
- Vous devez utiliser certains outils pour automatiser certaines actions comme un template à utiliser pour chaque client, des github actions précises, etc.
- En fin, les tarifs doivent être fixes : plan basique, plan premium, etc.
De ce fait, un service-produit avec ces caractéristiques fait de vous un expert de votre domaine: vous pouvez alors fixez des tarifs plus élevés et attirer spécifiquement les entreprises qui ont besoin de vos compétences et facturer en conséquence.
Si vous ou votre ami(e) recherchez le développeur idéal pour votre projet tout en bénéficiant d'une assistance dédiée à chaque étape, n'hésitez pas à publier votre offre ici.
La facturation doit être basée sur la valeur que vous apportez
L'un des défis majeurs en développement est de trouver un modèle de facturation qui soit à la fois juste pour le client et rentable pour le développeur : c'est pourquoi j'ai pensé à un système basé sur les besoins qui reflètent la valeur que vous apportez au client.
- Ici, chaque besoin client sera un ticket qui théoriquement ne va pas aller au delà de 4h de travail.
- Les tickets seront livrés sur la base des sprints de 2 semaines.
- De manière standard, 2 semaines réprésentent 80 heures de travail. Cependant, en tant que freelance, vous allez travaillez 60 heures en 2 semaines, soit pour un total de 8 jours (4j/semaine).
- Sur la base de votre expérience, vous pouvez estimer la durée de chaque ticket et fixer un prix par ticket.
Par exemple, si vous avez besoin de faire un chiffre d'affaires de 1 000 000 par mois en travaillant 16 jours, votre tarif journalier sera de 62 500. Si une journée représente 8 heures de travail, vous ne ferez au maximum que 3 tickets par jour pas plus : le tarif pour implémenter un besoin du client serait alors de 20 850 tout en maintenant une certaine flexibilité.
Proposer des plan tarifaires flexibles
Pour rendre l'offre encore plus attrayante, j'ai pensé à 3 plans tarifaires basés sur le nombre de tickets ou de besoins que vous réalisez par mois :
- Le Plan 45 Tickets qui sera le plus cher va intégrer en plus des fonctionnalités premium, le CI/CD.
- Le Plan 30 Tickets qui vous offre un bon équilibre entre charge de travail et revenus.
- Le Plan 15 Tickets qui sera le plan de base plus abordable, idéal pour ceux qui ont les petits besoins.
Pour chaque plan, vous allez proposer des avantages spécifiques, pas seulement en termes de nombre de tickets, mais aussi en termes de services inclus.
Maintenant, imaginez que vous avez 2 clients de 45 tickets par mois : cela va certes vous donner beaucoup d'argent, mais le revert de la médaille sera une charge de travail très élevée.
Gérer la charge de travail
Avant d'entrer dans le vif du sujet, n'hésitez pas à profiter des opportunités lucratives à travers notre plan Ultradev
Pour éviter de se retrouver débordé par la charge de travail, je me dis que vous allez devoir limiter le nombre de clients que vous prenez chaque mois en fonction de votre disponibilité: vous ne ferez donc pas plus de 45 tickets par mois. Si un client commande un plan de 15 tickets, il ne faudra surtout pas dépasser 30 tickets pour le client suivant. Cette limitation de la charge de travail va garantir que vous pourez toujours offrir un service de qualité sans vous épuiser.
Du coup, s'il arrive que les besoins à implémenter étaient plus difficiles et que vous n'avez pas terminé tous les tickets, vous allez devoir facturer au prorata. Cela signifie que la facturation ne serait pas automatiquement mensuelle, mais basée sur le nombre de tickets utilisés chaque mois par le client.
Si un client a pris un plan de 45 tickets et qu'il arrive que vous n'avez implémentez que 30, vous n'allez facturer que ces 30 tickets là par rapport au plan qu'il a choisit, vus les avantages que vous lui apportez. Le prix de chaque ticket sera donc la moyenne des tickets du plan que le client aura choisit.
Gérer les situations où les besoins sont plus complexes que prévu
Je l'ai dis au début, l'un des aspects qui rend les productized services complexes dans le domaine du développement c'est la gestion des besoins complexes. Chaque projet sur lequel vous allez travailler aura ses réalités, les uns plus complexes par rapport aux autres. Pour gérer ces situations, voici quelques approches à envisager :
-
Analyse des besoins rigoureuse : avant de commencer un projet, il faut bien définir les besoins et évaluer leur complexité pour estimer les efforts nécessaires et positionner les tickets en fonction de leur complexité. Cette analyse doit impérativement faire partie des avantages des plans de facturation que vous allez proposer de peur de faire un travail supplémentaire pour rien.
-
Être flexible : Lorsqu'un besoin est plus complexe, l'étape de l'analyse rigoureuse va permettre de discuter avec le client pour ajuster le nombre de tickets requis. Un besoin pourra alors être implémenté avec 2 tickets, 3, 4 etc. en fonction de sa complexité.
-
Avoir une marge de manœuvre : vous avez certainement constaté que j'ai proposé le calcul des tarifs sur la base d'une semaine de 4 jours de travail au lieu de 5 et maximum 3 tickets par jour. En structurant votre semaine ainsi, vous vous donnez une marge pour gérer les imprévus sans affecter la qualité du service. S'il n'y a aucun imprévu, alors vous vous reposez.
-
La trasparence dans le communication : avoir une communication claire avec le client est un impératif, puisque c'est un gage de fidélité. Un client qui a confiance en vous n'ira jamais voir ailleur. J'ai parlé d'analyse et d'estimation, mais une estimation reste une estimation. Dès que vous identifiez qu'un besoin est plus complexe que prévu, il faut l'expliquer au client et proposer une solution. Vous n'êtes pas un robot, vous pouvez très bien vous tromper. La transparence va aider à maintenir la confiance et éviter les malentendus. Pour ce faire, il faudra utiliser un outil de gestion de projet dans lequel toutes les communications seront centralisées.
Envisager une stratégie de marketing pour attirer des clients vers votre service-produit spécialisé
Pour l'instant, je trouve que pour un productized-service, les meilleurs leviers sont le marketing de contenu, la qualité de votre travail et votre réseau.
Il est impératif de créer du contenu éducatif ou informatif qui démontre votre expertise et qui vous place comme un expert de
votre domaine. Choisissez les canaux sur lesquels vous vous sentez le plus à l'aise : blog, newsletter, vidéo, podcast, etc. N'oubliez surtout pas d'optimiser le SEO de vos contenus avec les mots clés spécifiques liés à votre spécialisation.
Concernant la qualité, il faut mettre en avant vos réussites et les témoignages de vos client satisfaits pour renforcer votre crédibilité. De plus, un client satisfait par la qualité de votre travail parlera surement de vous à un ami.
Enrichissez votre réseaux en collaborant avec d'autres professionnels. Si vous êtes un développeur backend, ayez dans votre réseau de développeurs frontend, designers, développeurs mobiles, DevOps etc. Ainsi, lorsqu'un client a besoin d'une compétence qui n'est pas la votre, vous pourriez le mettre en contact avec une personne de votre réseaux et celà va renforcer votre crédibilité.
N'hésitez surtout pas à découvrir d'autres développeurs sur Peef et entrer en contact avec eux.
Le dernier point ne fait pas partie du marketing mais il est impératif de penser au côté administratif comme les ventes, les contrats, les factures, le support, etc. À ce niveau, il serait envisageable de travailler avec des contractuels ou d'utiliser d'autres outils qui allègent votre travail, par exemple le service Peace Of Mind de Peef.
En conclusion
Créer un productized service en développement est tout à fait possible mais il faut avoir une approche stratégique et méthodique: vous devez construire un système tout en un. Créer un tel service-produit fera de vous un freelance pas ordinaire, mais un expert-spécialiste qui peut facturer très cher ses services.