10 lekcji inżynierii od 6 lat w Intercom
Opublikowany: 2024-02-03Po ponad sześciu niesamowitych latach, w trzech rolach, w trzech różnych grupach produktów, opuszczam Intercom i otwieram się na zupełnie nowe możliwości.
Jak obszernie pisaliśmy w przeszłości, firma Intercom posiada wyjątkową kulturę inżynieryjną i produktową – dlatego poniżej próbuję zastanowić się nad tą kulturą i podsumować główne wnioski z mojego pobytu tutaj. Mam nadzieję, że te spostrzeżenia okażą się cenne dla innych inżynierów i menedżerów ds. inżynierii.
A jeśli interesuje Cię praca nad trudnymi problemami ze wspaniałymi ludźmi, koniecznie sprawdź stronę Kariera w Intercom, aby sprawdzić, czy jest to stanowisko dla Ciebie – nie pożałujesz.
1. Obstawianie wyłącznie przyszłości jest jak skracanie teraźniejszości i wiąże się z kosztem alternatywnym
Intercom jest niezwykle innowacyjną firmą, a nasze kierownictwo wyższego szczebla doskonale wie, jakie trendy będą falować na rynku. Jednak stawianie wyłącznie na to i budowanie wyłącznie na przyszłość jest jak skracanie teraźniejszości, a zatem wiąże się z kosztem alternatywnym. Być może w Intercom mieliśmy ten problem z e-mailami i telefonami – przez lata byliśmy pewni, że te kanały wymierają, by z roku na rok zdawać sobie sprawę, że wcale się nie kurczą. Uważam, że jest to przydatny model mentalny, gdy myślisz o przyszłych trendach – czy obniżysz cenę teraźniejszości i będziesz skłonny zapłacić premię, jeśli nadal będziesz się mylić?
2. Każdy programista musi mieć sztuczną inteligencję w swoim zestawie narzędzi
Kiedy pracowaliśmy nad Finem, nasz zespół ds. sztucznej inteligencji odegrał kluczową rolę w zapewnieniu jego działania. Nie bylibyśmy w stanie tego zrobić jako zespół ds. produktu. Jednak w miarę upływu czasu nasze zespoły ds. produktu bezpośrednio dobudowują do tego systemu coraz więcej doskonałych funkcji. Początkowe działania mogą wymagać specjalizacji, ale ważne jest, aby jak najszybciej udostępnić sztuczną inteligencję swojej organizacji. Inny inżynier podzielił się ze mną taką anegdotą – jeszcze w 2008 roku firmy miały całe zespoły, które zajmowały się „projektowaniem mobilnym”. Zaledwie kilka lat później stało się to częścią pracy każdego człowieka.
3. Monolity można bardzo dobrze skalować, zapewniają solidne bezpieczeństwo wdrażania i duży wpływ na doświadczenie programistów i ich obserwowalność
Nadal jestem zdumiony, jak dobrze monolit Intercom Rails skalował się na przestrzeni lat. Wyjątkowe decyzje inżynieryjne, prostota, ogromny wpływ, jakim dysponuje nasz jedyny zespół ds. doświadczenia programistów, oraz trzymanie się sprawdzonych technologii chmurowych pomogły nam naprawdę dobrze kierować rozwojem.
„Monolit to coś, co sprawia, że możemy wysyłać bardzo szybko i bardzo często”
Monolit to także coś, co utrzymuje naszą zdolność do bardzo szybkiej i bardzo częstej wysyłki (poprzez wykorzystanie takich rzeczy, jak szybkie wycofywanie zmian lub szybkie CI). W porównaniu z nimi praca z kilkoma usługami, które posiadaliśmy, była bolesna – zespoły musiały być spowalniane poprzez utrzymywanie własnych zależności, potoki wdrażania lub aktualizacje infrastruktury. Nigdy nie pracowałem w profesjonalnej architekturze mikrousług o dużej skali, ale nie mogę się doczekać, aby poznać związane z tym kompromisy.
4. Częstotliwość wysyłania ma kluczowe znaczenie. To bicie twojego serca
Być może nie wysyłasz go do klientów, ale zawsze istnieje sposób na bezpieczną wysyłkę do produkcji. Jeśli nie możesz go znaleźć, szukaj dalej. Buduje mięśnie umożliwiające jeszcze większe przyspieszanie, gdy jest to konieczne, i zapobiega kulturalnej utracie niecierpliwości. Pochwal się postępem, najlepiej podczas regularnej prezentacji obejmującej całą firmę.
5. Twórz wiele modeli systemów i modeli mentalnych oraz stosuj różne warstwy abstrakcji
Patrzenie na ten sam problem z różnych punktów widzenia naprawdę poszerza horyzonty i buduje równowagę. W Intercom dowiedziałem się, że najlepsze spotkanie zaczyna się, gdy ktoś podnosi marker. Tworzone na miejscu modele systemów, dostosowywane, ewoluujące w trakcie rozmowy – wszystko to naprawdę pomaga w lepszym zrozumieniu problemu, jego złożoności i zależności.
„Wspólne modele mentalne są bardzo przydatne do szybkiego poruszania się”
Zapisz je, pokaż w następnej rozmowie, poproś o czyjś model myślowy. Wykonywanie tej pracy wspólnie z partnerami i interesariuszami przyspiesza współpracę i eliminuje rozbieżności. Wspólne modele mentalne są bardzo przydatne do szybkiego poruszania się.
6. Posiadaj i poznaj swoje dane bez wymówek
W przeszłości miałem wiele wymówek, aby zrozumieć dane produktów bez pomocy analityka danych w tworzeniu zapytań i technik analizy. Nie mam dla siebie litości od czasu ChatGPT. Jakość i pewność, z jaką mogę poruszać się po przestrzeni produktów bez dedykowanego analityka, dramatycznie wzrosła i oczekuję, że teraz każdy, kto choć trochę ma umiejętności techniczne, może to zrobić.
7. Zarządzanie danymi ewoluuje, jest bolesne i trudno znaleźć złoty środek
Posiadamy stosunkowo elastyczną, szeroko stosowaną platformę danych. Był to obszar produktu, który zebrał najwięcej opinii. Jednak wywarcie wpływu w tej przestrzeni było bardzo trudne. Rynek szybko się rozwija, pojawiają się nowe podejścia, takie jak ETL, odwrotne ETL, integracje punktowe, CDP. Twoja baza klientów będzie podzielona na wiele różnych „najlepszych sposobów zarządzania danymi”.
„Aby zobaczyć znaczące zmiany i ulepszenia w zarządzaniu danymi, najważniejsza jest strategia i spójność”
Z tego powodu nigdy nie było jednego problemu – zawsze były to długie listy problemów, pod pewnymi względami podobnych, ale odmiennych. Aby zobaczyć znaczące zmiany i ulepszenia w zarządzaniu danymi, najważniejsza jest strategia i spójność. Małe inwestycje tu i ówdzie rzadko kiedy działają.
8. Integracje danych stają się coraz bardziej złożone, im bardziej się w nie zagłębiasz
Nauczyłem się, aby nigdy nie lekceważyć integracji międzysystemowych. Z daleka zawsze wydają się one stosunkowo łatwe – jeśli tak, to zsynchronizuj obiekty w systemie A z tymi samymi obiektami w systemie B. Jednak im bliżej się tam znajdziesz, tym więcej różnic odkryjesz. Drobne niuanse, limity szybkości API, warunki wyścigu, ponowne próby i brak idempotencji oraz wiele innych aspektów. Diabeł zawsze tkwi w szczegółach, a zadania, które Twoi klienci próbują osiągnąć dzięki tym integracjom, są często podobne, ale zasadniczo wyjątkowe. Integracje są tym bardziej skomplikowane, im głębiej w nie wchodzisz, i nie lekceważ tego.
9. Budowanie łatwych do przyjęcia integracji usuwa tarcia, ale zmniejsza TAM.
Najprostsze w użyciu integracje to warstwy abstrakcji nakładane na podstawowe możliwości (takie jak interfejsy API lub bloki iPaaS). Usuwają duże tarcie i zwykle działają od razu po wyjęciu z pudełka. Na przestrzeni lat zdałem sobie sprawę, że budowanie szeroko możliwych do przyjęcia integracji jest bardzo trudne, ponieważ każda firma ma unikalne potrzeby, konfigurację i własny wewnętrzny bałagan IT, z którym musi się uporać.
Budowanie tych abstrakcji ułatwia ich przyjęcie, ale znacznie zmniejsza TAM, co może skutkować mniejszą liczbą klientów korzystających z nich w porównaniu z bardziej złożoną, ale potężną wersją.
10. Sztuczna inteligencja zasadniczo zmieni sposób, w jaki budujemy integracje
Wierzę jednak, że będzie to wyglądało inaczej w przypadku deterministycznych integracji masowych i nieprzewidywalnych integracji dynamicznych. Doświadczenia drugiego pilota znacznie przyspieszą korzystanie z narzędzi iPaaS, takich jak Zapier czy Workato, jednocześnie tworząc powtarzalną, dużą i przewidywalną automatyzację procesów.
„Agenci sztucznej inteligencji wyeliminują potrzebę budowania jakiejkolwiek integracji w działaniach inicjowanych przez człowieka”
Przyspieszy to je, zachowując przy tym dzisiejszą niezawodność i ostatecznie deterministyczne zachowanie tych integracji. Agenci sztucznej inteligencji, którzy potrafią decydować, jakich narzędzi użyć i dostosować się do dynamicznych i nieprzewidywalnych danych wejściowych, wyeliminują potrzebę tworzenia jakichkolwiek integracji (poza możliwościami API) w działaniach inicjowanych przez człowieka, takich jak raportowanie, eksploracja danych lub proszenie o pomoc.
Lekcje na całe życie
Doświadczenie pracy w Intercom zawsze będzie kształtować moje podejście do inżynierii i zarządzania przez resztę mojej kariery. Chcę bardzo podziękować wszystkim, z którymi pracowałem i którzy pomogli mi w kształtowaniu tych lekcji przez te lata. Intercom to naprawdę wyjątkowa firma.
Jeżeli chcesz być na bieżąco z twórczością Kuby, więcej jego refleksji na temat zarządzania inżynieryjnego możesz zobaczyć tutaj.