Hallo an alle! Zuerst wollte ich im Titel etwas über persönliche Effektivität reflektieren, aber dann lehnte ich die Idee entschieden ab. Ich möchte im Voraus darauf hinweisen, dass es nicht so sehr um das Erreichen und die richtige Festlegung des Ziels geht (obwohl dies wichtig ist), sondern vielmehr um die persönliche Erfahrung und die Ereignisse, die mich direkt in die Arme dieser Frage geführt haben (und es geschah ganz spontan). Ich werde auch grundlegende Möglichkeiten zur Vereinfachung der Arbeit hervorheben. Sie sind ebenso einfach wie effektiv.
Hintergrund
Während des größten Teils meiner Entwicklungskarriere (sowohl Frontend als auch Full Stack) habe ich über eine wichtige Aufgabe nachgedacht: die Codeleistung. Meine persönliche Effektivität fiel jedoch irgendwie aus dem Bereich meiner Interessen heraus ... Nun, das war überhaupt nicht richtig, aber ich blieb nicht lange dort, so dass mein Wissen auf diesem Gebiet bisher sehr, sehr begrenzt und abrupt war.
Wenn ich lange Erklärungen überspringe, gehe ich gleich zu ... Der Höhepunkt meiner Geschichte, die diesen Sommer passiert ist. Es kam vor, dass absolut alle Sterne, die das konnten, zusammenkamen. Alles war da: Ich mochte mein Projekt nicht, und ich wurde auch auf ein neues Projekt umgestellt, das mir (zu dieser Zeit) noch weniger gefiel. Ich fügte Glück und eine enge Frist hinzu und fügte dem Feuer durch regelmäßige Zwischenfälle mit der lokalen Umgebung, die ziemlich groß waren, Treibstoff hinzu Probleme in meinem persönlichen Leben, die Annullierung des Fluges, dank der ich in einer anderen Stadt feststeckte, wenn Sie hier eine Epidemie hinzufügen, erhalten Sie ein ziemlich vollständiges und verständliches Bild. All dies führte dazu, dass ich anfing zu brennen: Es war schwierig für mich zu arbeiten, es war schwierig mehr oder weniger schwierige Aufgaben zu erledigen, die ganze Zeit wollte ich irgendwo weglaufen: Tee, YouTube, ein Buch usw. Irgendwann wurde mir klar, dass ich nicht mehr arbeiten konnte (na ja, überhaupt nicht).Das ist verständlich, denn meine ganze Arbeit in den letzten Monaten basiert auf Selbstzwang: Ich habe mich gezwungen zu arbeiten. Ziemlich logisches Ergebnis.
Der offensichtliche Ausweg aus dieser Situation besteht darin, zu versuchen, das Projekt zu ändern oder in den Urlaub zu fahren. Aber erstens passiert es nicht sofort und zweitens wusste ich nicht, wie lange ich nach einem Urlaub oder einem neuen Projekt durchhalten würde. Dann stellte er sich die Frage: Was will ich eigentlich? Es stellte sich heraus, dass es alles andere als programmierbar war (erstaunlich). Zum Beispiel Tee trinken (ich frage mich, wie andere Leute diese Frage beantworten und sich in einer ähnlichen Situation befinden, aber vielleicht werden wir es nie erfahren). Und ich sagte mir: "Okay, ich werde Tee trinken, aber zuerst werde ich etwas tun." Und dies ist ein sehr wichtiger Punkt. Als ich versuchte zu verstehen, was ich in einem solchen Zustand tun kann, begann ich, die Aufgabe in Mikrotasks aufzuteilen und unnötige abzuschneiden. Es klingt einfach und logisch, außerdem sind dies die Grundlagen des Designs. Tatsächlich ist jedoch nicht alles so rosig. Während der Ausführung einer AufgabeWir betrachten die Aufgabe immer noch als eine Art Monolith, obwohl sie möglicherweise zuvor in ihre Bestandteile zerlegt wurde. Darüber hinaus stellen wir ständig Hunderte verschiedener Fragen und was passiert, wenn dies passiert (z. B. kommt ein Fehler vom Server).
Inwieweit soll die Aufgabe vereinfacht werden?
Ich teilte die Aufgabe nicht in unabhängige Module auf, sondern bis sie elementar wurden und keinen inneren Widerstand mehr in mir verursachten. Im Allgemeinen mag es so klingen:
- Erstellen Sie einen Komponentenstub mit einer Basisschnittstelle
- Verbinde sie
- Markup hinzufügen
- Übertragen Sie echte Daten
- Stile hinzufügen
- Schreiben Sie Tests
Wenn es schwierig wird, können diese Schritte entweder verfeinert oder die Komponente in Teilen entwickelt werden. (Wie machst du das?)
Als nächstes möchte ich auf drei wichtige Prinzipien aufmerksam machen:
Aufteilung der Aufgabe in elementare
In meinem Fall sah die Anfangsphase folgendermaßen aus:
- Stub eine Komponente mit fischigem Text
- Fügen Sie eine Route für sie hinzu
- Überprüfen Sie, ob sie verbunden ist
- Finden Sie heraus, an welchen Adressen Sie Daten vom Server empfangen müssen
Das Ergebnis dieser Entscheidung:
- Die Aufgaben sind elementar, auch in diesem Zustand betrachte ich sie mit einer gewissen Erleichterung, nicht mit Ekel.
- Es ist einfacher, sich auf solche Aufgaben zu konzentrieren.
- Auch reduziert Stress (ich zwinge mich nicht, und die Aufgaben sind nicht so beängstigend groß)
Konzentration auf einen engen Bereich von Unteraufgaben
- Weniger Zeit für Unteraufgaben
- Es werden weniger Gehirnressourcen ausgegeben
- Dadurch wird die Aufgabe selbst schneller erledigt.
Begrenzte Zeit für eine Iteration
- Ich kann mir leicht zustimmen, dass ich jetzt 15 Minuten arbeiten und dann 5 Minuten eine angenehme Pause machen werde. Es wird schwieriger und frustrierender sein, sich davon zu überzeugen, den ganzen Tag zur Arbeit zu kommen
Fassen wir zusammen
Um meine eigene Zeit und die anderer Leute nicht zu verschwenden, werde ich versuchen, dies so schnell wie möglich zu tun:
- Die Arbeit ist für mich nicht mehr stressig
- Am Ende des Tages wurde ich weniger müde
- Die Leistung hat sich im Vergleich zum stressfreien Wert erhöht: Früher dauerte eine Aufgabe für 3 Story Points + Schreibtests 2 Tage, jetzt stellte sich heraus, dass es nicht mehr als eineinhalb waren
- Ein professionellerer Ansatz ist die Verwendung eines Timers. Ich möchte über meine Erfolge (und Misserfolge, wo kann ich ohne sie auskommen) bei der Einführung der Tomatentechnik ein anderes Mal sprechen.