Cum ne ajută conservatorismul tehnic să creștem mai repede și mai bine

Publicat: 2022-07-21

La Intercom, suntem concentrați pe viitor și luăm pași îndrăzneți pentru a ajunge acolo. Dar când luăm decizii tehnice, ne place să fim conservatori.

În practică, a fi conservator din punct de vedere tehnic arată ca reutilizarea tehnologiilor și cadrelor existente în stiva noastră sau promovarea modelelor și soluțiilor încercate și testate. Apreciem această familiaritate pentru că înțelegem că problemele importante care trebuie rezolvate sunt cele care oferă client sau valoare afacerii.

În loc să evaluăm noile tehnologii și să petrecem timp cu probleme operaționale deja rezolvate, care în cele din urmă oferă o valoare mică pentru clienți, ne putem concentra pe îmbunătățirea produsului prin construirea, lansarea și iterarea soluțiilor.

Acesta este al șaselea post dintr-o serie care explorează principiile produselor noastre . Aici, Waheed discută principiul nostru de inginerie „Fii conservator din punct de vedere tehnic”.

Există multe beneficii pe termen lung ale conservatorismului tehnic

Acest principiu este cel mai bine ilustrat de câteva exemple de-a lungul anilor, care demonstrează modul în care Fii conservator din punct de vedere tehnic” ne permite să creștem rapid, fără a fi în cele din urmă o constrângere. Am vorbit anterior despre experiența noastră în proiectarea sistemului nostru de raportare, în care am evaluat beneficiile introducerii unui nou depozit de date în stiva noastră – Redshift. Ar fi însemnat introducerea unui nou tip de bază de date în sistemul nostru, care nu a fost niciodată testată împotriva producției. Mai mult, ar fi trebuit să petrecem mult timp pentru a construi cunoștințe operaționale, menținând clustere în producție și gestionând probleme neprevăzute legate de operarea Redshift la scară.

Am valorificat infrastructura noastră existentă pentru a accelera procesul de la aproximativ șase luni la doar șase săptămâni”

În cele din urmă, am decis că un depozit de date familiar se potrivește mai bine pentru această activitate. Am folosit infrastructura noastră existentă Elasticsearch, care alimentează majoritatea capabilităților de căutare ale Intercom, pentru a accelera procesul de la aproximativ șase luni la doar șase săptămâni.

Versiunea inițială a sistemului de raportare a fost lansată acum câțiva ani, așa că am avut ocazia să reflectăm asupra unora dintre beneficiile pe termen lung ale aplicării noastre de conservatorism tehnic în acest caz:

Am rezolvat mai repede problema clientului

Utilizarea infrastructurii noastre existente a însemnat că am evitat să petrecem timp familiarizându-ne cu un nou depozit de date și să ne confruntăm cu toate sughițurile inevitabile. Ne-am putut concentra imediat pe problema clientului care trebuie rezolvată și am expediat rapid, reducând timpul de livrare cu mai mult de patru luni.

Am profitat la maximum de timpul echipei

Echipa noastră de infrastructură de date a putut să se concentreze în continuare pe un set mic, familiar de tehnologii, în loc să fie răspândite în mai multe tehnologii. Drept urmare, au avut – și au încă – mai mult timp pentru a asigura sănătatea sistemelor noastre existente și pentru a optimiza utilizarea fiecărei tehnologii.

Deoarece setul nostru de tehnologii este relativ mic, îmbunătățirile au loc în mod regulat”

Am sporit valoarea îmbunătățirilor continue

Deoarece setul nostru de tehnologii este relativ mic, îmbunătățirile apar în mod regulat. Produsul folosește acele tehnologii și, prin urmare, impactul acelor îmbunătățiri este agravat în tot ceea ce este construit pe deasupra lor. O mică îmbunătățire poate avea un efect de ondulare masiv și pozitiv asupra întregului produs.

Mai multe echipe au avut mai multe contribuții

Utilizarea tehnologiilor comune înseamnă că mai mulți ingineri și echipe se simt încrezători și împuterniciți să lucreze cu ei. Am văzut îmbunătățiri frecvente ale produsului de raportare din partea echipelor din întreaga companie, mai degrabă decât a unei echipe care deține o anumită parte a sistemului.

Amintiți-vă că principiile nu sunt reguli, sunt linii directoare

Principiile sunt o modalitate incredibilă de a alinia echipele și au dat rezultate excelente pentru Intercom. Dar există momente când ar fi mai logic să nu le urmezi. Pe măsură ce o companie crește, există riscul ca unii membri ai echipei să urmeze principiile dogmatic sau să le interpreteze incorect. A scăpa de conservatorismul tehnic nu ar trebui să însemne că nu introducem niciodată ceva nou.

„Conservatorismul tehnic înseamnă să favorizați o tehnologie care este deja în stiva dumneavoastră – dar numai dacă este cea mai bună opțiune”

Conservatorismul tehnic înseamnă să favorizați o tehnologie care este deja în stack - dar numai dacă este cea mai bună opțiune. În unele situații, o tehnologie existentă ar putea să nu fie adecvată. Dacă nu poate răspunde la următoarele întrebări, putem căuta mai departe și evaluăm alternative:

  • Noul instrument permite afacerii dvs. să se extindă mai eficient?
  • Permite echipei sau organizației dvs. să se miște mai rapid și să ofere valoare mai rapid?
  • Rezolvă o problemă a clientului care nu a putut fi rezolvată cu instrumentele dvs. existente?

Dacă răspundeți „da” la oricare dintre acestea, ar putea merita să luați în considerare introducerea noului instrument. La Intercom, a existat un exemplu recent care a răspuns „da” la toate cele trei întrebări.

Utilizatorii sau clienții clienților noștri sunt nucleul platformei Intercom. Pe măsură ce am crescut, la fel au crescut și clienții noștri și nevoile lor în ceea ce privește cantitatea de date despre utilizatori stocate în Intercom. Cantitatea mare de date despre utilizatori a dus la probleme de scalare cu actualul magazin de date pentru utilizatori la momentul respectiv și pentru a ne asigura că putem continua să sprijinim clienții existenți și noi, trebuia să ne regândim soluția actuală. Asta ne-a determinat în cele din urmă să introducem o nouă tehnologie în stiva noastră – iată cum am ajuns la această decizie.

Scalam mai repede decât ne permitea depozitul nostru de date

Folosim MongoDB de aproximativ cinci ani și aveam cicatrici operaționale pentru a dovedi acest lucru. Am optimizat fiecare aspect al deținerii și rulării acestuia – de la tipul de hardware pe care rulează, până la interogările pe care le-am executat. Eram în punctul de a scădea randamentele și vedeam semnale puternice că va înceta să mai fie adecvat scopului în câțiva ani – și ar putea chiar să devină un blocaj în creșterea companiei.

„Gândește-te în mod regulat la traiectoria afacerii tale și întreabă : „ Ce ne-a adus aici, ne va duce acolo? '. Acest lucru vă va permite să fiți proactiv în privința alegerilor dvs., mai degrabă decât reactiv.”

Aici este esențial să existe o strategie tehnică puternică, cu gândire de viitor. În acest moment, aveam suficiente date pentru a sugera că ar putea fi nevoie să evaluăm o altă abordare și aveam pista pentru a face acest lucru. Gândește-te în mod regulat la traiectoria afacerii tale și întreabă „Ce ne-a adus aici, ne va duce acolo?”. Acest lucru vă va permite să fiți proactiv cu privire la alegerile dvs., mai degrabă decât reactiv, și atenuează riscurile legate de necunoscutele necunoscute ale introducerii unei noi tehnologii.

Tehnologia noastră a încetinit echipa noastră

La Intercom ne străduim să rulăm mai puțin software. În acest caz, deși adoptam o nouă tehnologie cu necunoscute necunoscute, adoptarea DynamoDB ne-a permis să facem exact asta.

Anterior, ne autogestionam scalarea MongoDB împreună cu codul pentru echilibrarea încărcăturii – o suprasarcină semnificativă pentru echipă. O parte a atracției DynamoDB a fost că a fost gestionat de furnizor, AWS. Aceasta însemna că, deși a existat un cost inițial pentru adoptarea acestuia, în cele din urmă va fi mai ieftin și va economisi echipei o cantitate imensă de timp și efort.

„A nu fi dogmatic în privința conservatorismului tehnic ne-a permis să înlocuim o tehnologie cu cheltuieli generale mari și capabilități limitate”

Poate părea contraintuitiv, dar introducerea unei noi tehnologii a avut ca rezultat, în cele din urmă, să rulăm mai puțin software. A nu fi dogmatic în privința conservatorismului tehnic ne-a permis să înlocuim o tehnologie cu cheltuieli generale mari și capabilități limitate cu o nouă tehnologie care era mai puțin împovărătoare din punct de vedere operațional și mai scalabilă.

Am fost nemiloși în privința cerințelor

Uneori, am solicita MongoDB să efectueze interogări complexe și costisitoare care riscau disponibilitatea și performanța unor interogări mai comune, dar mai puțin complexe. Când am evaluat DynamoDB, ne-am dat seama că nu va suporta acele interogări complexe și costisitoare, dar ar fi mult mai bine la cele mai simple și mai comune.

Am folosit deja în mare parte Elasticsearch pentru a efectua interogări complexe, iar nevoia de a migra ne-a forțat să revizuim și să definim mai deliberat capabilitățile de care aveam nevoie de la magazinul nostru de utilizatori și, în cele din urmă, ne-a permis să îmbunătățim performanța pentru cazul său de utilizare principal: preluarea înregistrărilor unui singur utilizator.

„Când te gândești la înlocuirea unei tehnologii, nu lua de la sine înțeles că vei folosi noua tehnologie în același mod”

Când te gândești la înlocuirea unei tehnologii, nu lua de la sine înțeles că vei folosi noua tehnologie în același mod. Cerințele dvs. se vor schimba probabil considerabil de-a lungul timpului, iar restul stivei va fi evoluat sau maturizat, astfel încât cazurile de utilizare să devină mai restrânse. Acest lucru va deschide oportunități de a adopta tehnologii mai concentrate, performante sau de a descărca unele tehnologii pentru a fi gestionate de un furnizor.

Faceți ca principiile să funcționeze pentru afacerea dvs., nu invers

Conservatorismul tehnic este un instrument excelent pentru a permite echipelor dumneavoastră să rămână concentrate pe ceea ce este important – rezolvarea problemelor clienților și furnizarea de valoare fără a cheltui resurse prețioase pentru a răspunde la întrebările la care au primit deja răspunsuri.

Cu toate acestea, a deveni prea rigid în convingerea că introducerea de noi tehnologii este rea te-ar putea împiedica să profiti de tehnologiile care te vor ajuta să rulezi mai puțin software și să scalați mai ușor și mai rapid. Este important să aplicați acest principiu într-un mod care funcționează cel mai bine pentru echipa dvs. și afacerea dvs., pe termen lung.

Sunteți interesat să vă alăturați echipei de ingineri Intercom? Aflați mai multe și vedeți rolurile noastre deschise aici.

Cariere CTA - Inginerie (orizontală)