10 cours d'ingénierie dès 6 ans à Intercom
Publié: 2024-02-03Après plus de six années incroyables, à travers trois rôles, dans trois groupes de produits différents, je quitte Intercom pour une toute nouvelle opportunité.
Comme nous l'avons abondamment écrit dans le passé, Intercom a une culture d'ingénierie et de produit unique. Voici donc ma tentative de réfléchir sur cette culture et de résumer les principales leçons de mon séjour ici. J'espère que ces informations s'avéreront utiles pour d'autres ingénieurs et responsables de l'ingénierie.
Et si vous souhaitez travailler sur des problèmes difficiles avec des personnes formidables, n'oubliez pas de consulter la page Carrières d'Intercom pour voir s'il y a un rôle pour vous – vous ne le regretterez pas.
1. Parier uniquement sur l’avenir, c’est comme vendre à découvert le présent et cela comporte un coût d’opportunité
Intercom est une entreprise extrêmement innovante et nos hauts dirigeants sont excellents pour avoir une excellente idée des tendances qui feront des vagues sur le marché. Mais parier uniquement sur cela, construire uniquement pour l’avenir, revient à court-circuiter le présent et comporte donc un coût d’opportunité. Chez Intercom, nous avons peut-être eu ce problème avec les e-mails et le téléphone : nous avons cru pendant des années que ces canaux étaient en train de mourir, pour ensuite nous rendre compte d'année en année qu'ils ne diminuaient pas du tout. Je trouve que c’est un modèle mental utile lorsque vous réfléchissez aux tendances futures : seriez-vous à court du présent et seriez-vous prêt à payer le prix fort si vous continuez à vous tromper ?
2. Chaque développeur doit avoir l'IA dans sa boîte à outils
Lorsque nous avons travaillé sur Fin, notre équipe d'IA était fondamentale pour le faire fonctionner, nous ne serions pas en mesure de le faire en tant qu'équipe produit. Cependant, au fil du temps, de plus en plus d’excellentes fonctionnalités ont été intégrées à ce système directement par nos équipes produits. La poussée initiale peut nécessiter une spécialisation, mais il est important d'exposer l'IA à votre organisation dès que possible. Un autre ingénieur m'a partagé cette anecdote : en 2008, les entreprises avaient des équipes entières qui faisaient du « design mobile ». Quelques années plus tard seulement, cela faisait partie du travail de chacun.
3. Les monolithes peuvent très bien évoluer, offrir une solide sécurité de déploiement et un effet de levier élevé sur l'expérience et l'observabilité des développeurs.
Je continue d'être étonné de voir à quel point le monolithe Intercom Rails a évolué au fil des ans. Des décisions d'ingénierie exceptionnelles, un maintien de la simplicité, l'énorme levier dont dispose notre seule équipe d'expérience de développement et le respect de technologies cloud éprouvées nous ont très bien aidés à gérer la croissance.
« Monolith est quelque chose qui nous permet d'expédier très rapidement, très souvent »
Monolith est également quelque chose qui maintient notre capacité à expédier très rapidement, très souvent (en transpirant des choses comme des restaurations rapides ou une CI rapide). En comparaison, nous avons trouvé difficile de travailler avec quelques services que nous possédions : les équipes devaient être ralenties par la maintenance de leurs propres dépendances, pipelines de déploiement ou mises à jour de l'infrastructure. Je n'ai jamais travaillé dans une architecture de microservices professionnelle à grande échelle, mais j'ai hâte d'en savoir plus sur les compromis à faire.
4. La fréquence à laquelle vous expédiez est essentielle. C'est ton battement de coeur
Vous ne l’expédiez peut-être pas aux clients, mais il existe toujours un moyen de l’expédier en production en toute sécurité. Si vous ne le trouvez pas, continuez à chercher. Cela renforce les muscles pour accélérer encore plus lorsque cela est nécessaire et vous empêche de perdre culturellement votre impatience. Montrez les progrès, idéalement lors d’une démonstration régulière à l’échelle de l’entreprise.
5. Créez de nombreux modèles de système et modèles mentaux et appliquez différentes couches d'abstraction
Regarder le même problème sous différents angles élargit vraiment vos horizons et renforce l’alignement. Chez Intercom, j'ai appris que la meilleure réunion commence lorsque quelqu'un prend le marqueur. Les modèles de système, créés sur place, adaptés, évolués au fur et à mesure que vous parlez – tout cela contribue réellement à affiner votre compréhension du problème, de ses complexités et de ses dépendances.
« Les modèles mentaux partagés sont très utiles pour avancer vite »
Notez-les, montrez-les lors de votre prochaine conversation, demandez le modèle mental de quelqu'un d'autre. Faire ce travail avec vos partenaires et parties prenantes accélère la rapidité avec laquelle vous collaborez et supprime les désalignements. Les modèles mentaux partagés sont très utiles pour avancer rapidement.
6. Possédez et connaissez vos données, sans excuses
Dans le passé, j'avais de nombreuses excuses pour comprendre les données produit sans l'aide d'un analyste de données pour élaborer des requêtes et des techniques d'analyse. Je n'ai aucune pitié pour moi depuis ChatGPT. La qualité et la confiance avec lesquelles je peux naviguer dans mon espace produit sans un analyste dédié ont considérablement augmenté et je m'attends à ce que tout le monde, au moins légèrement technique, puisse le faire maintenant.
7. La gestion des données évolue, est douloureuse et il est difficile de trouver une solution miracle
Nous possédons une plateforme de données relativement flexible et largement utilisée. C’est le domaine de produit qui a reçu le plus grand nombre de retours. Mais avoir un impact dans cet espace a été très difficile. Le marché évolue rapidement, avec de nouvelles approches comme l'ETL, les ETL inversés, les intégrations ponctuelles et les CDP. Votre clientèle sera répartie sur plusieurs « meilleures façons de gérer vos données ».
« Pour constater des changements et des améliorations significatifs dans la gestion des données, tout est question de stratégie et de cohérence »
Et c'est pour cette raison qu'il n'y a jamais eu un seul problème – il y a toujours eu de longues listes de problèmes, similaires sous certaines formes mais différents. Pour constater des changements et des améliorations significatifs dans la gestion des données, tout est question de stratégie et de cohérence. De petits investissements ici et là fonctionnent rarement.
8. Les intégrations de données deviennent de plus en plus complexes à mesure que vous les approfondissez
J'ai appris à ne jamais sous-estimer les intégrations inter-systèmes. De loin, cela semble toujours relativement simple – si ceci est cela, synchronisez les objets du système A avec les mêmes objets du système B. Mais plus vous vous en rapprochez, plus vous découvrez de différences. Petites nuances, limites de débit API, conditions de concurrence, tentatives et manque d'idempotence, et bien d'autres angles. Le diable se cache toujours dans les détails, et les tâches que vos clients tentent de réaliser avec ces intégrations sont souvent similaires mais fondamentalement uniques. Les intégrations sont extrêmement complexes à mesure que vous avancez et ne les sous-estimez pas.
9. Construire des intégrations faciles à adopter élimine les frictions, mais réduit le TAM.
Les intégrations les plus faciles à utiliser sont des couches d'abstractions au-dessus des fonctionnalités de base (comme les API ou les blocs iPaaS). Ils suppriment beaucoup de frictions et fonctionnent généralement directement. Ce que j'ai réalisé au fil des années, c'est qu'il est très difficile de créer des intégrations largement adoptables, car chaque entreprise a des besoins, une configuration et son propre désordre informatique interne à gérer.
La création de ces abstractions facilite leur adoption, mais réduit considérablement le TAM, ce qui peut aboutir à un nombre inférieur de clients qui les utilisent par rapport à une version plus complexe mais plus puissante.
10. L'IA changera fondamentalement la façon dont nous construisons des intégrations
Cependant, je pense que cela se déroulera différemment pour les intégrations déterministes à grand volume et les intégrations dynamiques non prévisibles. Les expériences copilotes accéléreront considérablement les utilisateurs d'outils iPaaS comme Zapier ou Workato tout en créant une automatisation des processus répétables, prévisibles et à grand volume.
"Les agents d'IA supprimeront le besoin de créer des intégrations dans des activités déclenchées par l'homme"
Cela les accélérera, tout en maintenant la fiabilité actuelle et, à terme, le comportement déterministe de ces intégrations. Les agents d'IA capables de raisonner sur les outils à utiliser et de s'adapter à des entrées dynamiques et imprévisibles élimineront le besoin de créer des intégrations (en dehors des capacités de l'API) dans des activités déclenchées par l'homme comme le reporting, l'exploration de données ou la demande d'aide.
Des leçons pour la vie
L’expérience de travail chez Intercom façonnera toujours la façon dont j’aborde l’ingénierie et la gestion pour le reste de ma carrière. Je tiens à dire un grand merci à tous ceux avec qui j'ai travaillé et qui m'ont aidé à former ces leçons au fil des années. Intercom est une entreprise vraiment spéciale.
Si vous souhaitez suivre les écrits de Kuba, vous pouvez voir plus de ses réflexions sur la gestion de l'ingénierie ici.