Asynchron arbeiten



Asynchrone Arbeit ist eine solche Art, einen Prozess zu organisieren, wenn Aufgaben in einer Pipeline ausgeführt werden. Auf diese Weise können Sie den Prozess vollständig steuern und selbst optimieren. Gleichzeitig werden Druck und Stress auf Null reduziert und Aufgaben schnell und geschickt erledigt.

Ein reibungsloser und schneller Förderer liefert genau die richtige Produktionsmenge, alle Stufen sind in Bezug auf Effizienz und Geschwindigkeit ausgewogen. Nach der 3M-Methode des Toyota-Produktionssystems wird keine Zeit oder Ressourcen verschwendet.

Der asynchrone Betrieb basiert auf drei Grundprinzipien: Multiplexing , Kommunikation und Aktion .

Multiplexing


Die Menschen leben in einer synchronen Welt. Die Uhr tickt genau eine Sekunde lang. Aber die Art und Weise, wie Sie Aufgaben organisieren, hat einen verrückten Einfluss auf das Ergebnis. Es geht nur um Planung.

Synchrone Planung


Typische (synchrone) Planung beinhaltet den gleichzeitigen Massenstart von Aufgaben. Dies ist an sich nicht beängstigend, aber die Gesamtgeschwindigkeit wird durch die Geschwindigkeit des langsamsten Elements begrenzt. Jede Verzögerung breitet sich entlang der Pipeline aus, da jede Stufe vollständig von der vorherigen abhängt.


Beispiel 1

Hier sehen wir einen Fluss der Softwareentwicklung mit drei Terminals und synchroner Planung. Um die Entwicklung abzuschließen, müssen Sie die Aufgaben A, B und C ausführen. Unter Berücksichtigung der Planungsmethode und der Warteschlange dauert es neun Arbeitsstunden, bis die Arbeit abgeschlossen ist. Das System eignet sich gut für atomare Aufgaben, ist jedoch in anderen Projekten sehr langsam, da es sich um sehr seltene Bereitstellungen handelt.

Asynchrone Planung


Bei der asynchronen Planung werden Aufgaben in eine maximale Anzahl kleinerer Aufgaben unterteilt, wobei am häufigsten „minimal realisierbare Änderungen“ (MVC) veröffentlicht werden. Die Methode basiert auf der Hypothese, dass eine häufigere Freigabe minimaler Änderungen dazu beiträgt, den Erfolg besser zu messen und so schnell wie möglich auf negatives Feedback zu reagieren. Sie können damit auch die Verteilung der Ressourcen besser steuern, da wir gleichzeitig mehr Aufgaben ausführen (reduzierte Größe).


Beispiel 2

Durch die Aufteilung der Aufgaben A, B und C (A1, A2, A3, B1 usw.) haben wir die Häufigkeit der Bereitstellungen verdreifacht. Nach neun Stunden können wir so viele vorgefertigte Funktionen haben, aber durch Multiplexen mit asynchroner Verteilung können Sie das Ergebnis überprüfen - und die nächsten Schritte zurücksetzen oder ändern. Wir haben die Iterationszeit auf ein Drittel des Originals reduziert.

Diese Technik ermöglicht es uns, Aufgaben zu multiplexen und zu kombinieren, um schneller Ergebnisse zu erzielen.

Kommunikation


Gute Kommunikation ist der Schlüssel zum Erfolg eines jeden Systems (Person oder Maschine).

Es gibt viele Arten der Kommunikation: E-Mail, Instant Messaging, Sprachanruf, Videoanruf oder sogar „Lass uns einen Kaffee trinken gehen“. Jeder von ihnen hat einen völlig anderen Effekt auf die Leistung, und die Auswahl des richtigen ist für die Pipeline genauso wichtig wie die Auswahl einer Aufgabe.

Synchrone Kommunikation


Wir sind von Natur aus anfälliger für synchrone Kommunikation, es ist einfacher und komfortabler.

In der Regel sind mindestens zwei Personen an einem Gespräch beteiligt. Es kommt in verschiedenen Formaten vor:

  • Treffen
  • Video- / Sprachanruf
  • Kaffeepause
  • Gespräch beim Abendessen
  • Senden einer Nachricht, die auf eine sofortige Antwort wartet

Dies ist alles hervorragend, wenn das Problem in einem asynchronen Format nicht oder nur schwer zu diskutieren ist. Zum Beispiel eine Leistungsbeurteilung, eine Diskussion über eine Strategie, ein Interview, ein Einzelgespräch.

Die meisten Besprechungen können durch korrekte Dokumentation, gut geschriebene E-Mails oder Nachrichten ersetzt werden.

Im Allgemeinen sind Besprechungen das teuerste Werkzeug im Unternehmen. Verwenden Sie es richtig.

Im dritten Beispiel arbeiten zwei Entwickler an ihren eigenen Aufgaben und müssen die Aufgaben A, B und C vor der Bereitstellung ausführen:


Beispiel 3

Ziemlich typische Situation. Beide Entwickler waren einige Zeit durch eine Diskussion der technischen Spezifikationen und bald ein Treffen darüber, was sie als nächstes tun sollten, abgelenkt.

Dies ist eindeutig nicht die beste Option für die Verwendung synchroner Kommunikation. Wir sehen, dass Unterbrechungen alle Arbeiten verzögerten und die Bereitstellung nicht stattfand.

Die Leistung eines solchen Förderers ist eindeutig nicht einheitlich und kann nicht als hoch bezeichnet werden.

Asynchrone Kommunikation


Asynchrone Kommunikation gibt Unabhängigkeit. Sie versucht sicherzustellen, dass die Aufgabe und ihre Folgen nicht davon abhängen, wer sie geplant oder abgeschlossen hat.

Die asynchrone Kommunikation bietet einige allgemein anerkannte Best Practices, z.

  • Gute Dokumentation
  • Schriftliche Anweisungen
  • Messaging statt Anrufe
  • Respekt für die Arbeit ohne Ablenkungen

Beispiel 4 mit denselben zwei Entwicklern und Aufgaben, jedoch mit asynchroner Kommunikation.


Beispiel 4

In diesem Beispiel erfolgt die Kommunikation über Messaging und gut geschriebene Dokumentation. Selbst wenn das Messaging im Laufe der Zeit verlängert wird, sind die Auswirkungen auf den Workflow vernachlässigbar und führen häufig zu einer besseren Leistung.

Aber warum?


Menschen wechseln nicht sehr gut von einem Zustand voller Konzentration auf Aufgabe A zu voller Konzentration auf Aufgabe B (wie in der folgenden Abbildung gezeigt). Wenn Sie beispielsweise tief in ein Buch eingetaucht sind und Sie ablenken, dauert es eine Weile, bis Sie zum Text zurückkehren.

In Beispiel 5 sehen wir ein Diagramm, in dem die Zeit und die Leistung des Backend-Entwicklers, die zweimal abgelenkt werden, entlang der Achsen dargestellt werden: Zuerst fragt der Frontend-Entwickler nach der Nutzlast der API-Anforderung, und dann bittet der Neuling im Team um Hilfe beim lokalen Einrichten der Projektdatenbank.


Beispiel 5

Der Backend-Entwickler konzentrierte sich einige Zeit auf die aktuelle Aufgabe (1) und geriet dann in einen Konzentrationszustand (2), in dem sein superkreatives und leistungsstarkes Gehirn am effizientesten arbeitet. Dann ist er abgelenkt und verbringt einige Zeit mit der Kommunikation mit dem Front-End-Entwickler (3), um dann wieder zu Aufgabe (1) zurückzukehren. Als sich der Entwickler erneut konzentrierte (2), war er leider wieder abgelenkt (3).

Wenn Sie an dieser Stelle lesen, bin ich mir sicher, dass Ihnen das alles sehr vertraut ist.

Der Schlüssel ist das Konzept des Flusses (2). Wikipedia-Definition :

In der positiven Psychologie ist der Flusszustand ein mentaler Zustand, in dem eine Person, die eine Aktivität ausführt, vollständig in ein Gefühl energetischer Konzentration, voller Beteiligung und Freude am Aktivitätsprozess eingetaucht ist. Im Wesentlichen ist der Fluss durch eine vollständige Absorption der Aufmerksamkeit und den daraus resultierenden Verlust des Raum- und Zeitgefühls gekennzeichnet.

Wenn es schwierig ist, sich allein zu konzentrieren, ist es noch schwieriger, in den Fluss zu gelangen. Je besser Sie fokussiert sind, desto höher ist die Wahrscheinlichkeit, in den Stream zu gelangen. Wenn Sie jedoch Probleme haben, die Konzentration aufrechtzuerhalten, vergessen Sie den Stream.

Asynchrone Kommunikation ist hier äußerst wichtig, da sie die Zeit und Konzentration jedes Mitarbeiters schützt und bedeutungslose Ablenkungen reduziert. Wenn Sie asynchron kommunizieren, sind diese Arten von Interrupts viel seltener. Erhöht die Zeit für tiefes Arbeiten und die Wahrscheinlichkeit, einen Strom zu erreichen.

Aktion


Dies ist der letzte Faktor beim Umschalten in den asynchronen Modus. Der Punkt liegt nicht in den Verfahren, sondern in Bezug auf sich selbst als Fachmann und seine beruflichen Ziele.

Es wird häufig festgestellt, dass die Aufgabe nicht vorbereitet ist, die Prozesse nicht geplant sind, die Verantwortlichen sich nicht melden usw. Unter solchen Umständen erledigen erfolgreiche Teams die Arbeit, auch wenn sie sie wiederholen und später anpassen müssen, aber keine Zeit mit „Warten“ verbringen.

"Immer standardmäßig handeln" ist ein Mantra, das wir bei Remote weiterhin wiederholen. Dies bedeutet, dass Sie, wenn Sie etwas tun müssen und niemand helfen oder angeben kann, was als nächstes zu tun ist, den gesunden Menschenverstand verwenden und Ihre eigene Wahl treffen.

Stellen Sie sich vor, es gibt drei Aufgaben, von denen nur zwei gut beschrieben sind. Sie müssen also warten, bis der Produktmanager die Anforderungen genau ermittelt hat.


Beispiel 6

In diesem Beispiel führt der erste Entwickler standardmäßig eine Aktion aus, und der zweite erwartet standardmäßig eine Aktion. Der erste übernahm eine andere Aufgabe, wenn auch nicht so wichtig. Der zweite wartet darauf, dass der Manager die Anforderungen für eine solche Aufgabe beschreibt.

Dies ist ein bedingtes Beispiel, und ich möchte sagen, dass es übertrieben ist, aber nein. Eine sehr häufige Situation.

Wenn Sie bei der nächsten Aufgabe wirklich Hilfe benötigen und nichts anderes finden, ist es besser, diese Zeit für das persönliche Wohl zu nutzen, z. B. ins Fitnessstudio zu gehen, mit dem Hund spazieren zu gehen oder eine Folge Ihrer Lieblingsserie anzusehen (ja, sogar während des Arbeitstages) )

Natürlich sind einige Aufgaben sehr subtil, und wenn Sie sich nicht sicher sind, können Sie etwas anderes aufgreifen. Es geht nicht darum, Risiken zu ignorieren, sondern Verantwortung auf kontrollierte Weise zu übernehmen.

Zusammenfassung


Asynchrone Arbeit ist eine Möglichkeit, die Arbeit mit weniger Unterbrechungen und höherer Effizienz zu organisieren, basierend auf mehreren Ideen:

  • Der asynchrone Betrieb sollte häufiger als der synchrone Betrieb verwendet werden. Er bietet ein besseres Ressourcenmanagement, reduziert Zeitverluste und optimiert daher die Leistung.
  • Durch Multiplexing von Aufgaben mit reduzierter Größe können Sie Aufgaben schneller erledigen, Hypothesen schneller testen und mit größerem Vertrauen Erfolg erzielen.
  • In den meisten Fällen sollte die Kommunikation asynchron sein, außer in Fällen, in denen eine explizite Synchronisierung erforderlich ist. Auf diese Weise können sich die Mitarbeiter länger auf ihre Aufgaben konzentrieren und Best Practices wie Dokumentation und das Schreiben geeigneter Verfahren anwenden.
  • Immer standardmäßig (im Rahmen des Zumutbaren) zu handeln, hilft dem gesamten Team, sich schneller zu bewegen, den Zeitverlust zu verringern und die Beteiligung jedes Mitarbeiters an einer gemeinsamen Sache zu erhöhen.

Source: https://habr.com/ru/post/de473602/


All Articles