Pur développeur, mais aussi utilisateur de WordPress, c’est suite à ce tweet que j’ai supplié @poupi de bien vouloir nous accorder une interview, et je peux déjà vous dire que je ne regrette pas de l’avoir fait.
Mister WP
Les lecteurs auront compris pourquoi je t’ai surnommé « le Mike Horn de la ligne de code ». 😀
Mais ce n’est pas uniquement parce que tu fais de la rando. Alors, dis-nous, comment as-tu découvert le Web ?
Je venais de déménager et habitant beaucoup trop loin de l’école pour rentrer chez moi le midi, les parents de mon meilleur ami avaient gentiment proposé de m’accueillir à leur table deux jours par semaine. Enfin… À leur table et surtout derrière leur ordinateur équipé d’une connexion Internet 56K 😀
J’étais trop jeune pour comprendre ce qu’était le Web et Internet. Je connaissais bien le Minitel et le téléphone… Internet devait être situé quelque part entre les deux.
Un jour, on m’a demandé d’envoyer un e-mail. Un peu gêné de ne pas savoir comment faire, j’ai demandé de l’aide. On m’a créé un compte sur CaraMail, choisi un magnifique pseudo digne des années 90 et initié à l’art mystique de l’envoi d’e-mails. Le premier tout juste parti, j’ai compris que je n’avais rien compris :
- Mais… Comment on paye ?
- Payer quoi ?
- Bah… Pour envoyer des e-mails ?
- Mais c’est gratuit !
Et c’est là que ça a fait tilt !
Internet n’était ni le téléphone, ni le Minitel, mais un truc (toujours pas très clair dans ma tête) permettant d’échanger de l’information avec n’importe qui, n’importe où, et n’importe quand.
C’est aussi là que j’ai commencé à paniquer et à me dire que si c’était gratuit, Internet allait forcément finir par fermer. Mais ce n’était pas très grave, puisque rusé comme je l’étais, j’avais prévu le coup et acheté deux boîtes de disquettes 3″½ pour sauvegarder toutes les pages intéressantes avant sa fermeture ! (malin !)
En 2006, notre première Box est arrivée. Après avoir englouti mon repas en trois secondes (si impatient d’ouvrir le colis), et passé les vingt minutes suivantes à quatre pattes les doigts dans la gorge pour essayer d’extraire une branche de thym que j’avais avalé de travers, j’ai installé la bête et découvert les joies de l’Internet à la maison.
J’ai redécouvert CaraMail et me suis lié d’amitié avec des inconnus qui m’ont amené au Jeu de Rôle par forums interposés. J’ai ensuite eu envie d’ouvrir mon propre forum, et grâce au Site du Zéro et à Wikipédia, j’ai pu faire partie de cette petite élite de personnes capables de mettre un lien sur une image ET de la centrer grâce à un langage obscur appelé HTML.
De fil en aiguille, j’ai finalement compris ce qu’était le Web, ce qu’était Internet, et qu’ils mettaient toute la connaissance du monde à notre portée. J’ai découvert la programmation, et compris que la magie n’avait rien à voir avec tout ça ; que les ordinateurs n’étaient que des tas de puces bêtes à manger du foin et que l’on pouvait leur murmurer des mots doux à l’oreille pour leur faire faire tout un tas trucs très cool !
Et tu m’as tué avec tes 2 boîtes de disquettes ! 😀
Maintenant que tu as capté ce qu’est Internet et que ça fait partie de notre quotidien à tous, comment occupes-tu ton temps, en dehors de la rando bien sûr ?
Techniquement, je suis développeur Web back-end spécialisé en PHP, mais je me considère avant tout comme « un développeur ». Front-end, back-end, PHP ou JavaScript, peu importent les outils, nous faisons tous le même métier !
J’ai essentiellement travaillé dans le domaine de la radio, mais depuis deux ans, j’emploie également une partie de mon temps à la formation de développeurs juniors chez moji, qui est un opérateur Internet avec qui je collabore depuis ses débuts.
La plupart de nos clients ont des besoins spécifiques en matière d’hébergement qui nous imposent souvent d’avoir un contrôle total sur les serveurs (matériel inclus). Comme les serveurs étaient éparpillés un peu partout et tous configurés différemment, c’était une vraie plaie à administrer au quotidien ; si bien qu’un jour, nous avons décidé d’investir dans nos propres serveurs pour regrouper tout ça.
Après avoir monté ces nouveaux serveurs dans un datacenter dans lequel nous avions un accès physique, nous avons migré toutes les anciennes machines avant que mon associé ne me donne carte blanche pour nettoyer et uniformiser l’ensemble. Grave erreur ! 😀
La technologie à la mode à l’époque était Puppet, et comme j’en avais entendu beaucoup de bien et que j’avais vraiment très envie de jouer avec, je me suis précipité sur Amazon pour acheter un livre que j’ai avalé d’une traite.
Au bout de quelques jours, la configuration était prête et tous les serveurs migrés et configurés grâce à Puppet.
Tout a très bien fonctionné pendant un temps, jusqu’à ce qu’un dimanche soir, alors que je dinais tranquillement en famille, je reçoive un appel de mon associé totalement paniqué parce qu’un serveur venait de crasher et qu’il ne comprenait strictement rien à la manière dont il avait été configuré. C’est là que nous avons compris que nous avions un problème bien plus grave qu’un simple crash.
Si pour une raison ou une autre, des membres du projet sur lequel vous travaillez devaient quitter l’équipe, combien en faudrait-il pour que le projet échoue ?
C’est ce que l’on appelle le Bus Factor. Et le nôtre était de 1 car nous avions fait l’erreur de confondre indépendance et autonomie.
Alors, comment font mes clients et mon associé pour se passer de mes services quand je pars ?
C’est simple : je me suis rendu remplaçable ! 😀
Je sais que dit comme ça, cela peut choquer ou même faire peur, mais lorsqu’on prend le temps d’y réfléchir, ce n’est pas si stupide au fond.
La première crainte que l’on peut avoir, c’est de se dire que si l’on est remplaçable, alors on sera remplacé. Et effectivement, ça peut arriver ! Mais remplacer quelqu’un demande du temps et de l’énergie, et tous ceux d’entrevous qui ont déjà effectué une refonte graphique doivent connaître l’adage « c’était mieux avant ! » qui prouve bel et bien à quel point les gens sont attachés à ce qu’ils connaissent.
Rendez-vous remplaçables ! Car tant que vos collaborateurs apprécieront votre travail, ils reviendront vers vous ; parce qu’ils vous connaissent et qu’ils n’ont aucune raison d’aller voir ailleurs s’ils sont contents de vos services. En pratique, c’est assez simple à mettre en place et ça demande finalement assez peu d’efforts :
- Faites les choses simplement (KISS). Si vous êtes développeur, écrivez du code suffisamment clair, concis et logique pour que n’importe qui puisse le comprendre.
- Documentez ce que vous faites. Ça concerne évidemment le code, mais aussi tout ce qui tourne autour, à commencer par le projet lui-même : quel intérêt d’expliquer que la fonction open_the_door() ouvre la porte si l’on ne sait pas si le code qu’on est en train de lire pilote un frigo ou un coffre-fort ? Documentez tout ce dont votre code a besoin (variables d’environnement, extensions, serveur web, constantes, …) de sorte que même sans vous, tout puisse être réinstallé, corrigé ou adapté.
- Gardez une trace de tout ce que vous faites : modifications sur le code, modifications sur le serveur, échanges avec les clients, … et partagez-la avec votre équipe !
- Communiquez efficacement. Il y a une règle tacite chez nous qui est « tu n’as pas de raison de déranger quelqu’un si ce que tu fais n’a aucun impact sur son travail ». Si je suis le seul développeur sur un projet et que je repère un bug, je le corrige sans avertir qui que ce soit. Si nous sommes plusieurs, j’informe seulement ceux qui travaillent sur ce que je viens de modifier. Si c’est le client qui me rapporte le bug, je l’en informe aussi. Si c’est un autre collaborateur qui a été contacté par le client, j’informe les deux. Ça évite de spammer tout le monde, et comme toutes les actions sont archivées (cf. point précédent), si quelqu’un qui n’était pas concerné au moment de l’action l’est plus tard, il pourra retrouver tout ça dans l’historique.
Lorsque le Bus Factor passe au moins à 2, tout le reste devient vraiment plus simple ! Il ne reste plus qu’à préparer les sorties longtemps à l’avance et à prévoir un plan de secours : si je ne peux pas traverser les Pyrénées cet été ce n’est pas grave, je traverserai les Vosges en raquettes cet hiver 🙂
Mes amis (dont mon associé et quelques collègues développeurs) sont toujours là pour s’occuper des urgences en mon absence, mais dans l’ensemble, j’ai la chance d’avoir des clients plutôt compréhensifs et le cas ne s’est finalement présenté qu’une seule seule fois 🙂
Chers lecteurs, si vous n’avez pas cliqué sur les liens placés par Poupi sur les mots « Bus Factor » et « KISS », il faudra apprendre à vivre avec 😉
Question suivante !
Tu nous as bien fait marrer avec ton tweet sur WordPress. 🙂
– Si t'es expert WordPress, pourquoi ton site tourne pas sous WordPress ?
– Parce que moi j'ai vu la gueule du core.— Ghislain Phu (@poupi) February 1, 2017
Où situes-tu le leader des CMS dans ton métier de développeur ?
C’est un outil qui plaît beaucoup, notamment pour sa zone d’administration qui est très simple à prendre en main. En mettant de côté les problématiques inhérentes au budget, je pense que c’est la principale raison pour laquelle mes clients me réclament majoritairement du WordPress : même sans y connaître quoi que ce soit, c’est très simple à gérer au quotidien.
Je crois que ce qu’ils aiment, c’est que WordPress leur permet de retrouver une autonomie dont ils ne disposaient pas sur d’autres CMS (voire même sur des outils développés sur-mesure).
Une nuit, j’ai vu passer un tweet d’un petit gars (qui est depuis devenu mon associé) qui cherchait quelqu’un pour migrer sur WordPress le site Web de son association. Un truc un peu moche et développé un peu salement sur CodeIgniter.
Je n’avais jamais entendu parler de WordPress, mais ça me semblait amusant, et comme j’avais besoin de projets concrets pour mettre en pratique ce que j’avais appris durant mon temps libre, j’ai décidé d’accepter.
J’étais tellement content d’avoir trouvé un nouveau jouet sur lequel me faire les dents qu’après 48 heures sans dormir (dont au moins 10 à essayer de comprendre ce qu’était un hook 😀 ), le site était opérationnel… sur WordPress 2.8 !
Qu’on se comprenne : j’adore WordPress ! C’est un projet fabuleux, et s’il a su se hisser en première place des CMS les plus utilisés, c’est parce qu’il dispose d’un nombre incroyable de qualités ainsi que d’une communauté réellement formidable. Et c’est justement parce que j’aime WordPress que je veux le voir évoluer dans le bon sens et ce qui va suivre risque d’être très critique.
Posons les choses : le code du Core est ignoble. Si l’un de mes développeurs juniors m’apportait du code de cette qualité, je le copierais sur clé USB pour avoir quelque chose à lui jeter au visage !
Pour une raison que j’ignore, il semble y avoir depuis plusieurs années une peur panique au sein des différentes équipes décisionnelles à l’idée de briser la rétro-compatibilité.
Il y a un exemple que j’aime bien parce qu’il me semble particulièrement symptomatique. C’est celui de myhacks.
“my-hacks.php” était un fichier qui à une époque très lointaine où les thèmes et les plugins n’existaient pas encore, permettait aux utilisateurs de bricoler le fonctionnement de WordPress à la manière d’un fichier functions.php. Avec l’apparition des thèmes et des plugins, myhacks a finalement été déprécié en 2005 dans la version 1.5 !
En novembre 2016, soit plus de 11 ans après, toutes les références à myhacks ont été supprimées du Core afin de s’en débarrasser définitivement… pendant deux jours ! Car oui, deux jours plus tard, le commit a été annulé pour la raison suivante :
Breaking sites isn’t something that should be encouraged. Even with 10 years of deprecation notices.
La rétrocompatibilité est une bonne chose, mais il faudra un jour ou l’autre s’en défaire et accepter de la briser partiellement pour aller de l’avant.
Il n’est pas normal qu’une recherche du mot-clé @deprecated dans les sources renvoie, aujourd’hui encore, des numéros de version datant de la branche 1 (2005). Il n’est pas non plus normal, en 2017, d’émuler des fonctions de PHP pour que WordPress puisse continuer d’être installé sur des versions de PHP bourrées de failles de sécurité puisqu’elles ne sont plus supportées depuis plus de 6 ans (5.2).
On ne pourra pas indéfiniment se traîner les casseroles du passé !
Ce que j’aimerais, c’est qu’on finisse un jour par prendre le temps de nettoyer le Core. Qu’on se dise « voilà, prenons le temps d’une version, virons le vieux code pourri et fermons les bugs qui traînent depuis dix ans ! ».
C’est beaucoup moins vendeur que l’API REST, le Customizer ou les emojis, mais je pense que les développeurs Core seraient heureux de repartir sur une base saine. Quant aux développeurs de plugins, ils apprécieraient beaucoup de ne plus perdre des heures à contourner des bugs connus, rapportés, et patchés (mais pas intégrés au core) depuis plus de dix ans 😉
À ta connaissance, les lead developers de WordPress ont-ils communiqué sur la volonté de nettoyer le cœur du CMS prochainement ? Ou est-ce qu’aux dernières nouvelles, ils continuaient de clamer, comme pour my-hacks.php, qu’il ne fallait pas casser les sites, même avec du code ayant plus de 10 ans ?
En faisant quelques recherches, je suis retombé sur le ticket #37827 qui m’a fait hurler de rire (mais ça doit être une sorte de mécanisme de défense pour ne pas fondre en larmes 😀 ) !
Explications : quelqu’un arrive avec une bonne idée et propose d’isoler certaines portions de code dans de nouveaux fichiers pour faire le ménage et préparer l’avenir. Alors les fichiers sont créés, le code est déplacé, et tout se passe bien jusqu’à ce qu’un Lead arrive et fasse remarquer que si un développeur de plugin a codé son truc n’importe comment, les changements apportés peuvent casser des choses. Alors on fait marche-arrière, on restaure des fichiers qui ne servent plus à rien, et on leur ajoute un avertissement indiquant que leur utilisation est dépréciée (un peu comme /wp-includes/registration-functions.php qui traîne là depuis 10 ans).
Je comprends l’idée sous-jacente, et je n’y suis pas totalement opposé. Mais quand 60% des sites WordPress continuent de tourner sur des versions de PHP obsolètes, on ne peut que constater que la stratégie qui consiste à supplier avec insistance les utilisateurs d’upgrader ne fonctionne pas.
Je pense que le rôle de l’équipe WordPress est de faire évoluer le CMS. Pas de réparer les erreurs des hébergeurs qui ne sont pas capables de faire un apt-get upgrade en 6 ans. Et pas non plus de réparer les erreurs des développeurs de plugins qui ont trop la flemme pour mettre à jour leur code une fois en 10 ans. Je pense que quelque part entre « la rétrocompatibilité à tout prix ! » et « fonçons tête baissée ! », il doit y avoir un juste milieu qui n’a malheureusement pas encore été trouvé.
En fin d’article, fais-moi penser à te remercier pour le partage de connaissance (de ouf) que tu fais ici.
Pour revenir à une note plus positive, peux-tu nous raconter une réalisation WordPress qui t’a laissé un bon souvenir ?
Il s’agit d’une radio parisienne qui m’a contacté en 2011 afin de refaire leur site qui, à l’époque, tournait sur une solution sur-mesure développée en Ruby. Le code était très compliqué, la gestion au quotidien également, et après avoir découvert l’existence de WordPress, ils tenaient absolument à ce que leur nouveau site Web l’utilise.
À l’époque, il devait s’agir de la version 3.2 de WordPress (pas sûr).
La deadline était très courte, tout était à refaire et WordPress n’était pas du tout adapté à ce type de projet. Mais je l’ai pris comme un défi, et après avoir vécu les trois mois les plus intenses de toute ma vie, le projet a finalement pu être mis en production une semaine avant la deadline, à 3 heures du matin le jour de noël !
On m’a demandé l’an dernier de développer une nouvelle version de ce site, et ce que j’ai trouvé particulièrement intéressant, c’est de constater à quel point WordPress avait pu évoluer en seulement quelques années. Alors que sur la première version, le CMS ne me servait que « d’interface d’administration par dessus du code maison », la nouvelle version avait pu, elle, être 100% intégrée à WordPress grâce à toutes les nouveautés qui étaient apparues entre temps (Custom Post Types, Custom Taxonomies, etc.).
Ce site de radio parisienne était développé en version 3.2 et tu as ensuite fait une refonte complète avec un WordPress plus moderne. Mais, est-ce qu’on doit comprendre que ce site n’a pas mis à jour le cœur du CMS pendant plusieurs années ? Comment cela se passait-il avec cet ancien développement ? Avez-vous rencontré des problèmes particuliers pour maintenir cela en production, par exemple, ajouter des correctifs pour suivre les mises à jour de PHP ou à l’inverse, conserver une ancienne version du langage, genre PHP 4 ?
Pour ce qui est de la partie serveur, tout s’est étrangement bien passé ! Comme la version de PHP présente dans les dépôts Debian me semblait déjà un peu dépassée à l’époque, le serveur a vécu la plus grande partie de sa vie sur la branche active (grâce à Dotdeb). Je ne sais pas si des efforts ont dû être faits du côté de WordPress en ce qui concerne la compatibilité ascendante (PHP7 a demandé quelques efforts, mais je ne crois pas que les versions 5.3 à 5.6 aient posé beaucoup de problèmes), mais je n’ai en tout cas rien senti passer de négatif de ce côté.
Du côté de WordPress, la montée en version a été un tout petit peu plus délicate…
Jusqu’à la 3.9, tout s’est très bien passé : à part quelques petits bugs d’affichage dans le Dashboard et une poignée d’avertissements lancés par mes plugins (corrigés au fil des versions), nous n’avons pas eu d’autres casses à signaler. Et puis, la 4.0 est arrivée ! Version majeure : beaucoup de stress. Alors, comme je manquais de temps, j’ai voulu faire les choses bien et attendre quelques jours pour pouvoir tenter l’upgrade dans mon coin avant de l’envoyer en production…
Perdu !
En me réveillant un matin, je découvre une dizaine d’appels en absence sur mon téléphone. Panique totale : la radio vient de lancer sa campagne annuelle de dons, mais la moitié des fonctionnalités du site sont HS ! Il n’est d’ailleurs même plus possible d’avertir les auditeurs puisque les éditeurs de texte présents dans le Dashboard ne fonctionnent plus non plus… Grosse angoisse.
Tout le monde est stressé, et même si je suis seul et à moitié endormi devant mon ordinateur, j’arrive à sentir le regard pesant de toute l’équipe qui prie en attendant que je trouve l’origine de la panne. Rien d’intéressant dans les logs, le serveur semble OK. Je pense immédiatement à un piratage, et coupe le réseau pour éviter une potentielle fuite de données. Je lance une comparaison entre les fichiers du serveur et ceux du backup de la veille : miracle, j’ai trouvé !
Intriguée par un message bizarre dans le Dashboard, l’une des administratrices du site aurait « sans faire exprès » lancé la mise à jour de WordPress (avant de se faire toute petite pour éviter d’être grillée et de se faire engueuler 😀 ). La mise à jour avait révélé un petit bug dans mon plugin principal qui avait tenté d’afficher du texte à l’activation et s’était fait désactiver par WordPress, désactivant ainsi en cascade tous les autres plugins dépendants de ce dernier (it’s not a bug, it’s a feature!). Plus de peur que de mal !
L’upgrade en 4.1 n’a pas posé de soucis particuliers, mais le term splitting de la 4.2 n’a pas très bien fonctionné chez nous et j’ai été obligé d’aller dépatouiller tout ça manuellement dans la base de données. Enfin, nous avons migré jusqu’à la 4.3 sur laquelle la première version du site a fini tranquillement ses jours en recevant simplement les patchs de sécurité.
Si je devais résumer, je dirais que dans l’ensemble, tout s’est relativement bien passé. Nous avons eu pas mal de petits problèmes à résoudre au fil des versions, et le code original a pris un sacré coup de vieux (j’en reviens toujours pas d’avoir écrit des trucs aussi moches !), mais ça aurait pu tellement plus mal tourner que je m’estime chanceux 🙂
Je ne sais pas si ça vient de mon code ou WordPress, mais la plupart des patchs que j’ai été obligé de développer en cinq ans l’ont été sur la partie JavaScript, qui ne représentait pourtant qu’une partie infime du projet.
Je suis dégoûté de lire ton anecdote sur la secrétaire qui a pété le WordPress en lançant agressivement une mise à jour majeure via le dashboard. 😀
Ça m’est arrivé quelques fois avec mes clients !
Cela m’a même conduit à atteindre le point de non retour avec l’un d’eux, parce qu’il ne voulait pas capter que les mises à jour ne peuvent pas toujours se faire à l’arrache. Même si souvent (love WP) cela se passe bien.
Le mec (pas du métier) faisait ses petites maintenances tranquilles, clairement dans mon dos :
- sans faire de backup,
- update des plugins à l’aveugle, sur le site en prod.,
- sans vérifier que les dernières versions de ses extensions étaient bien compatibles avec la dernière version de WordPress
- et bien sûr, sans effectuer les tests d’usage des différentes zones du site, à postériori, histoire de s’assurer qu’on n’a rien cassé et pour éviter de se rendre compte qu’une section du site est en panne depuis +3 mois.
Toi, en tant que gars du métier, en plus de faire valider au client toutes les interventions que tu termines, tu vas prendre toutes les précautions citées ci-dessus. Justement parce que tu connais ton job, et les risques potentiels.
Le client qui ne connait que son tableau de bord WordPress, il y va gaiment sans s’inquiéter de casser quoi que ce soit, parce que « la dernière fois, ça a fonctionné du premier coup ». Ni vu ni connu, j’t’embrouille.
Au début, c’est mignon de voir le client te promettre qu’il ne recommencera plus (sic) après t’avoir appelé en urgence pour réparer 🙂 , une fois ou deux.
Par contre, lorsqu’on t’a fait le coup 10 fois en 3 ans, tu commences à te demander si on t’écoute !? Quel crédit on donne à tes précos ?
Et lorsqu’on finit par carrément t’accuser d’être responsable de fonctionnalités cassées du jour au lendemain, c’est le coup de grâce ! Comme si on avait que ça à faire, venir détériorer une installation de WordPress qu’on a peiné à mettre en place. Le tout, en douce, alors qu’on ne t’a plus commandé d’interventions depuis des mois.
« Tu as fait les mises à jour de tes plugins n’importe comment et sans m’avertir en plus. C’est toi qui as pété ton site mec ! Pas moi. ».
Tout le monde dira qu’il ne faut pas donner d’accès super-admin au client, mais lorsqu’il les demande, t’es bien obligé. Non ?
Et pourtant, ce n’est pas faute de faire de la prévention. Cependant, il faut bien avouer que le petit encadré qui t’invite à mettre à jour WP est assez sexy. D’ailleurs, souvent, les mises à jour se passent très/trop bien.
Allez, je la ferme. On va essayer de terminer ton interview 😉
Dis-nous. Si tu n’avais qu’un conseil à donner aux débutants WordPress qui souhaitent réellement se former efficacement, ça serait lequel ?
Le Codex est un bon point d’entrée et un très bon aide-mémoire, mais rien ne vaudra jamais un coup d’œil sur les sources ! Si vous en avez l’occasion, n’hésitez pas à supprimer le Codex de vos marque-pages et à le remplacer par la Code Reference qui offre l’avantage de vous montrer les sources.
Abonnez-vous au flux RSS du blog des développeurs pour suivre l’évolution de WordPress, et jetez régulièrement un œil à l’historique des modifications pour en découvrir davantage sur le fonctionnement interne du CMS. C’est très formateur 😉
Cette interview touche à sa fin. Où les lecteurs peuvent-ils te suivre par la suite ?
Tu sais quoi, « WordPress » c’est génial, mais à force de l’utiliser, le développement « from scratch » (celui qui nous faisait rêver lorsqu’on était ados), ben ça manque un peu… 🙂 même si c’est fucking long à réaliser tout seul !
Un dernier mot ?
J’encourage d’ailleurs chaque lecteur à te poser leurs questions ci-dessous comme tu nous l’as gentiment proposé en début d’interview.
Cher lecteur de Mister WP (oui toi, là, derrière l’écran),
Si vous êtes arrivé jusque là, laissez un mot en commentaires ci-dessous.
Je vois mes stats. Vous êtes nombreux à lire les interviews d’experts, mais vous êtes assez timides en commentaires. Comme vous l’avez lu, Poupi a vraiment pris le temps de nous faire partager un retour d’expérience rare !
Ça serait cool de lui dire bonjour. 🙂
Si vous avez des questions, c’est encore mieux.
Merci, vous êtes choux 😉
Salut Ghislain,
Ton interview est très instructive ! Grâce à toi j’ai appris le principe KISS et le Bus Factor que tout le monde devrait connaître, c’est vraiment intéressant.
À 26 ans être déjà formateur auprès de jeunes développeurs, c’est juste énorme ! Moi qui ai à peine un an de plus que toi suis largement à la traîne :-p
Tu dis que tu es freelance, que tu travailles souvent avec le même groupe de collaborateurs, mais que tu as tes propres clients avec qui le courant passe bien. Je vois que ton blog est assez « dépouillé » 🙂 , pour l’instant, …. Tu n’as pas de vitrine pour ton activité de freelance pour trouver de nouveaux clients ? Tu fonctionnes uniquement grâce au bouche-à-oreille et/ou au réseautage ?
Salut, et merci d’avoir pris le temps de laisser un commentaire 😉
Effectivement, je n’ai pas du tout abordé la question de la prospection qui est la partie la plus problématique de mon activité de freelance.
Sur certains aspects, je suis assez proche du cliché du développeur, et même si je ne recompile pas mon kernel tous les soirs en engloutissant de la pizza, je suis plutôt introverti et pas vraiment à l’aise lorsqu’il s’agit de nouer de nouvelles relations. La conséquence, c’est que je suis réellement très nul dès qu’il est question de me vendre, ce qui est particulièrement handicapant puisque c’est la seule chose qui me permet de mettre de la nourriture sur la table.
La chance que j’ai eu, c’est de rencontrer les bonnes personnes aux bons moments. Je pense notamment à mon associé, qui lui a un profil bien plus commercial que technique, ce qui lui permet de vendre mes compétences cent fois mieux que je n’aurais pu imaginer le faire moi-même. Il y a aussi mes amis, rencontrés pour la plupart à la fac ou au lycée, et qui n’hésitent pas à faire tourner le travail lorsqu’ils n’ont pas le temps ou les compétences pour le réaliser. Et puis enfin, il y a tous mes clients, qui lorsqu’ils sont contents n’hésitent jamais à me recommander auprès de leur entourage, ou à revenir me voir pour d’autres projets.
De fil en aiguille, nous avons réussi comme ça à nous constituer un petit réseau de confiance, qui même s’il ne me permet pas de boucler mon carnet de commandes 365 jours par an, me permet au moins de vivre correctement de mon activité (ce qui est plutôt sympa quand tu fais un métier que tu aimes ;)). Si on devait parler chiffres, je dirais qu’en gros, un tiers des projets que je réalise arrivent sur mon bureau grâce à mon associé, qu’un autre tiers m’est envoyé par mes connaissances/amis/clients, et que le dernier tiers provient de recherches actives (annonces sur Twitter, relances auprès d’anciens clients, etc.).
Pour ce qui est du fait de ne pas avoir de vitrine, c’est assez récent (et lié à une mauvaise expérience). Jusqu’à il y a deux ou trois ans, j’avais comme tout le monde un petit portfolio répertoriant mes diverses réalisations et expliquant les enjeux, les défis techniques, … Et tout allait très bien, jusqu’à ce que je me mette à travailler avec un nouveau client, expert en SEO.
La collaboration se passait très bien, on avait monté ensemble une douzaine de petits sites en un an et le client semblait vraiment ravi. Et puis un jour, j’ai eu le malheur de profiter de quelques jours de congés pour mettre à jour mon portfolio. Shitstorm : mon associé reçoit des appels du client en furie et se fait quasiment insulter.
Sur le coup, j’ai mis un petit moment à comprendre ma boulette, mais ça m’a vacciné et je n’ai pas voulu retenter l’expérience 😉 Depuis, je considère tous les projets comme confidentiels par défaut (c’est d’ailleurs la raison pour laquelle il n’y a aucun lien vers mes réalisations dans l’interview), et je me dis que si j’ai un jour à les justifier (en entretien d’embauche par exemple), je dispose de toute façon d’une copie des sources et que mon nom se trouve toujours dans les en-têtes de pas mal de fichiers.
En espérant avoir pu répondre à toutes tes questions (dans un pavé encore une fois beaucoup trop long :D) !
Ah ah, t’inquiètes ! Ce n’est jamais trop long quand c’est intéressant à ce point 😀
C’est vrai que je n’ai jamais compris pourquoi les techniciens chevronnés comme toi n’arrivent pas à se vendre. Pour moi qui suis plutôt du côté commercial, quand je vous lis, je me dis : « Waw, je n’arriverai jamais à parler technique de cette manière pour faire rêver les clients » (Soyez plus sûr de vous, les devs ! Vous êtes des bêtes pourquoi rester caché dans vos antres ?)… Et pourtant, force est de constater que les clients sont moins touchés par ce genre de discours… Je n’arrive pas à comprendre cela !
Côté références, chez Kim Communication, nous ne les affichons pas publiquement non plus. Notre volonté est d’éviter ce genre de problème qui peut arriver à n’importe qui.
Par contre, ton client aurait quand même pu demander gentiment que tu retires les mentions que tu faisais à ses projets… C’est toi qui as « monté » son business, quand même ! Enfin, c’est vrai que dans la plupart des cas, lorsqu’un client veut exprimer un mécontentement, il prend rarement des pincettes !
En fait, c’est quelque chose qui marche dans les deux sens : je suis toujours super impressionné (et admiratif) quand je vois ce dont sont capables les commerciaux ! 🙂
Notre problème, c’est peut-être qu’on a justement trop tendance à se focaliser sur la technique, en oubliant au passage de prendre en compte ce qui fait envie au client. D’ailleurs, la migration vers WordPress 4.2 dont je parlais dans l’interview est un super exemple !
Pour cette mise à jour, j’ai passé des heures à m’arracher les cheveux pour détecter et corriger les manqués du term splitting. Et quand j’ai enfin réussi, j’étais très heureux et méga fier de présenter ça au client. Pourtant, le seul retour que j’ai eu a été « C’est génial, maintenant quand on met un lien Tumblr ça l’intègre dans l’article ! ». J’étais dégoûté ! 😀
Quand on a du mal à faire signer un devis, on a une blague entre nous qui est « Offre-lui le CDN mondial ! ».
Un de nos clients a totalement ruiné les performances de son site en y ajoutant des images de plusieurs mégaoctets. Je voulais absolument lui vendre une presta d’optimisation pour réparer ça, mais dernière sa connexion en fibre optique, le site continuait de ronronner et il n’en voyait vraiment pas l’intérêt. Mon associé a tenté sa chance, parlé de performances avec lui, et quand il a évoqué le CDN et vu qu’il avait réussi à toucher un point sensible, lui a inclus dans un « pack ».
Ça nous a pris cinq minutes à installer et coûté le prix d’un café tous les mois, mais grâce à ça, il a réussi à vendre au client une prestation dont il avait besoin (mais pas envie) en lui offrant quelque chose qui lui faisait très envie (mais dont il n’avait absolument pas besoin). C’est tellement éloigné de mon schéma de pensée que même en y passant des semaines, je n’aurais jamais pu avoir cette idée ! 😀
Je plussoie. Nous les techniciens, on n’est pas doués pour faire rêver les gens. 😀
Mélanie, en vulgarisant un peu notre discours, s’en sort bien mieux que moi lorsqu’il s’agit d’expliquer quelque chose à un client.
Par exemple, je me sentirais bien incapable de leur expliquer ce qu’est un CDN !
Je la laisse faire depuis ~3 ans et je m’en porte très bien 🙂
Bonjour Ghislain,
merci pour ce *gros* partage d’expérience et le complément particulièrement intéressant que tu donnes dans ta réponse à @melaniekimcom.
Même si je ne suis pas _développeur_ à la base, je partage totalement ton opinion sur la frilosité des devs WP à sauter le pas de l’abandon de la rétro-compatibilité totale.
Rompre ce parti-pris allègerait considérablement le code tout en permettant son optimisation.
Peut-être que la pression de la communauté pourra faire évoluer les choses dans le bon sens…
Deuxième point sur lequel j’abonde totalement, c’est le fait de savoir se rendre _remplaçable_.
J’insiste toujours sur ce point auprès de mes clients en les incitant à être le plus autonomes possible et en leur transmettant la totalité des informations qui leur permettra de reprendre la main ou de confier leur bébé à un autre prestataire si nécessaire.
Rien de pire pour une boîte que de se retrouver avec un site ingérable parce que le prestataire, seul maître après dieu, a mis la clé sous la porte ou est en congé maladie, voire scénario plus tragique encore !
À bientôt sur ton blog dans une quinzaine d’années ! 😉
Salut et merci pour ton commentaire ! 🙂
> Rien de pire pour une boîte que de se retrouver avec un site ingérable parce que le prestataire, seul maître après dieu, a mis la clé sous la porte ou est en congé maladie
Je te rejoins entièrement là-dessus ! Je ne sais pas si tu as déjà été obligé de hacker le site d’un nouveau client pour récupérer les accès au serveur parce que l’ancien prestataire n’a pas pris la peine de les lui transmettre, mais ce n’est vraiment pas quelque chose d’amusant à faire
C’est cool que tu sois dans le même état d’esprit ! Avant de mettre tout ça en place, je n’avais jamais vraiment l’esprit tranquille, et j’étais terrifié à l’idée de tomber un jour sur un problème que je serai incapable de résoudre (et qui ne pourrait pas être résolu puisque j’étais le seul à avoir toutes les cartes en main). Est-ce que c’est quelque chose qui te parle ?
Du coup, j’en profite également pour te demander si tu aurais quelques astuces ou conseils par rapport à ça ? Des petites choses ou des règles que tu aurais mis en place pour t’assurer de toujours rester « remplaçable » ?
À bientôt ! 🙂
> Du coup, j’en profite également pour te demander si aurais quelques astuces ou conseils par rapport à ça ? Des petites choses ou des règles que tu aurais mis en place pour t’assurer de toujours rester « remplaçable » ?
En fait, outre le fait de commenter le plus possible le code des mu-plugins que j’installe et les modules Divi constituant le thème, j’essaie d’appliquer ce que Chris Lema nomme « Tell the story »…
En plus d’un tableau Excel contenant tous les login et mots de passe que j’ai créés en son nom et ceux qu’il m’a fournis afin de gérer son site, je mets par écrit toutes les étapes de mise en route du projet et je transmets cette « Story » au client pour lui rappeler tout ce par quoi nous sommes passés pour arriver au résultat livré.
Cela me permet de lui rappeler ce qu’il a toujours tendance à oublier un peu trop vite lorsqu’il doit régler le solde de ma prestation. 😉
Et par la même occasion c’est une bonne base pour permettre à un éventuel autre prestataire de prendre la suite.
Oh cette Interview !!! Joli parcours et belles expériences 🙂
Merci à tous les 2 pour cet échange passionnant !
Hey, article top.
Je suis un néophyte avec un minimum d’expérience pour saisir quelques infos glané dans votre interview.
Toutefois, je ne comprends pas tout. Il y’a tellement de métiers qui gravitent au tour du web qu’on se retrouve vite largué dans tout ça. Par exemple, ici, je commence à peine à comprendre ce qu’est un développeur (et encore 😉 ).
Ce qui serait génialissime, ça serait de faire une présentation des postes les plus importants pour que tous les petits padawans comme moi puissent s’y retrouver dans ce monde magique du web.
Je sais que la période de noël est déjà passé mais ne sait-on jamais, une âme charitable pourrait s’atteler à écrire cette article qui serait un cadeau oh combien apprécié par les petits bleus de wordpress.
site web (sans prétention) de notre association sportive : -www.rdv17.medbt.fr