Erst neulich schrieb Jeremy Keith, dass Probleme mit der Leistung nicht nur eine Frage der Optimierung und Fehlerbehebung von Code sind, sondern auch der Bewältigung von Menschlichen Problemen
Mir ist aufgefallen, dass es ein Spektrum von Performance-Herausforderungen gibt. Am einen Ende des Spektrums stehen technische Probleme. Diese können mit technischen Lösungen gelöst werden. Am anderen Ende des Spektrums stehen menschliche Probleme. Diese können durch Diskussionen, Einigung, Empathie und Gespräche (oft gefürchtet oder unangenehm) gelöst werden.
Ich glaube, dass wir als Entwickler dazu neigen, uns zu den technischen Problemen hingezogen zu fühlen. Das ist unser sicherer Raum. Aber ich vermute, dass größere Gewinne erzielt werden können, indem man die unangenehmen menschlichen Probleme angeht.
Das war definitiv schockierend zu erfahren, als ich vor ein paar Jahren in ein Unternehmen eintrat und feststellte, dass es einen Berg an Performance-Arbeit gab, den ich nicht allein bewältigen konnte. Ich begann, Leuten etwas über Performance beizubringen, hielt Sprechstunden ab und sprang in Projekte und Teams ein, die Hilfe benötigten. Aber ich erkannte, dass all diese Arbeit nichts brachte. Die Website, an der ich in meiner Freizeit arbeitete, wurde trotz meiner besten Bemühungen *langsamer*.
Frustriert und erschöpft lehnte ich mich eines Tages in meinem Stuhl zurück und erkannte, dass ich diese ganze Arbeit nicht allein bewältigen konnte. Das eigentliche Problem war: Es gibt keinen Anreiz für die Leute, sich darum zu kümmern. Wenn sich die Performance um zehntausend Prozent verbessert hätte, hätte niemand im Unternehmen es bemerkt. Die Kunden hätten es bemerkt, aber wir alle wahrscheinlich nicht. Außer mir, weil ich ein Nerd bin.
In Ethan Marcotttes jüngstem Vortrag, beschreibt er dieses Menschenproblem im Zusammenhang mit Designsystemen.
Das Erstellen modularer Komponenten ist weder das Hauptziel noch der Hauptvorteil der Erstellung eines Designsystems. Darüber hinaus führt ein Fokus auf Prozesse und Menschen immer zu nachhaltigeren Systemen.
Designsysteme drehen sich um guten, qualitativ hochwertigen Front-End-Code, genau wie Performance. Aber wenn die Leute in einer Organisation keine Anreize haben, die Komponenten innerhalb einer Bibliothek zu nutzen oder mit dem Designsystem-Team zu sprechen, dann wird es schnell verrückt.
Ich würde dieses Menschenproblem vielleicht etwas vereinfachen: Die Codebasis ist leicht zu ändern, aber die Anreize innerhalb eines Unternehmens nicht. Und doch sind es die Anreize, die bestimmen, welche Art von Code geschrieben wird – was akzeptabel ist, was behoben werden muss, wie Menschen zusammenarbeiten. Kurz gesagt, wir können nicht erwarten, den Code zu beheben, ohne auch die Organisation zu beheben.
Die offensichtlichsten Anreize sind Geld und Leistungsbewertungen oder sogar die Einstellung einer Person oder eines Teams, das sich dieser speziellen Arbeit widmet. Die Verbesserung der Transparenz bei Performance-Problemen und das Feiern großer Erfolge ist eine weitere Möglichkeit, das Gleichgewicht zu verschieben und die Leute dazu zu bringen, sich mehr für diesen völlig neuen Wissensbereich zu interessieren. Aber diese Dinge müssen wirklich von oben nach unten kommen, nicht von unten nach oben. Zumindest ist das meiner Erfahrung nach so.
Mein Punkt ist, dass es keine einzelne Lösung gibt, um das Anreizproblem in großen Organisationen zu lösen. Es klingt albern, aber um diese Website zu erstellen, sind die größten Hürden, die es zu überwinden gilt, diese Anreize. Wenn sich heute niemand für Performance-Arbeit interessiert, wird Schreien und Brüllen und sich wie ein Idiot zu verhalten überhaupt nicht helfen.
Glauben Sie mir, ich war dieser Idiot.
Das stimmt.
Die Frage ist: Was ist möglich dagegen zu tun?
Ich glaube nicht einmal, dass Logik hier funktioniert.
Performance ist wichtig für das Unternehmen. Aber trotzdem gibt es immer andere Prioritäten, andere Probleme und manchmal einfach nur Widerstand und Vernachlässigung.
Was ist also möglich zu tun?
Persönliche Beziehungen und Vertrauen zu jeder Person aufbauen, mit der Sie zusammenarbeiten, um sie zu überzeugen? Das ist kaum möglich, besonders wenn man bedenkt, dass wir uns zu technischen Problemen hingezogen fühlen. Denn jemanden von etwas zu überzeugen, ist schwer.
Das sage ich oft.
Die eigentliche Arbeit zu tun, ist einfach ... alle Leute unterwegs zufriedenzustellen, ist der schwierige Teil.
Erstens: Wir müssen die Performance verfolgen.
Verwenden Sie Lighthouse oder Webpagetest, analysieren Sie die Seite und verfolgen Sie die Metriken im Laufe der Zeit.
Oder noch besser, verwenden Sie Web Vitals oder eine RUM-Lösung.
Zweitens: Stellen Sie diese Metriken den anderen Metriken gegenüber. Suchen Sie nach Korrelationen mit Geschäftskennzahlen wie Absprungrate, Konversionen, Sitzungslänge usw.
Wenn Sie nachweisen können, dass Performance-Probleme mit geschäftlichen Problemen korrelieren, werden mehr Leute davon überzeugt sein, sie zu beheben.
Diese Ausrichtung zu erreichen, könnte es einfach machen, die Leute von der Bedeutung von Performance zu überzeugen.
Ähm, binden Sie Performance einfach an Dollar. Es gibt eine Amazon-Geschichte über Millisekunden und die Wahrscheinlichkeit, Verkäufe zu konvertieren, das sollte einfach sein.
Ich denke, Sie haben den Nagel auf den Kopf getroffen, Robin, mit dem Satz „Das eigentliche Problem war: Es gibt keinen Anreiz für die Leute, sich darum zu kümmern.“ Dieses Problem, fehlende Anreize, sich zu kümmern, ist der Kern der meisten „Menschenprobleme“. Und natürlich ist das Problem in verschiedenen Unternehmen und zu verschiedenen Zeiten unterschiedlich, da sich die Personaldynamik im Laufe der Zeit ändert. Denken Sie kurz darüber nach. Wenn ein Unternehmen seine Mitarbeiter einstellt, fragt es dann neben dem Wunsch nach einem „Job“ auch nach der Motivation der Kandidaten, bei dem Unternehmen arbeiten zu wollen? Die meisten Mitarbeiter wollen einen guten Job machen und dazu beitragen, das Endergebnis zu verbessern, und oft ist Geld nicht unbedingt der Kern ihrer Motivation, einen bestimmten Job auszuüben. Aber wir sind auch alle Menschen. Und es sei denn, eine Person ist verzweifelt genug, einen Job zu haben, was nicht ungewöhnlich ist, besonders jetzt, kann ein Ansatz, den ich als engagiert bezeichnen würde, schnell dünn werden. Dies kann geschehen, wenn man keine Kontrolle über seine Arbeit hat und oft von seinem Manager – dem „BOSS“ – oder jemand anderem in Frage gestellt wird. Es kann oft helfen, wenn Einzelpersonen einen Anteil an ihrer Arbeit haben, was sich wiederum direkt auf ihren Erfolg im Unternehmen auswirkt. Das bedeutet oft, wichtigere Arbeit zu leisten und Anerkennung für gute Arbeit, mehr Verantwortung und sogar Gehaltsanreize zu erhalten, wenn das Unternehmen es sich leisten kann. Und die andere Seite dieser Frage ist es, einfühlsame und „sich sorgende“ Manager zu haben, die verstehen, wie sie die Menschen, die für sie arbeiten, erfolgreich motivieren. Angst, wie die Angst vor Arbeitsplatzverlust bei schlechter Leistung oder eine andere negative Motivation, ist natürlich ein Motivator, aber es ist nicht der beste. An das anzuknüpfen, was jemanden dazu bringt, besser arbeiten zu wollen, ist ein besserer Ansatz, und das ist Teil der Fähigkeiten, die Manager benötigen, aber allzu oft tun sie es nicht. Es ist ein hartes Problem zu lösen, aber es ist die Mühe wert.
Danke für das Aufschreiben, Rendle, und ich hoffe, ich kann hier etwas mit einigen weisen, mystischen Worten aus dem Osten beitragen;
Es muss ein Gleichgewicht zwischen Monozukuri, dem Herstellen von Dingen, und Hito-zukuri, dem Herstellen von Menschen, geben, denn jedes braucht seine eigene Pflege und das eine kann nicht ohne das andere gemacht werden.
Kurz gesagt, ich glaube, dass Designsysteme zwei Probleme haben: technische Konsistenz und wahrnehmungsmäßige Konsistenz. Ihr System kann für Ihren Kunden technisch perfekt sein, aber die Leute, die damit arbeiten, sehen es anders; sie denken vielleicht, dass es für sie schlecht ist oder dass es ihnen die Arbeit erschwert, „wie üblich“ zu arbeiten.
Umgekehrt können Sie auch Ihren Kunden komplett täuschen, dass Ihr Designsystem absolut hervorragend ist (Stripe-Dev-Tweet), indem Sie die wahrnehmungsmäßige Konsistenz des „Systems“ sehen, aber unter der Haube ist der Ingenieur fest davon überzeugt, dass es „ein Chaos“ ist.
Mein abschließender Gedanke also: „Technische Probleme sind leicht zu lösen, Wahrnehmungen sind wirklich schwer.“