10 lezioni di ingegneria da 6 anni presso Intercom

Pubblicato: 2024-02-03

Dopo più di sei anni incredibili, ricoperti in tre ruoli, in tre diversi gruppi di prodotti, lascio Intercom per un'opportunità completamente nuova.

Come abbiamo ampiamente scritto in passato, Intercom ha una cultura ingegneristica e di prodotto unica, quindi ecco il mio tentativo di riflettere sulla cultura e riassumere le lezioni principali del mio tempo qui. Spero che queste intuizioni si rivelino preziose per altri ingegneri e responsabili tecnici.

E se sei interessato a lavorare su problemi difficili con persone fantastiche, assicurati di controllare la pagina delle carriere di Intercom per vedere se c'è un ruolo per te: non te ne pentirai.

1. Scommettere solo sul futuro è come abbreviare il presente e comporta un costo in termini di opportunità

Intercom è un'azienda estremamente innovativa e la nostra leadership senior è eccellente nell'avere una visione approfondita di quali tendenze faranno scalpore nel mercato. Ma scommettere solo su quello, costruire solo per il futuro, è come abbreviare il presente e quindi comporta un costo in termini di opportunità. In Intercom, forse abbiamo avuto questo problema con le e-mail e il telefono: per anni siamo stati certi che questi canali stessero morendo, solo per renderci conto anno dopo anno che non si stavano affatto riducendo. Lo trovo un modello mentale utile quando pensi alle tendenze future: abbreviaresti il ​​presente e saresti disposto a pagare il premio se continui a sbagliare?

2. Ogni sviluppatore deve avere l'intelligenza artificiale nella propria cassetta degli attrezzi

Quando abbiamo lavorato su Fin, il nostro team di intelligenza artificiale è stato fondamentale per farlo funzionare, non saremmo stati in grado di farlo come team di prodotto. Tuttavia, con il passare del tempo, sempre più funzionalità eccellenti sono state integrate nel sistema direttamente dai nostri team di prodotto. La spinta iniziale potrebbe richiedere una specializzazione, ma è importante esporre l'intelligenza artificiale alla tua organizzazione il prima possibile. Un altro ingegnere ha condiviso con me questo aneddoto: nel 2008, le aziende avevano interi team che si occupavano di “progettazione mobile”. Solo pochi anni dopo faceva parte del lavoro di tutti.

3. I monoliti possono scalare molto bene, offrono una solida sicurezza di implementazione e un elevato effetto leva per l'esperienza e l'osservabilità degli sviluppatori

Continuo a stupirmi di quanto bene sia cresciuto il monolite Intercom Rails nel corso degli anni. Decisioni ingegneristiche eccezionali, semplicità, enorme potere di cui dispone il nostro unico team di esperti di sviluppo e il rispetto di tecnologie cloud comprovate ci hanno aiutato a gestire la crescita molto bene.

"Monolith è qualcosa che mantiene la nostra capacità di spedire molto velocemente, molto spesso"

Monolith è anche qualcosa che mantiene la nostra capacità di spedire molto velocemente, molto spesso (sudando cose come rollback veloci o CI rapidi). Abbiamo trovato difficile lavorare in confronto con alcuni servizi di nostra proprietà: i team dovevano essere rallentati mantenendo le proprie dipendenze, pipeline di distribuzione o aggiornamenti dell'infrastruttura. Non ho mai lavorato in un'architettura di microservizi professionale e su larga scala, ma non vedo l'ora di conoscere i compromessi lì.

4. La frequenza con cui spedisci è fondamentale. E' il tuo battito cardiaco

Potresti non spedirlo ai clienti, ma c'è sempre un modo per spedirlo alla produzione in modo sicuro. Se non riesci a trovarlo, continua a cercare. Costruisce i muscoli per accelerare ancora di più quando necessario e ti impedisce di perdere l'impazienza culturalmente. Mostra i progressi, idealmente durante una normale demo a livello aziendale.

5. Crea numerosi modelli di sistema e modelli mentali e applica diversi livelli di astrazione

Guardare lo stesso problema da diverse angolazioni espande davvero i tuoi orizzonti e crea allineamento. A Intercom ho imparato che l'incontro migliore inizia quando qualcuno prende in mano il segnalino. Modelli di sistema, inventati sul momento, adattati, evoluti mentre parli: tutto ciò aiuta davvero ad affinare la tua comprensione del problema, delle sue complessità e dipendenze.

“I modelli mentali condivisi sono molto utili per muoversi velocemente”

Scrivili, mostrali nella tua prossima conversazione, chiedi il modello mentale di qualcun altro. Svolgere questo lavoro insieme ai tuoi partner e alle parti interessate accelera la velocità con cui collabori ed elimina il disallineamento. I modelli mentali condivisi sono molto utili per muoversi velocemente.

6. Possiedi e conosci i tuoi dati, senza scuse

In passato avevo molte scuse per la mia comprensione dei dati di prodotto senza l'aiuto dell'analista di dati per creare query e tecniche di analisi. Non ho pietà per me stesso dai tempi di ChatGPT. La qualità e la fiducia con cui posso navigare nel mio spazio di prodotto senza un analista dedicato sono aumentate notevolmente e mi aspetto che tutti, almeno leggermente tecnici, possano farlo ora.

7. La gestione dei dati è in evoluzione, faticosa ed è difficile trovare una soluzione miracolosa

Possedevamo una piattaforma dati relativamente flessibile e ampiamente utilizzata. È stata l'area del prodotto con il maggior numero di feedback. Ma avere un impatto in questo spazio è stato molto difficile. Il mercato si sta evolvendo rapidamente, con nuovi approcci come ETL, reverse-ETL, integrazioni puntuali, CDP. La tua base clienti sarà suddivisa tra diversi “modi migliori di gestione dei tuoi dati”.

"Per vedere cambiamenti e miglioramenti significativi nella gestione dei dati, è tutta una questione di strategia e coerenza"

E per questo motivo non c'è mai stato un singolo problema: ci sono sempre stati lunghi elenchi di problemi, simili in alcune forme ma diversi. Per vedere cambiamenti e miglioramenti significativi nella gestione dei dati, è tutta una questione di strategia e coerenza. Piccoli investimenti qua e là raramente funzionano.

8. Le integrazioni dei dati diventano sempre più complesse quanto più ci si approfondisce

Ho imparato a non sottovalutare mai le integrazioni tra sistemi. Da lontano sembrano sempre relativamente facili: sincronizza gli oggetti nel sistema A con gli stessi oggetti nel sistema B. Ma più ti avvicini, più differenze scopri. Piccole sfumature, limiti di velocità API, condizioni di gara, nuovi tentativi e mancanza di idempotenza e molti altri aspetti. Il diavolo è sempre nei dettagli e i risultati che i tuoi clienti cercano di ottenere con queste integrazioni sono spesso simili ma fondamentalmente unici. Le integrazioni diventano estremamente complesse quanto più si approfondisce e non sottovalutarle.

9. Costruire integrazioni facili da adottare elimina gli attriti, ma riduce il TAM.

Le integrazioni più facili da usare sono livelli di astrazioni sopra le funzionalità principali (come API o blocchi iPaaS). Rimuovono molti attriti, di solito lavorando fuori dagli schemi. Ciò che ho capito nel corso degli anni è che costruire integrazioni ampiamente adottabili è molto difficile poiché ogni azienda ha esigenze, configurazioni e problemi IT interni unici da gestire.

La creazione di queste astrazioni ne semplifica l'adozione, ma riduce significativamente il TAM, che può portare a un numero inferiore di clienti che le utilizzano rispetto a una versione più complessa ma potente.

10. L’intelligenza artificiale cambierà radicalmente il modo in cui costruiamo le integrazioni

Tuttavia, credo che le cose andranno diversamente per le integrazioni deterministiche e ad alto volume e per le integrazioni dinamiche e non prevedibili. Le esperienze co-pilota accelereranno notevolmente gli utenti negli strumenti iPaaS come Zapier o Workato creando al contempo un'automazione dei processi ripetibile, ad alto volume e prevedibile.

“Gli agenti IA elimineranno la necessità di creare integrazioni nelle attività attivate dall’uomo”

Ciò le accelererà, pur mantenendo l'affidabilità odierna e, in ultima analisi, il comportamento deterministico di queste integrazioni. Gli agenti di intelligenza artificiale in grado di ragionare su quali strumenti utilizzare e adattarsi a input dinamici e imprevedibili elimineranno la necessità di creare integrazioni (al di fuori delle funzionalità API) in attività attivate dall'uomo come reporting, esplorazione dei dati o richiesta di aiuto.

Lezioni per la vita

L'esperienza di lavoro in Intercom determinerà sempre il modo in cui mi avvicinerò all'ingegneria e alla gestione per il resto della mia carriera. Voglio ringraziare di cuore tutti coloro con cui ho lavorato e che mi hanno aiutato a formare queste lezioni nel corso degli anni. Intercom è un'azienda davvero speciale.

Se desideri restare aggiornato sugli scritti di Kuba, puoi vedere altre sue riflessioni sulla gestione dell'ingegneria qui.

CTA Carriere - Ingegneria (orizzontale)