Blog

„Tun Sie, was Ihr Bier besser schmecken lässt“: Investieren Sie in die Anwendungsleistung, wenn es darauf ankommt

Mark Thomas
April 3, 2023

Jeff Bezos gab eine berühmte Keynote 2008 an der Startup School von Y Combinator. Zu diesem Zeitpunkt betrug die Marktkapitalisierung von Amazon 22 Milliarden Dollar. Sicherlich respektabel. Aber es war nur ein winziger Bruchteil des Billionen-Dollar-Giganten, zu dem Amazon später werden sollte. In seiner Präsentation vor Startup-Hoffnungsträgern forderte Bezos sein Publikum auf, „das zu tun, damit Ihr Bier besser schmeckt“.

Der Hintergrund? Bezos sprach im 20. Jahrhundert über europäische Bierbrauereien. Sie haben, wie viele Unternehmen zu dieser Zeit, Elektrizität als neue Technologie eingeführt. Die ersten Brauereien, die Elektrizität verwendeten, mussten ihre eigenen Stromgeneratoren bauen, die arbeits- und kapitalintensiv waren. Die Brauereien konnten Elektrizität verwenden, um neue Werkzeuge und Maschinen mit Strom zu versorgen, aber das war mit hohen Kosten verbunden.

Mit der nächsten Generation von Brauereien änderten sich die Dinge. Anstatt ihre eigenen Stromlösungen zu bauen, mieteten sie einfach Strom von Versorgungsunternehmen, was billiger und effizienter war. Infolgedessen übertrafen diese Brauereien die erste Generation, die ihre eigenen Stromerzeuger baute.

Bezos argumentierte, dass diese Lektion auch heute für Unternehmen gilt. Sie sollten sich auf das konzentrieren, was ein Unternehmen auszeichnet, und sich nicht von dem ablenken lassen, was es nicht tut. Kurz gesagt, „konzentrieren Sie sich darauf, was Ihr Bier besser schmecken lässt“. Im Jahr 2023 können wir mit ziemlicher Sicherheit sagen, dass es für Amazon sowieso gut genug geklappt zu haben scheint.

Das Gebräu zubereiten

Wir sind hier bei FloQast kein Bierunternehmen und auch kein Gigant in Amazon-Größe. Aber wir sind sicherlich eine nutzerorientierte Organisation, die versucht hat, Bezos' Ratschlägen zu folgen und sich auf „unser Bier“ zu konzentrieren. Wir haben versucht, dies in unserer gesamten Organisation auf verschiedene Arten zu tun:

  • Technik und Produkt: Wir entscheiden uns dafür, zu „kaufen“ statt zu „bauen“, wann immer es Sinn macht, und investieren vorsichtig und bewusst, wenn dies nicht der Fall ist. Zum Beispiel betreiben wir unsere Infrastruktur auf AWS (lustigerweise das moderne Cloud-Äquivalent der alten Energieversorger), investieren aber viel in technische Produktivität und Tools.
  • Erfolg/Support: Anstatt einen generischen Support-Service auszulagern, sollten Sie sich darauf konzentrieren, fantastische Mitarbeiter mit fundierten Kenntnissen und Hintergründen in der Buchhaltung einzustellen.
  • Design: Wir haben uns zunächst auf eine generische Designbibliothek (Ye Old Bootstrap) verlassen und unsere eigene erstellt, als es sinnvoller war

Wir haben es natürlich nicht immer perfekt gemacht, aber eine starke Betonung der Benutzerbedürfnisse und der Differenzierung des Unternehmens hat für uns im Großen und Ganzen ziemlich gut funktioniert. Wenn wir auf unsere Vergangenheit zurückblicken, kann man mit Sicherheit sagen, dass wir in den Zeiten, in denen wir am meisten zu kämpfen hatten, diesen Fokus verloren und uns im Unkraut verirrten und dachten: „Vielleicht baue ich einfach selbst eine Batterie, nicht die ganze Anlage.“

In Leistung investieren, wenn es darauf ankommt

Ein unermüdlicher Fokus auf Differenzierung ist nicht unbedingt einfach, auch wenn dies wichtig ist. Die Kompromisse zwischen „Bau“ - und „Kauf“ -Entscheidungen können sehr nuanciert sein. Das ausschließliche Festhalten an einer Seite kann gefährlich sein, insbesondere für eine technische Organisation. Irgendwann werden Sie mit maßgeschneiderten Lösungen beschäftigt sein („alles bauen“) oder nicht in der Lage sein, differenzierte Kundenbedürfnisse zu erfüllen („alles kaufen“). Sie müssen sich auch des Kompromissspektrums bewusst sein — wenn Sie es so schnell machen, kann es auch schwierig sein, Funktionen bereitzustellen und Ihr Produkt weiterzuentwickeln.

Wir hatten in letzter Zeit einige Erfahrungen im Umgang mit diesem Bereich in Form einer schleichenden Leistungsverschlechterung. Wir haben festgestellt, dass wichtige Latenzmetriken (API-Reaktionszeit, Interaktionszeit der Benutzeroberfläche usw.) im Laufe der Zeit langsam zugenommen haben, bis einige Benutzer dies merkten. Das Bier fing an, ein bisschen zu sehr nach Bud Light zu schmecken.

Also haben wir geantwortet. Wir haben uns dafür entschieden, die Verbesserung der Leistung zu beschleunigen, anstatt das Problem über mehrere Quartale hinweg anzugehen. Das erkennen wir an häufig, wir können uns besser von anderen abheben, indem wir uns auf die Vollständigkeit und Richtigkeit der Funktionen statt auf Optimierungen konzentrieren. In diesem Fall waren die Verlangsamungen jedoch spürbar genug, um unseren Kernbereich der Differenzierung zu beeinträchtigen.

Durch die Schaffung von Dringlichkeit und Fokus waren wir in der Lage, Teams zu stärken und ihnen zu ermöglichen, sich direkter auf das jeweilige Problem zu konzentrieren. Wir haben das Problem auch der technischen Organisation auf breiterer Ebene zugänglich gemacht — Leistung liegt schließlich in der Verantwortung aller. Wir haben uns darauf konzentriert, die Latenz unserer Systeme in einigen wichtigen Bereichen zu reduzieren:

  • Datenbank:
    • Rufen Sie Abfragen erneut auf, für die möglicherweise eine bessere Indizierung erforderlich ist
    • Wechseln Sie zu einer Lesestrategie, die sekundäre Datenbankknoten den primären vorzieht
    • Organisieren Sie ein organisationsweites Lunch-and-Learn, um Ihre langfristigen Datenbankkenntnisse zu verbessern
  • API:
    • Caching: Das Zwischenspeichern bestimmter Netzwerkanrufe reduzierte die Netzwerklatenz um ein erhebliches Maß
    • Komprimierung: Wir haben festgestellt, dass bestimmte API-Komponenten nicht automatisch die GZIP-Komprimierung verwendeten. Indem wir dies aktiviert haben, haben wir die über das Kabel gesendeten Daten um das Zehnfache oder mehr reduziert
  • UI:
    • Reduzieren Sie die Größe der FloqAST-Kernbibliotheken
    • Reduzierte Anzahl von Client-Waterfall-HTTP-Sequenzen, die die Interaktivität verzögerten
    • Reduzieren Sie die Gesamtgröße des FloQast-Client-Codes
    • Untersuchen Sie Möglichkeiten, Skripte von Drittanbietern weiter auszulagern

An den Bemühungen waren fast alle Ingenieurteams von FloQast beteiligt, und unsere Hauptanstrengungen dauerten etwa einen Monat an. Am Ende waren wir in der Lage, die Latenz zwischen den FloQast-Apps deutlich zu reduzieren, und in Zukunft werden noch mehr Gewinne erzielt werden.

In die Ferne starren

Nach reiflicher Überlegung sind wir mit dem Gleichgewicht, das wir gefunden haben, ziemlich zufrieden. Indem wir in Leistung investieren, wenn es wirklich darauf ankommt, können wir viele der Fallstricke vermeiden, die sich aus Extremen des Kompromissspektrums zwischen Optimierung und Vollständigkeit der Funktionen ergeben. Es gibt einen riesigen Haufen wertvoller Funktionen, die wir niemals ausgeliefert hätten, wenn wir jahrelang Leistung zu unserem absoluten Ziel Nummer eins gemacht hätten. Es gibt _auch_ eine beträchtliche Anzahl von Benutzern, die unsere Produkte nicht verwenden würden, wenn wir es völlig vernachlässigt hätten, an Geschwindigkeit und Leistung zu denken. Der Schlüssel ist, sich immer wieder zu fragen: „Schmeckt das Bier dadurch besser?“ und konzentrieren Sie sich auf die Nutzerfreundlichkeit und Differenzierung gegenüber allem anderen.