Wie technischer Konservatismus uns hilft, schneller und besser zu skalieren

Veröffentlicht: 2022-07-21

Bei Intercom konzentrieren wir uns auf die Zukunft und unternehmen mutige Schritte, um dorthin zu gelangen. Aber wenn wir technische Entscheidungen treffen, sind wir gerne konservativ.

Technisch konservativ zu sein, sieht in der Praxis so aus, als würden wir bestehende Technologien und Frameworks in unserem Stack wiederverwenden oder bewährte Muster und Lösungen fördern. Wir schätzen diese Vertrautheit, weil wir verstehen, dass die wichtigen zu lösenden Probleme diejenigen sind, die Kunden- oder Geschäftswert liefern.

Anstatt neue Technologien zu evaluieren und Zeit mit bereits gelösten betrieblichen Problemen zu verbringen, die letztendlich wenig Kundennutzen bieten, können wir uns auf die Verbesserung des Produkts konzentrieren, indem wir Lösungen entwickeln, freigeben und iterieren.

Dies ist der sechste Beitrag in einer Serie, in der unsere Produktprinzipien erläutert werden . Hier erläutert Waheed unser Engineering-Prinzip „Seien Sie technisch konservativ“.

Es gibt viele langfristige Vorteile des technischen Konservatismus

Dieses Prinzip lässt sich am besten durch einige Beispiele aus den vergangenen Jahren veranschaulichen, die zeigen, wie sei technisch konservativ“ es uns ermöglicht, schnell zu skalieren, ohne letztendlich eine Einschränkung zu sein. Ich habe zuvor über unsere Erfahrung beim Entwerfen unseres Berichtssystems gesprochen, wo wir die Vorteile der Einführung eines neuen Datenspeichers in unseren Stack – Redshift – bewertet haben. Es hätte bedeutet, einen neuen Datenbanktyp in unser System einzuführen, der noch nie in der Produktion getestet worden war. Darüber hinaus hätten wir viel Zeit darauf verwenden müssen, operatives Wissen aufzubauen, Cluster in der Produktion zu warten und unvorhergesehene Probleme beim Betrieb von Redshift im großen Maßstab zu lösen.

Wir haben unsere vorhandene Infrastruktur genutzt, um den Prozess von geschätzten sechs Monaten auf nur sechs Wochen zu beschleunigen.“

Letztendlich entschieden wir, dass ein vertrauter Datenspeicher besser für den Job geeignet ist. Wir nutzten unsere vorhandene Elasticsearch-Infrastruktur, die den Großteil der Suchfunktionen von Intercom unterstützt, um den Prozess von geschätzten sechs Monaten auf nur sechs Wochen zu beschleunigen.

Die ursprüngliche Version des Berichtssystems wurde vor einigen Jahren ausgeliefert, daher hatten wir die Gelegenheit, über einige der längerfristigen Vorteile unserer Anwendung des technischen Konservatismus in diesem Fall nachzudenken:

Wir haben das Problem des Kunden schneller gelöst

Durch die Verwendung unserer vorhandenen Infrastruktur konnten wir vermeiden, Zeit damit zu verbringen, uns mit einem neuen Datenspeicher vertraut zu machen und all die unvermeidlichen Schluckaufe zu bewältigen. Wir konnten uns sofort auf das zu lösende Kundenproblem konzentrieren und schnell versenden, was die Lieferzeit um mehr als vier Monate verkürzte.

Wir haben die Zeit des Teams optimal genutzt

Unser Dateninfrastrukturteam konnte sich weiterhin auf eine kleine, vertraute Reihe von Technologien konzentrieren, anstatt auf mehrere Technologien verteilt zu sein. Infolgedessen hatten sie – und haben immer noch – mehr Zeit, um die Gesundheit unserer bestehenden Systeme zu gewährleisten und unsere Nutzung jeder Technologie zu optimieren.

Da unser Satz an Technologien relativ klein ist, werden regelmäßig Verbesserungen vorgenommen.“

Wir steigern den Wert laufender Verbesserungen

Da unser Satz an Technologien relativ klein ist, werden regelmäßig Verbesserungen vorgenommen. Das Produkt nutzt diese Technologien, und so wird die Wirkung dieser Verbesserungen auf alles, was darauf aufgebaut ist, verstärkt. Eine winzige Verbesserung kann einen massiven, positiven Dominoeffekt auf das gesamte Produkt haben.

Mehr Teams hatten mehr Input

Die Verwendung gemeinsamer Technologien bedeutet, dass sich mehr Ingenieure und Teams sicher und befähigt fühlen, mit ihnen zu arbeiten. Wir haben häufig Verbesserungen am Berichterstellungsprodukt von Teams im gesamten Unternehmen und nicht nur von einem Team gesehen, das einen bestimmten Teil des Systems besitzt.

Denken Sie daran, dass Prinzipien keine Regeln sind, sondern Richtlinien

Prinzipien sind eine unglaubliche Möglichkeit, Teams aufeinander abzustimmen, und haben für Intercom zu großartigen Ergebnissen geführt. Aber es gibt Zeiten, in denen es sinnvoller sein könnte, ihnen nicht zu folgen. Wenn ein Unternehmen skaliert, besteht die Gefahr, dass einige Teammitglieder den Prinzipien dogmatisch folgen oder sie falsch interpretieren. Dem technischen Konservatismus zu verfallen, sollte nicht bedeuten, dass wir nie etwas Neues einführen.

„Technischer Konservatismus bedeutet, eine Technologie zu bevorzugen, die sich bereits in Ihrem Stack befindet – aber nur, wenn es die beste Option ist“

Technischer Konservatismus bedeutet, eine Technologie zu bevorzugen, die sich bereits in Ihrem Stack befindet – aber nur, wenn dies die beste Option ist. In einigen Situationen ist eine vorhandene Technologie möglicherweise nicht geeignet. Wenn es die folgenden Fragen nicht beantworten kann, schauen wir möglicherweise weiter und prüfen Alternativen:

  • Kann Ihr Unternehmen mit dem neuen Tool effektiver skalieren?
  • Ermöglicht es Ihrem Team oder Ihrer Organisation, sich schneller zu bewegen und schneller Mehrwert zu liefern?
  • Löst es ein Kundenproblem, das mit Ihren vorhandenen Tools nicht gelöst werden konnte?

Wenn Sie eine dieser Fragen mit „Ja“ beantworten, kann es sich lohnen, über die Einführung dieses neuen Tools nachzudenken. Bei Intercom gab es kürzlich ein Beispiel, das alle drei Fragen mit „Ja“ beantwortete.

Benutzer oder die Kunden unserer Kunden sind das Herzstück der Intercom-Plattform. So wie wir gewachsen sind, sind auch unsere Kunden und ihre Bedürfnisse in Bezug darauf, wie viele Benutzerdaten sie in Intercom speichern, gewachsen. Die große Menge an Benutzerdaten führte damals zu Skalierungsproblemen mit unserem aktuellen Benutzerdatenspeicher, und um sicherzustellen, dass wir bestehende und neue Kunden weiterhin unterstützen können, mussten wir unsere aktuelle Lösung überdenken. Das hat uns letztendlich dazu veranlasst, eine neue Technologie in unseren Stack einzuführen – so sind wir zu dieser Entscheidung gekommen.

Wir haben schneller skaliert, als es unser Datenspeicher zuließ

Wir haben MongoDB seit ungefähr fünf Jahren verwendet und hatten die betrieblichen Narben, um dies zu beweisen. Wir hatten jeden Aspekt des Besitzes und des Betriebs optimiert – von der Art der Hardware, auf der es ausgeführt wurde, bis hin zu den Abfragen, die wir darauf ausführten. Wir waren an einem Punkt sinkender Renditen und sahen starke Signale, dass es in ein paar Jahren nicht mehr zweckdienlich sein würde – und sogar zu einem Engpass für das Wachstum des Unternehmens werden könnte.

„Denken Sie regelmäßig über die Entwicklung Ihres Unternehmens nach und fragen Sie : „ Wird das, was uns hierher gebracht hat, uns dorthin bringen? '. Auf diese Weise können Sie Ihre Entscheidungen proaktiv treffen, anstatt zu reagieren.“

Hier ist eine starke, zukunftsorientierte technische Strategie entscheidend. Zu diesem Zeitpunkt hatten wir genügend Daten, um darauf hinzuweisen, dass wir möglicherweise einen anderen Ansatz evaluieren müssen, und hatten die Landebahn dafür. Denken Sie regelmäßig über die Entwicklung Ihres Unternehmens nach und fragen Sie: „Wird das, was uns hierher gebracht hat, uns dorthin bringen?“. Dies ermöglicht es Ihnen, Ihre Entscheidungen proaktiv zu treffen, anstatt zu reagieren, und mindert die Risiken im Zusammenhang mit den unbekannten Unbekannten bei der Einführung einer neuen Technologie.

Unsere Technologie hat unser Team ausgebremst

Bei Intercom streben wir danach, weniger Software zu verwenden. Obwohl wir in diesem Fall eine neue Technologie mit unbekannten Unbekannten einführten, ermöglichte uns die Einführung von DynamoDB genau das.

Zuvor haben wir die Skalierung von MongoDB zusammen mit dem Code für den Lastausgleich selbst verwaltet – ein erheblicher Overhead für das Team. Ein Teil der Attraktion von DynamoDB bestand darin, dass es vom Anbieter AWS verwaltet wurde. Dies bedeutete, dass die Einführung zwar anfängliche Kosten verursachte, aber letztendlich billiger sein würde und dem Team eine Menge Zeit und Mühe ersparen würde.

„Nicht dogmatisch in Bezug auf technischen Konservatismus zu sein, ermöglichte es uns, eine Technologie mit großen Gemeinkosten und begrenzten Fähigkeiten zu ersetzen.“

Es mag kontraintuitiv erscheinen, aber die Einführung einer neuen Technologie führte letztendlich dazu, dass wir weniger Software verwenden. Nicht dogmatisch in Bezug auf technischen Konservatismus zu sein, ermöglichte es uns, eine Technologie mit großen Gemeinkosten und begrenzten Fähigkeiten durch eine neue Technologie zu ersetzen, die weniger belastend für den Betrieb und skalierbarer war.

Wir waren rücksichtslos in Bezug auf Anforderungen

Manchmal mussten wir von MongoDB komplexe und teure Abfragen durchführen, die die Verfügbarkeit und die Leistung häufigerer, aber weniger komplexer Abfragen gefährdeten. Bei der Evaluierung von DynamoDB stellten wir fest, dass es diese komplexen und teuren Abfragen nicht unterstützen würde, aber bei den einfacheren und häufigeren Abfragen viel besser wäre.

Wir haben Elasticsearch bereits hauptsächlich zur Durchführung komplexer Abfragen verwendet, und die Notwendigkeit der Migration zwang uns, die von unserem Benutzerspeicher benötigten Funktionen zu überprüfen und bewusster zu definieren, was uns letztendlich ermöglichte, die Leistung für seinen primären Anwendungsfall zu verbessern: das Abrufen einzelner Benutzerdatensätze.

„Wenn Sie daran denken, eine Technologie zu ersetzen, gehen Sie nicht davon aus, dass Sie die neue Technologie genauso nutzen werden.“

Wenn Sie darüber nachdenken, eine Technologie zu ersetzen, gehen Sie nicht davon aus, dass Sie die neue Technologie auf die gleiche Weise verwenden werden. Ihre Anforderungen werden sich wahrscheinlich im Laufe der Zeit erheblich geändert haben, und der Rest des Stacks hat sich weiterentwickelt oder ausgereift, sodass die Anwendungsfälle enger werden. Dies eröffnet Möglichkeiten, fokussiertere, leistungsfähigere Technologien einzuführen oder einige Technologien auszulagern, damit sie von einem Anbieter verwaltet werden.

Lassen Sie Ihre Prinzipien für Ihr Unternehmen arbeiten, nicht umgekehrt

Technischer Konservatismus ist ein großartiges Werkzeug, um es Ihren Teams zu ermöglichen, sich auf das Wesentliche zu konzentrieren – das Lösen von Kundenproblemen und das Liefern von Mehrwert, ohne wertvolle Ressourcen für die Beantwortung bereits beantworteter Fragen aufzuwenden.

Wenn Sie jedoch zu starr in dem Glauben werden, dass die Einführung neuer Technologien schlecht ist, können Sie davon abhalten, Technologien zu nutzen, die Ihnen helfen, weniger Software auszuführen und einfacher und schneller zu skalieren. Es ist wichtig, dieses Prinzip so anzuwenden, dass es für Ihr Team und Ihr Unternehmen langfristig am besten funktioniert.

Sind Sie daran interessiert, dem Engineering-Team von Intercom beizutreten? Erfahren Sie mehr und sehen Sie sich unsere offenen Stellen hier an.

Karriere CTA - Engineering (horizontal)