10 lecții de inginerie de la 6 ani la Intercom
Publicat: 2024-02-03După mai bine de șase ani incredibili, în trei roluri, în trei grupuri de produse diferite, părăsesc Intercom pentru o oportunitate cu totul nouă.
După cum am scris pe larg în trecut, Intercom are o cultură unică a ingineriei și a produsului – așa că iată încercarea mea de a reflecta asupra culturii și de a rezuma principalele lecții din timpul petrecut aici. Sper că aceste informații se dovedesc valoroase pentru alți ingineri și manageri de inginerie.
Și dacă sunteți interesat să lucrați la probleme grele cu oameni grozavi, asigurați-vă că consultați pagina Cariere Intercom pentru a vedea dacă există un rol pentru dvs. - nu veți regreta.
1. Pariul doar pe viitor este ca și cum să scurtezi prezentul și are un cost de oportunitate
Intercom este o companie extrem de inovatoare, iar conducerea noastră este excelentă în a avea o perspectivă excelentă asupra tendințelor care vor face furori pe piață. Dar pariarea doar pe asta, construirea doar pentru viitor, este ca și cum a scurtcircuita prezentul și, prin urmare, are un cost de oportunitate. La Intercom, probabil că am avut această problemă cu e-mailurile și telefonul – am fost încrezători ani de zile că aceste canale mureau doar pentru a realiza an de an că nu se micșorează deloc. Găsesc că este un model mental util atunci când te gândești la tendințele viitoare – ai scurta prezentul și ai fi dispus să plătești prima dacă vei continua să greșești?
2. Fiecare dezvoltator trebuie să aibă AI în cutia de instrumente
Când am lucrat la Fin, echipa noastră de inteligență artificială a fost fundamentală pentru ca acesta să funcționeze, nu am putea să o facem ca echipă de produs. Cu toate acestea, odată cu trecerea timpului, din ce în ce mai multe funcții excelente au fost integrate în acest sistem direct de echipele noastre de produse. Este posibil ca impulsul inițial să necesite specializare, dar este important să expuneți AI organizației dvs. cât mai curând posibil. Un alt inginer mi-a împărtășit această anecdotă – în 2008, companiile aveau echipe întregi care făceau „design mobil”. Doar câțiva ani mai târziu a făcut parte din munca tuturor.
3. Monoliții se pot scala foarte bine, oferă o siguranță solidă la implementare și un efect de pârghie ridicat pentru experiența și observabilitatea dezvoltatorului
Sunt în continuare uimit cât de bine s-a scalat monolitul Intercom Rails de-a lungul anilor. Deciziile de inginerie excepționale, menținerea simplă, pârghia uriașă pe care o are singura noastră echipă cu experiență de dezvoltator și respectarea tehnologiilor cloud dovedite ne-au ajutat să ne dezvoltăm foarte bine.
„Monolith este ceva care ne menține capacitatea de a livra foarte repede, foarte des”
Monolith este, de asemenea, ceva care ne menține capacitatea de a livra foarte repede, foarte des (prin transpirație lucruri precum rollback rapid sau CI rapid). Am găsit câteva servicii pe care le deținem cu greu să lucrăm în comparație – echipele au trebuit să fie încetinite prin menținerea propriilor dependențe, conducte de implementare sau actualizări de infrastructură. Nu am lucrat niciodată în arhitectură profesională de microservicii la scară înaltă, dar abia aștept să aflu despre compromisurile de acolo.
4. Cât de des expediați este critic. Este bătăile inimii tale
S-ar putea să nu-l expediați clienților, dar există întotdeauna o modalitate de a livra la producție într-un mod sigur. Dacă nu îl găsiți, continuați să căutați. Construiește mușchii pentru a accelera și mai mult atunci când este necesar și vă împiedică să vă pierdeți nerăbdarea din punct de vedere cultural. Arătați progresul, în mod ideal într-o demonstrație obișnuită la nivel de companie.
5. Creați o mulțime de modele de sistem și modele mentale și aplicați diferite straturi de abstractizare
Privind aceeași problemă din unghiuri diferite, vă extinde cu adevărat orizonturile și construiește alinierea. La Intercom am aflat că cea mai bună întâlnire începe când cineva ridică marcajul. Modelele de sistem, realizate la fața locului, adaptate, evoluate pe măsură ce vorbiți – toate acestea vă ajută cu adevărat să vă clarificați înțelegerea problemei, a complexităților și a dependențelor acesteia.
„Modelele mentale partajate sunt foarte utile pentru a te mișca rapid”
Notează-le, arată-le în următoarea ta conversație, cere modelul mental al altcuiva. Făcând această lucrare împreună cu partenerii și părțile interesate, accelerează cât de repede colaborezi și elimină nealinierea. Modelele mentale partajate sunt foarte utile pentru mișcarea rapidă.
6. Deține și cunoaște-ți datele, fără scuze
Am avut o mulțime de scuze în trecut pentru a înțelege datele despre produse fără ajutorul analistului de date pentru a crea interogări și tehnici de analiză. Nu am milă de mine de la ChatGPT. Calitatea și încrederea în care îmi pot naviga în spațiul de produse fără un analist dedicat a crescut dramatic și mă aștept ca oricine cel puțin puțin tehnic să o poată face acum.
7. Managementul datelor este în evoluție, dureros și este greu să găsești un glonț de argint
Am deținut o platformă de date relativ flexibilă, utilizată pe scară largă. A fost zona de produs cu cea mai mare cantitate de feedback. Dar a avea un impact în acest spațiu a fost foarte greu. Piața evoluează rapid, cu noi abordări precum ETL, ETL invers, integrări punctuale, CDP. Baza dvs. de clienți va fi împărțită în mai multe „cele mai bune moduri de a vă gestiona datele”.
„Pentru a vedea schimbări semnificative și îmbunătățiri în gestionarea datelor, totul este despre strategie și consecvență”
Și din această cauză, nu a existat niciodată o singură problemă – au fost întotdeauna liste lungi de probleme, asemănătoare în unele forme, dar diferite. Pentru a vedea schimbări semnificative și îmbunătățiri în gestionarea datelor, totul este despre strategie și consecvență. Micile investiții ici și acolo rareori funcționează.
8. Integrările de date devin din ce în ce mai complexe cu cât te scufunzi mai mult în ele
Am învățat să nu subestim niciodată integrările între sisteme. De la distanță, ele sună întotdeauna relativ ușor – dacă asta atunci, sincronizați obiectele din sistemul A cu aceleași obiecte din sistemul B. Dar cu cât vă apropiați de acolo, cu atât descoperiți mai multe diferențe. Mici nuanțe, limite ale ratei API, condiții de cursă, reîncercări și lipsă de idemponță și multe alte unghiuri. Diavolul este întotdeauna în detalii, iar locurile de muncă pe care clienții tăi încearcă să le realizeze cu aceste integrări sunt adesea similare, dar fundamental unice. Integrările sunt super complexe cu cât ajungi mai profund și nu le subestima.
9. Construirea de integrări ușor de adoptat elimină frecarea, dar reduce TAM-ul.
Cele mai ușor de utilizat integrări sunt straturi de abstracții pe deasupra capacităților de bază (cum ar fi API-urile sau blocurile iPaaS). Îndepărtează o mulțime de frecare, de obicei funcționând imediat. Ceea ce mi-am dat seama de-a lungul anilor este că construirea de integrări care pot fi adoptate este foarte dificilă, deoarece fiecare companie are nevoi unice, configurații și propria lor mizerie IT internă de navigat.
Construirea acestor abstracții face mai ușor de adoptat, dar reduce semnificativ TAM-ul, care poate ajunge la un număr mai mic de clienți care le folosesc față de o versiune mai complexă, dar puternică.
10. AI va schimba fundamental modul în care construim integrările
Cu toate acestea, cred că se va desfășura diferit pentru integrări deterministe, de volum mare și integrări dinamice neprevizibile. Experiențele de copilot vor accelera dramatic utilizatorii în instrumentele iPaaS precum Zapier sau Workato, creând în același timp automatizarea proceselor repetabilă, de volum mare și previzibilă.
„Agenții AI vor elimina nevoia de a construi orice integrări în activitățile declanșate de oameni”
Acest lucru le va accelera, menținând în același timp fiabilitatea de astăzi și, în cele din urmă, comportamentul determinist al acestor integrări. Agenții AI care pot gândi ce instrumente să folosească și să se adapteze la input dinamic și imprevizibil vor elimina nevoia de a construi orice integrări (în afara capacităților API) în activități declanșate de om, cum ar fi raportarea, explorarea datelor sau solicitarea de ajutor.
Lecții pentru viață
Experiența de a lucra la Intercom va influența întotdeauna modul în care abordez inginerie și management pentru tot restul carierei mele. Vreau să le mulțumesc tuturor tuturor cu care am lucrat și care m-au ajutat să formez aceste lecții de-a lungul anilor. Intercom este o companie cu adevărat specială.
Dacă doriți să țineți pasul cu scrisul lui Kuba, puteți vedea mai multe reflecții ale lui despre managementul ingineresc aici.