10 инженерных уроков от 6 лет работы в Intercom

Опубликовано: 2024-02-03

После более чем шести невероятных лет работы на трех должностях в трех разных группах продуктов я покидаю Intercom ради совершенно новой возможности.

Как мы уже много писали ранее, Intercom обладает уникальной инженерной и продуктовой культурой, поэтому здесь я попытаюсь поразмышлять об этой культуре и обобщить основные уроки, полученные за время, проведенное здесь. Я надеюсь, что эти идеи окажутся ценными для других инженеров и технических менеджеров.

А если вы заинтересованы в работе над сложными проблемами с замечательными людьми, обязательно загляните на страницу вакансий Intercom, чтобы узнать, есть ли для вас вакансия — вы не пожалеете об этом.

1. Ставка только на будущее подобна продаже настоящего и требует альтернативных издержек.

Intercom — чрезвычайно инновационная компания, и наше высшее руководство прекрасно понимает, какие тенденции будут волновать рынок. Но делать ставку только на это, строить только ради будущего — это все равно что сокращать настоящее и, таким образом, влечет за собой альтернативные издержки. В Intercom, возможно, у нас была такая же проблема с электронной почтой и телефоном — мы годами были уверены, что эти каналы умирают, но с каждым годом осознавали, что они вовсе не сокращаются. Я считаю, что это полезная ментальная модель, когда вы думаете о будущих тенденциях: будете ли вы продавать в настоящее время и готовы платить премию, если продолжите ошибаться?

2. Каждый разработчик должен иметь в своем наборе инструментов ИИ

Когда мы работали над Fin, наша команда по искусственному интеллекту играла фундаментальную роль в обеспечении его работы, мы не смогли бы сделать это как команда по продукту. Однако с течением времени наши продуктовые команды встраивали в эту систему все больше и больше замечательных функций. Первоначальный шаг может потребовать специализации, но важно как можно скорее представить ИИ в вашей организации. Другой инженер поделился со мной этим анекдотом — еще в 2008 году в компаниях были целые команды, которые занимались «мобильным дизайном». Всего несколько лет спустя это стало частью работы каждого.

3. Монолиты могут очень хорошо масштабироваться, обеспечивать надежную безопасность развертывания и широкие возможности для опыта разработчиков и наблюдаемости.

Я продолжаю удивляться тому, насколько хорошо монолит Intercom Rails масштабировался с течением времени. Исключительные инженерные решения, простота, огромные возможности, которыми обладает наша единственная опытная команда разработчиков, а также использование проверенных облачных технологий помогли нам действительно хорошо ориентироваться в росте.

«Монолит — это то, что позволяет нам производить поставки очень быстро и часто»

Монолит также поддерживает нашу способность выпускать продукты очень быстро и очень часто (за счет таких вещей, как быстрые откаты или быстрая CI). По сравнению с этим мы обнаружили, что с несколькими сервисами, которыми мы владели, работать было сложно: командам приходилось замедлять работу, поддерживая собственные зависимости, конвейеры развертывания или обновления инфраструктуры. Я никогда не работал в сфере профессиональной высокомасштабной микросервисной архитектуры, но мне не терпится узнать о возможных компромиссах.

4. Частота отправки имеет решающее значение. Это твое сердцебиение

Возможно, вы не отправите его клиентам, но всегда есть способ безопасно доставить его в производство. Если вы не можете его найти, продолжайте искать. Это развивает мышцы для еще большего ускорения, когда это необходимо, и не дает вам терять нетерпение в культурном отношении. Продемонстрируйте прогресс, в идеале — на обычной демонстрации для всей компании.

5. Создавайте множество системных и ментальных моделей и применяйте различные уровни абстракции.

Взгляд на одну и ту же проблему под разными углами действительно расширяет ваш кругозор и укрепляет гармонию. В Intercom я узнал, что лучшая встреча начинается, когда кто-то берет в руки маркер. Системные модели, создаваемые на месте, адаптируемые, развивающиеся по ходу вашего разговора – все это действительно помогает лучше понять проблему, ее сложности и зависимости.

«Общие ментальные модели очень полезны для быстрого движения»

Запишите их, покажите в следующем разговоре, спросите чью-нибудь мысленную модель. Выполнение этой работы вместе с вашими партнерами и заинтересованными сторонами ускоряет совместную работу и устраняет несогласованность. Общие мысленные модели очень полезны для быстрого движения.

6. Владейте своими данными и знайте их без оправданий

В прошлом у меня было много оправданий за то, что я понимаю данные о продуктах без помощи аналитика данных для создания запросов и методов анализа. Со времен ChatGPT я не жалею себя. Качество и уверенность, с которыми я могу ориентироваться в своем продуктовом пространстве без специального аналитика, резко возросли, и я ожидаю, что теперь это сможет сделать каждый, хотя бы немного разбирающийся в технических вопросах.

7. Управление данными развивается, это болезненно, и трудно найти серебряную пулю

У нас была относительно гибкая и широко используемая платформа данных. Это была область продукта, получившая наибольшее количество отзывов. Но оказать влияние в этой сфере было очень сложно. Рынок быстро развивается, появляются новые подходы, такие как ETL, обратные ETL, точечная интеграция, CDP. Ваша клиентская база будет распределена по нескольким различным «лучшим способам управления вашими данными».

«Чтобы увидеть значимые изменения и улучшения в управлении данными, все зависит от стратегии и последовательности»

И поэтому никогда не было ни одной проблемы – это всегда были длинные списки проблем, в чем-то похожих по форме, но разных. Чтобы увидеть значимые изменения и улучшения в управлении данными, все зависит от стратегии и последовательности. Небольшие инвестиции здесь и там редко срабатывают.

8. Интеграция данных становится все сложнее, чем больше вы в нее погружаетесь.

Я научился никогда не недооценивать межсистемную интеграцию. Издалека они всегда кажутся относительно простыми — если это, то это, синхронизируйте объекты в системе А с такими же объектами в системе Б. Но чем ближе вы подходите, тем больше различий вы обнаруживаете. Мелкие нюансы, ограничения скорости API, условия гонки, повторные попытки и отсутствие идемпотентности и еще много нюансов. Дьявол всегда кроется в деталях, и задачи, которые ваши клиенты пытаются достичь с помощью этой интеграции, часто похожи, но по сути уникальны. Чем глубже вы погружаетесь, тем сложнее становится интеграция, и не стоит ее недооценивать.

9. Создание простых в освоении интеграций устраняет трудности, но уменьшает TAM.

Наиболее простыми в использовании интеграциями являются уровни абстракций поверх основных возможностей (например, API или блоки iPaaS). Они устраняют множество проблем, обычно работая «из коробки». За прошедшие годы я понял, что создание широко применимых интеграций очень сложно, поскольку у каждой компании есть уникальные потребности, настройки и собственный внутренний ИТ-бардак, в котором нужно ориентироваться.

Построение этих абстракций упрощает внедрение, но значительно уменьшает TAM, что может привести к тому, что их будет использовать меньшее количество клиентов по сравнению с более сложной, но мощной версией.

10. ИИ фундаментально изменит то, как мы строим интеграцию

Однако я считаю, что для детерминированных, крупномасштабных интеграций и непредсказуемых, динамических интеграций все будет происходить по-разному. Опыт совместного пилотирования значительно ускорит работу пользователей с инструментами iPaaS, такими как Zapier или Workato, одновременно обеспечивая повторяемую, крупномасштабную и предсказуемую автоматизацию процессов.

«Агенты искусственного интеллекта устранят необходимость в построении какой-либо интеграции в деятельности, инициируемой человеком»

Это ускорит их, сохраняя при этом сегодняшнюю надежность и, в конечном счете, детерминированное поведение этих интеграций. Агенты ИИ, которые смогут рассуждать о том, какие инструменты использовать, и адаптироваться к динамическим и непредсказуемым входным данным, устранят необходимость в построении какой-либо интеграции (за пределами возможностей API) в действиях, инициируемых человеком, таких как отчеты, исследование данных или обращение за помощью.

Уроки на всю жизнь

Опыт работы в Intercom всегда будет определять мой подход к проектированию и управлению до конца моей карьеры. Я хочу сказать большое спасибо всем, с кем я работал и кто помогал мне формировать эти уроки на протяжении многих лет. Интерком – действительно особенная компания.

Если вы хотите быть в курсе работ Кубы, вы можете увидеть больше его размышлений о инженерном менеджменте здесь.

Карьера CTA – Инженерное дело (горизонтально)