En 2018, j’ai commencé ma carrière chez Kinsta en tant qu’ingénieur support. À l’époque, nous étions une petite entreprise d’une cinquantaine de personnes seulement. Lorsque j’ai rejoint l’équipe et commencé à aider les clients, je me souviens avoir été très impressionné par le niveau détaillé de la documentation interne dont nous disposions chez Kinsta. Aujourd’hui encore, nous conservons le même niveau de documentation pour aider nos clients.

Documentation interne

Bien que la documentation interne soit excellente, il n’y avait pas beaucoup d’outils ou d’automatismes en place. Ce n’est qu’après avoir installé Redis pour la dixième fois ou configuré Ioncube que j’ai décidé de prendre les choses en main.

Vous voyez, avant cela, tout était fait manuellement. Nous allions sur Confluence et cherchions les étapes spécifiques et les options de configuration qui devaient être ajoutées/modifiées, et il y avait beaucoup de copier/coller de blocs de code, de vérification de données à des endroits spécifiques, et de mise à jour à d’autres endroits. Les mises à jour prenaient plus de temps et les risques d’erreur étaient plus nombreux, car l’omission d’une étape du processus pouvait entraîner des problèmes.

J’ai commencé à écrire des scripts Bash pour chaque tâche dans le cadre d’un projet visant à m’aider à améliorer mon propre travail et à me permettre d’effectuer ces tâches méthodiques de manière répétée et sans erreur. Au fil du temps, d’autres membres de l’équipe ont vu ce que je faisais et ont commencé à utiliser les scripts. Ce qui prenait 20 minutes ne prenait plus que quelques secondes, tout en réduisant le risque d’erreur humaine.

Ce n’est que lorsque j’ai proposé à Tom Sepper, notre Chief Customer Officer et directeur du support de l’époque, de transformer ces scripts en un outil plus important qui serait accessible à tous, que les choses ont commencé à prendre forme.

L’outil Kinsta

J’ai entrepris de réécrire les scripts que j’avais écrits en Bash, en les convertissant en PHP pour qu’ils soient plus polyvalents, et c’est ainsi que l’outil Kinsta a été créé. L’outil Kinsta est encore utilisé aujourd’hui par notre équipe de support et dispose d’une multitude d’automatisations pour des tâches telles que l’analyse de logiciels malveillants, l’installation d’extensions PHP ou la mise en place de Redis.

L’outil Kinsta reste un outil précieux pour notre équipe car il comble les lacunes là où les fonctionnalités n’existent pas dans le tableau de bord MyKinsta. Par exemple, une demande que nous recevons souvent de nos clients est de réinitialiser un site à l’état WordPress par défaut. Bien que vous puissiez le faire dans MyKinsta, cela nécessite de supprimer le site et de le recréer.

Afin de rendre ce processus plus facile pour les clients qui demandent de l’aide, j’ai ajouté une fonction à l’outil Kinsta qui utilise les commandes WP-CLI et MySQL pour purger la base de données, supprimer les fichiers et réinstaller la dernière version de WordPress d’une simple pression sur un bouton. L’opération prend au total moins de 5 secondes. Si nous devions répéter les étapes manuellement, cela pourrait prendre entre cinq et dix minutes, selon les circonstances.

L’extension Chrome

D’autres ont entrepris des implémentations similaires. Avant moi, Thoriq Firdaus, aujourd’hui membre de notre équipe de technologie marketing mais auparavant ingénieur de support, a développé une extension Chrome. Cette extension était utilisée en interne pour afficher les en-têtes d’un site web et détecter s’il était ou non hébergé chez Kinsta.

Jusqu’à récemment, l’extension de Thoriq était utilisée mais n’était pas maintenue. Nous avons récemment entrepris le processus d’écriture d’une nouvelle extension pour nous assurer que nous utilisions la dernière version du manifeste Chrome, en incluant le concept d’origine mais en ajoutant nos propres outils et fonctionnalités supplémentaires qui avaient du sens pour aider nos équipes en contact avec les clients à faire leur travail de manière plus efficace.

Un bon exemple est la façon dont l’extension obscurcit automatiquement les URL non fiables lorsque notre équipe saisi des réponses dans Intercom. Cela ajoute une couche de sécurité supplémentaire en garantissant que nous n’envoyons pas à quelqu’un un lien cliquable malveillant.

L’extension Chrome indique également d’un coup d’œil si le site est hébergé chez Kinsta ou non. Nos ingénieurs de support peuvent cliquer sur l’extension et voir rapidement tous les en-têtes pertinents que le site envoie, ce qui peut aider à localiser les problèmes d’un site web.

En outre, l’extension fournit un bloc-notes temporaire permettant aux ingénieurs du support de copier/coller des notes ou du code, qui persisteront tant que l’onglet restera ouvert. Cela rend le passage d’Intercom à MyKinsta beaucoup plus facile et plus productif.

Système de routage des discussions

Un autre outil interne sur lequel j’ai travaillé consistait à utiliser l’API d’Intercom pour créer notre propre système de routage de discussion. Intercom propose une approche « round-robin », et bien que nous l’ayons trouvée efficace, elle a souvent conduit certains ingénieurs du support à avoir beaucoup plus de conversations que d’autres, et la file d’attente est rapidement devenue déséquilibrée.

Pour remédier à cette situation, j’ai écrit un code de routage personnalisé en PHP qui s’interface directement avec l’API d’Intercom et les webhooks pour recevoir et répondre aux actions effectuées directement depuis Intercom. Nous avons ainsi pu stabiliser la manière dont les conversations sont attribuées aux ingénieurs de support.

Pour maintenir la rapidité et l’information de nos réponses de support, nous avons mis en œuvre notre propre logique de routage, qui joue un rôle crucial dans l’évaluation de la complexité ou du « poids » de chaque conversation.

Par exemple, une discussion sur le DNS est généralement considérée comme moins difficile qu’une discussion sur le proxy inverse. Par conséquent, la conversation sur le DNS se voit attribuer un poids inférieur à celui de la discussion sur le proxy inverse.

Notre logique de routage évalue la disponibilité des ingénieurs du support, calcule le poids cumulé des conversations en cours pour chaque ingénieur et attribue les nouvelles conversations entrantes à l’ingénieur dont le poids est le plus faible.

Aller de l’avant

Avant juillet 2022, nous avons commencé à réaliser à quel point ces types d’outils et de systèmes sont et resteront importants pour la réussite globale de nos équipes en contact avec la clientèle. En tant que principale personne travaillant sur ces outils, en plus de mes autres responsabilités, j’ai accumulé de la dette technique à chaque projet sur lequel j’ai travaillé.

Chaque système nécessitait des mises à jour et devait être entretenu. Cela continuait à nous prendre plus de temps que nous ne l’avions prévu. Pendant tout ce temps, j’occupais le poste de chef du support technique, puis de directeur du support technique, ce qui est mon rôle actuel.

Face à l’augmentation constante de la charge de travail et à la prise de conscience que nous continuerions à avoir besoin d’outils d’assistance à la clientèle, nous avons décidé qu’il était temps d’embaucher quelqu’un pour ce poste de manière permanente. Nous avons pu procéder à une promotion interne et trouver une personne possédant les connaissances et l’expérience nécessaires pour prendre la relève et non seulement remplir mes fonctions, pour ainsi dire, mais aussi disposer du temps nécessaire à la production d’outils de qualité.

Depuis l’arrivée de notre développeur d’outils interne, nous avons travaillé ensemble sur des projets qui nous ont permis d’améliorer le suivi des statistiques. Nous avons reconstruit l’extension Chrome et nous continuons à travailler à l’amélioration des outils existants.

Résumé

En 2018, nous étions encore une jeune entreprise, et quelque chose d’aussi petit qu’une idée pour ce qui est devenu l’outil Kinsta peut souvent conduire à des choses plus grandes et meilleures. Je pense que ce type de « mentalité de startup » peut être négligé comme un moyen pour les personnes en dehors du cycle de développement traditionnel de contribuer à leurs propres idées pour les gains d’efficacité et l’outillage.

L’efficacité et la simplification du travail ont été une de mes priorités au cours de mon mandat chez Kinsta, et je crois fermement que de nombreuses équipes peuvent bénéficier de leurs propres formes d’outillage et d’automatisation.

En partageant mon expérience sur la manière dont nous avons capitalisé sur ce point pour nos équipes en contact avec la clientèle, j’espère que vous pourrez vous aussi trouver des moyens d’améliorer l’efficacité, de réduire le risque d’erreurs et d’améliorer les performances professionnelles de votre équipe.

Jeff Paul Kinsta

Jeff Paul joined Kinsta in October of 2018. He's worked as a Support Engineer, Support Lead, Head of Support, and Director of Technical Support. Jeff is responsible for the overall direction of four customer-facing teams: Support, Migrations, Malware & Abuse, and Internal Support.